рдпрд╣ рдХрдорд╛рдВрдб рд╕реНрдХреИрди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдХрдИ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЬреИрд╕реЗ рдХрд┐ рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо:
рдирд╛рдо
рд╕реНрдХреЛрдиреНрд╕ - рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг
SYNOPSIS
рд╕реНрдХреИрдиреНрд╕ [рд╡рд┐рдХрд▓реНрдкреЛрдВ...] [рдирд╛рдо = рд╡реИрд▓...] [рд▓рдХреНрд╖реНрдп...]
рд╡рд░реНрдгрди
RSI рд╕реНрдХреИрдиреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ (рдпрд╛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ) рдмрдирд╛рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдШрдЯрдХ рдЯреБрдХрдбрд╝реЗ
рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрдерд╛ рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдирд┐рд░реНрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдХреИрдиреНрд╕ рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬрддрд╛ рд╣реИ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ, рд╕реНрдХреЙрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрдпрд╛, рд╕реНрдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ (рдХреЗ рдХрд╛рд░рдг рд╕реЗ
рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдСрд░реНрдбрд░) рдФрд░ рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЗрд╕рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрдврд╝рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ -f рд╡рд┐рдХрд▓реНрдк.
RSI рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣рд╛рдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ()
рдлрд╝рдВрдХреНрд╢рдиред рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрди рд╕рд╣рд╛рдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреЛрдИ рднреА рдирд╛рдо
рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдЗрд╕ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХреЗ рдХрд╛рд░рдг, рд╢рдмреНрдж "SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ" рдХрднреА-рдХрднреА
рд╕рднреА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛
рдирд╛рдо рджреЗрдВред)
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрдорд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ (рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ) рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИрдВ
рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдпрдо рдореМрдЬреВрдж рд╣реИрдВ
рдШрдЯрдХреЛрдВ (рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝), рддрд╛рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рд▓рдХреНрд╖реНрдп рдФрд░ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓, рд╕реНрдХреИрдиреНрд╕ рдирд╛рдордХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕ in
рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдФрд░ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓;
рдЙрди рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореМрдЬреВрдж рд╣реИ, рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕ sys.path рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓
site_scons/site_init.py, рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
site_scons/site_tools рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреВрд▓рдкрд╛рде рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЗрдЦреЗрдВ
--рдиреЛ-рд╕рд╛рдЗрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ --рд╕рд╛рдЗрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рджреЗрдЦреЗрдВ.
рд╕реНрдХреИрдиреНрд╕ SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдПрдВ (рдЬреИрд╕реЗ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг, рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░, рдФрд░ рдЖрдпрд╛рддрд┐рдд
рдЬрдЯрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреИрдиреНрд╕, рддрдерд╛рдкрд┐, рдкрдврд╝рддрд╛ рд╣реИ рдФрд░
рд╕рднреА SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
рдЬрд╝рд╛рд╣рд┐рд░, рд╕реНрдХреИрдиреНрд╕ рдпрд╣ рдЬреЛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ:
$ scons рдлрд╝реВ.рдЖрдЙрдЯ
scons: SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдв рд░рд╣рд╛ рд╣реВрдБ...
scons: SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдирд╛ рдкреВрд░реНрдг рд╣реБрдЖред
рд╕реНрдХреЛрдиреНрд╕: рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд╛рдг ...
рд╕реАрдкреА foo.in foo.out
рд╕реНрдХреЛрдиреНрд╕: рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реБрдЖред
$
рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢ (рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд┐рд╕рдореЗрдВ "cp foo.in foo.out" рд▓рд┐рдЦрд╛ рд╣реИ) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрдмрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ -Q рд╡рд┐рдХрд▓реНрдк.
рд╕реНрдХреИрдиреНрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рд╣рд░реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕ рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рддрд╛рдХрд┐ рдмрд┐рд▓реНрдб рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реЛ рд╕рдХреЗ
рдЙрд╕ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдХреИрдиреНрд╕ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдпрд╣ рднреА рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдорд╛рдирдХ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рд╕реНрдХреИрдиреНрд╕ рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдПрдВрдЧреЗ рдЬрдм рддрдХ рдЖрдк
рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PATH рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред рдЬрдм рднреА рдЖрдк рдХреЛрдИ рдкрде рдмрдирд╛рддреЗ рд╣реИрдВ рд╕реНрдХреИрдиреНрд╕
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рдмрд╛рд╣рд░реА рд╕реЗ PATH рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдЖрдпрд╛рдд os
env = рдкрд░реНрдпрд╛рд╡рд░рдг(ENV = {'PATH' : os.environ['PATH']})
рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХрдорд╛рдВрдб рдмрд╛рд╣реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдЬреИрд╕реЗ $PATH, $HOME,
$JAVA_HOME, $LANG, $SHELL, $TERM, рдЖрджрд┐, рдЗрди рдЪрд░реЛрдВ рдХреЛ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЖрдпрд╛рдд os
env = рдкрд░реНрдпрд╛рд╡рд░рдг(ENV = {'PATH' : os.environ['PATH'],
'рд╣реЛрдо' : os.environ['HOME']})
рдпрд╛ рдЖрдк рдЖрд╣реНрд╡рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдореНрдкреВрд░реНрдг рдмрд╛рд╣реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрдпрд╛рдд os
env = рдкрд░реНрдпрд╛рд╡рд░рдг(ENV = os.environ)
рдпрд╣ рдЖрдкрдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдмрдирд╛рдиреЗ рдХреА рдХреАрдордд рдкрд░ рдЖрддрд╛ рд╣реИ
рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдХреИрдиреНрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЬреНрдЮрд╛рдд рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
#C рдпрд╛ C++ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХрдерди рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ) рдФрд░ рдЖрд╢реНрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛
рдЬрдм рднреА рдХреЛрдИ "рд╢рд╛рдорд┐рд▓" рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рддреА рд╣реИред рд╕реНрдХреИрдиреНрд╕ рдирдИ рдкрд░рд┐рднрд╛рд╖рд╛ рджреЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рдЕрдЬреНрдЮрд╛рдд рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд░ред
рд╕реНрдХреИрдиреНрд╕ SCCS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SCCS рдпрд╛ RCS рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирддрд╛ рд╣реИ,
рдЖрд░рд╕реАрдПрд╕ рдпрд╛ рдмрд┐рдЯрдХреАрдкрд░.
рд╕реНрдХреИрдиреНрд╕ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓,
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрдорд╛рдВрдб
рд╕реНрдХреИрдиреНрд╕
рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдпрд╛ рдЙрд╕рдХреЗ рдиреАрдЪреЗ рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдВрдЧреАред рд╕реНрдкрд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп
(рдЬрдм рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
SConscript рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрд▓рддреА рдХрд░рдирд╛() рдХрд╛рд░реНрдп, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдЧрд▓рддреА рдХрд░рдирд╛() рд▓рдХреНрд╖реНрдп SConscript рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ
рдпрд╛ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдиреАрдЪреЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(.) рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ:
рд╕реНрдХреЛрдиреНрд╕.
рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдмрд╛рд╣рд░ рдХреА рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕рд╣рд┐рдд рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд▓рдХреНрд╖реНрдп рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░):
рд╕реНрдХреЛрдиреНрд╕ /
рдпрд╛ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдкрде рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░
рд╕рд┐рд╕реНрдЯрдо):
рд╕реНрдХреЙрдиреНрд╕ рд╕реА:\ рдбреА:\
рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:
рд╕реНрдХреЛрдиреНрд╕ рдлреВ рдмрд╛рд░
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рд╣реА рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ (рд╕рд╛рде рд╣реА рдХрд┐рд╕реА рднреА рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде)
рдЬрд┐рд╕ рдкрд░ рд╡реЗ рдирд┐рд░реНрднрд░ рд╣реИрдВ)ред
SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ "рдХреНрд▓реАрдирдЕрдк" рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред -c рдЭрдВрдбрд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рдЯрд╛рддрд╛ рд╣реИ:
рд╕реНрдХреЛрдиреНрд╕-рд╕реА.
рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛:
scons -c рдмрд┐рд▓реНрдб рдирд┐рд░реНрдпрд╛рдд
рдмрд┐рд▓реНрдб рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рддрд╣рдд рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕рд╛рдл() рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓рдХреНрд╖реНрдп рдЬреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╣реЛрддреЗ рд╣реИрдВ
рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ -c рдЖрд╣реНрд╡рд╛рди рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдиреЛрдХреНрд▓реАрди()
рд╕рдорд╛рд░реЛрд╣.
рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдиреЗ рд░рд╣рдХрд░ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╡реГрдХреНрд╖ рдХрд╛ рдПрдХ рдЙрдкрд╕рдореВрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(рдЬрд╣рд╛рдВ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬреАрд╡рди) рдФрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛
рдмрдирд╛рдирд╛:
рд╕реНрдХреЛрдиреНрд╕ src/subdir
рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрджрд▓рдХрд░ рдФрд░ scons рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ -u рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рдКрдкрд░ рддрдХ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдЬрдм рддрдХ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓, рдФрд░ рдлрд┐рд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рдХреНрд╖реНрдп рдмрдирд╛рддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ:
рд╕реАрдбреА src/subdir
рд╕реНрдХреЙрдиреНрд╕-рдпреВ.
рд╕реНрдХреИрдиреНрд╕ рдПрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ -j рд╡рд┐рдХрд▓реНрдк рдЬреЛ рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐
рддрд░реНрдХ, рдПрдХ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛:
рд╕реНрдХреЙрдиреНрд╕ -j 4
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдЪрд╛рд░ рд▓рдХреНрд╖реНрдп рдмрдирд╛рддрд╛ рд╣реИред
рд╕реНрдХреИрдиреНрд╕ рд▓рдХреНрд╖реНрдп (рд╡реНрдпреБрддреНрдкрдиреНрди) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдХреИрд╢ рдмрдирд╛рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЬрдм SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИ, рддреЛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдХреЛрдИ рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рд╕реНрдХреИрдиреНрд╕ рдорд░реНрдЬреА
рдХреИрд╢ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХреИрд╢ рдореЗрдВ рдХреЛрдИ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ
рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп рдХреИрд╢ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдХреНрд╖рдо рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд --рдХреИрд╢-рдмрд▓, --рдХреИрд╢-рдЕрдХреНрд╖рдо,
--рдХреИрд╢-рд░реАрдбрдСрдирд▓реА, рддрдерд╛ --рдХреИрд╢-рд╢реЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк. --рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреЛрдЧреА рд╣реИ
рдПрдХрд╛рдзрд┐рдХ рдмрд┐рд▓реНрдб рдХреЛ рдПрдХ рд╕рд╛рде рдХреИрд╢ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВ.
SConscript рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░реЛрдВ рдХреЗ рдорд╛рди рдХрдорд╛рдВрдб рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рд░реЗрдЦрд╛:
рд╕реНрдХреЛрдиреНрд╕ рдбрд┐рдмрдЧ = 1 .
рдпреЗ рдЪрд░ ARGUMENTS рд╢рдмреНрджрдХреЛрд╖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░
SConscript рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрд┐рд▓реНрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдпрджрд┐ ARGUMENTS.get('debug', 0):
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CCFLAGS = '-g')
рдЕрдиреНрдп:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡реЗрд░рд┐рдПрдмрд▓ рддрд░реНрдХ ARGLIST рд╕реВрдЪреА рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рдирд┐рдореНрди рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЙрдирдХрд╛ рдХреНрд░рдоред рдпрд╣ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдо рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐
рдирд╛рдо, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред ARGLIST[0] (argname, argvalue) рдпреБрдХреНрдд рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рдкрд╛рдпрдерди
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рд╕реВрдЪреА рд╕рджрд╕реНрдп рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рддреЛ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рд╕реНрдХреИрдиреНрд╕ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 2.7 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдИ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╕реНрдХреЛрдиреНрд╕.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдХреИрдиреНрд╕ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреВрд▓реНрд╕ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИред
рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╕реНрдХреИрдиреНрд╕ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ C++ рдЯреВрд▓реНрд╕, MinGW рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ
рдЯреВрд▓ рдЪреЗрди, рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдЯреВрд▓реНрд╕ рдФрд░ рдлрд╛рд░рд▓реИрдк рдИрдЯреАрдПрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ред OS/2 рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╕реНрдХреИрдиреНрд╕
OS/2 рдХрдВрдкрд╛рдЗрд▓рд░, GCC рдЯреВрд▓ рдЪреЗрди рдФрд░ Microsoft Visual C++ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдХрд░рдг, рдПрд╕рдЬреАрдЖрдИ рдЖрдИрдЖрд░рдЖрдИрдПрдХреНрд╕, рдЖрдИрдмреАрдПрдо рдПрдЖрдИрдПрдХреНрд╕, рд╣реЗрд╡рд▓реЗрдЯ рдкреИрдХрд╛рд░реНрдб рдПрдЪрдкреА-рдпреВрдПрдХреНрд╕, рдФрд░ рд╕рди рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╕реНрдХреИрдиреНрд╕
рдореВрд▓ рд╕рдВрдХрд▓рдХ рдЙрдкрдХрд░рдгреЛрдВ (MIPSpro, Visual Age, aCC, рдФрд░ Forte рдЙрдкрдХрд░рдг) рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ
рдХреНрд░рдорд╢рдГ) рдФрд░ рдЬреАрд╕реАрд╕реА рдЯреВрд▓ рдЪреЗрдиред POSIX (рд▓рд┐рдирдХреНрд╕ рдФрд░
рдпреВрдирд┐рдХреНрд╕) рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо, рд╕реНрдХреИрдиреНрд╕ рдЬреАрд╕реАрд╕реА рдЯреВрд▓ рдЪреЗрди, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реА++ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдХрд░рдг, рдФрд░ рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдЙрдкрдХрд░рдгред рдЖрдк, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдиреНрдпрд╛рд╕ред
рд╡рд┐рдХрд▓реНрдк
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ, рд╕реНрдХреИрдиреНрд╕ GNU рдХреЗ рд╕рдорд╛рди рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдмрдирд╛рдирд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ
рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдкрдХреНрд╖.
-b
рдЧреИрд░-GNU рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдирд╛рдирд╛ред
-рд╕реА, --рд╕рд╛рдлрд╝ рдХрд░реЗрдВ, --рд╣рдЯрд╛рдПрдБ
рдЙрди рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рд╕рдлрд╛рдИ рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЖрджреЗрд╢ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб рд╕реЗ рдЬреБрдбрд╝реА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрдВ
рд╕реНрд╡рдЪреНрдЫ() рдлрд╝рдВрдХреНрд╢рдиред рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рдПрдЧрд╛ рдиреЛрдХреНрд▓реАрди() рд╕рдорд╛рд░реЛрд╣ред
--рдХреИрд╢-рдбреАрдмрдЧ=рдкрдЯреНрдЯрд┐рдХрд╛
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдХреИрд╢рдбрд┐рд░() рд╡реНрдпреБрддреНрдкрдиреНрди-рдлрд╝рд╛рдЗрд▓ рдХреИрд╢рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдкрдЯреНрдЯрд┐рдХрд╛. рдЕрдЧрд░ рдкрдЯреНрдЯрд┐рдХрд╛ is - (рдПрдХ рд╣рд╛рдЗрдлрд╝рди), рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдорд╛рдирдХ рдкрд░ рдореБрджреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ
рдЖрдЙрдЯрдкреБрдЯ. рдореБрджреНрд░рд┐рдд рд╕рдВрджреЗрд╢ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
рдореЗрдВ, рд╕реЗ рдкреНрд░рд╛рдкреНрдд, рдпрд╛ рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреИрд╢рдбрд┐рд░() рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖.
--рдХреИрд╢-рдЕрдХреНрд╖рдо, --рдиреЛ-рдХреИрд╢
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпреБрддреНрдкрдиреНрди-рдлрд╝рд╛рдЗрд▓ рдХреИрд╢рд┐рдВрдЧ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдХреИрд╢рдбрд┐рд░()ред рд╕реНрдХреИрдиреНрд╕ рди рддреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛
рдХреИрд╢ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рди рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рди рд╣реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╢ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред
--рдХреИрд╢-рдлреЛрд░реНрд╕, --рдХреИрд╢-рдкреЙрдкреНрдпреБрд▓реЗрдЯ
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреИрд╢рдбрд┐рд░(), рдХрд┐рд╕реА рднреА рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж, рдЕрджреНрдпрддрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ рдХреИрд╢ рднрд░реЗрдВ
рдЗрд╕ рдЖрд╣реНрд╡рд╛рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рднреА рдореМрдЬреВрджрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдХреИрд╢ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рдХрд┐рд╕реА рднреА рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреИрд╢ рдХрд░реЗрдВ --рдХреИрд╢-рдЕрдХреНрд╖рдо
рд╡рд┐рдХрд▓реНрдк.
--рдХреИрд╢-рд░реАрдбрдСрдирд▓реА
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдпрджрд┐ рд╕рдХреНрд╖рдо рд╣реИ), рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреИрд╢ рдХреЛ рдЕрдкрдбреЗрдЯ рди рдХрд░реЗрдВ
рдлрд╛рдЗрд▓реЗрдВ.
--рдХреИрд╢-рд╢реЛ
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреИрд╢рдбрд┐рд░() рдФрд░ рдХреИрд╢ рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдХрдорд╛рдВрдб рджрд┐рдЦрд╛рдПрдВ
рдЬрд┐рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛,
"рдХреИрд╢ рд╕реЗ `рдлрд╝рд╛рдЗрд▓' рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИред" рдпрд╣ рдмрд┐рд▓реНрдб рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд╕рдВрдЧрдд рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛,
рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреИрд╢ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
--рдХреЙрдиреНрдлрд┐рдЧ =рдореЛрдб
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЙрд▓ рдХреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдгред рд╡рд┐рдХрд▓реНрдк рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
--рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди=рдСрдЯреЛ
scons рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ
рдирд╣реАрдВред рдЗрд╕рд╕реЗ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИ
scons, рд▓реЗрдХрд┐рди рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб (рдЬреИрд╕реЗ) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдЧрд╛
рдпрджрд┐ рдЖрдк рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрдХрд▓рдХ) рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
рд╡реНрдпрд╡рд╣рд╛рд░.
--рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди=рдмрд▓
рдпрджрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдг рдкреБрдирдГ рдЪрд▓рд╛рдП рдЬрд╛рдПрдВрдЧреЗ
рдХреНрдпрд╛ рдХреИрд╢ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдкреБрд░рд╛рдиреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реВрдк рд╕реЗ рдЕрд╕рдВрдпреЛрдЬрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ред
--рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди=рдХреИрд╢
рдпрджрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдг рдкреБрдирдГ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рднреА рдкрд░рд┐рдгрд╛рдо
рдХреИрд╢ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ scons рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдиреЗрдВрдЧреЗ рдпрджрд┐ --config=cache
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЕрднреА рддрдХ рдХреИрд╢ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИред
-C рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, --рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛=рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЗрдВ рдмрджрд▓реЗрдВ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ, рд╕реНрдХреЙрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрдпрд╛,
рд╕реНрдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓, рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХрд╛рдзрд┐рдХ -C рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ
рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рд╕реЗ, рдФрд░ рд╕рдмрд╕реЗ рджрд╛рдПрдБ рд╡рд╛рд▓реЗ рд╕реЗ -C рд╡рд┐рдХрд▓реНрдк рдЬреАрддрддрд╛ рд╣реИред (рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд▓рдЧрднрдЧ
рдХреЗ рдмрд░рд╛рдмрд░ -f рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ,
рд╕реНрдХреЙрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрдпрд╛, рд╕реНрдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ.)
-D
рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ -u рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣реИрдВ, рдЙрд╕реЗ рдЫреЛрдбрд╝рдХрд░ рд╡рд┐рдХрд▓реНрдк
рдЬрдм рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡реЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдиреАрдЪреЗ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВред
--рдбреАрдмрдЧ=рдЯрд╛рдЗрдк
рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд░реЗрдВ. рдкреНрд░рдХрд╛рд░[,рдкреНрд░рдХрд╛рд░...] рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдЬрд╛рдПред рдПрдХрд╛рдзрд┐рдХ
рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░ рдорд╛рдиреНрдп рд╣реИрдВ:
--рдбрд┐рдмрдЧ=рдЧрд┐рдирддреА
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдХрд┐ SCons рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ
рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рддрдерд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВред
рдЬрдм SCons рдХреЛ Python рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ -O (рдЕрдиреБрдХреВрд▓рд┐рдд) рд╡рд┐рдХрд▓реНрдк рдпрд╛
рдЬрдм SCons рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдпрд╛рдиреА, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп
рд╕реЗ *.рдкреНрдпреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ)ред
--рдбрд┐рдмрдЧ=рдбреБрдкреНрд▓рд┐рдХреЗрдЯ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдирд▓рд┐рдВрдХ/рд░реАрд▓рд┐рдВрдХ (рдпрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ
рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рди рд▓реЗрдВред
--рдбрд┐рдмрдЧ=dtree
рдирдпреЗ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА --рд╡реГрдХреНрд╖=рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд┐рдХрд▓реНрдкред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд░рд┐рд╣рд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
--рдбрд┐рдмрдЧ=рд╕рдордЭрд╛рдПрдБ
рдЗрд╕рдХрд╛ рд╕рдЯреАрдХ рдХрд╛рд░рдг рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рд╕реНрдХреИрдиреНрд╕ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЛ (рдкреБрдирдГ) рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд░рд╣рд╛ рд╣реИред
(рдиреЛрдЯ: рдпрд╣ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд╣реАрдВ (рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд)
--рдбрд┐рдмрдЧ=findlibs
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдХреИрдирд░ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдВ
рд╕рдВрднрд╛рд╡рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рдЬрд┐рд╕реЗ рд╡рд╣ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реИ, рддрдерд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЙрд╕реЗ рдорд┐рд▓рддреА рд╣реИред
--рдбрд┐рдмрдЧ=рд╢рд╛рдорд┐рд▓ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╕рдореНрдорд┐рд▓рд┐рдд рд╡реГрдХреНрд╖ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рдХрд┐рд╕реА рджреА рдЧрдИ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
$ scons --debug=foo.o рд╢рд╛рдорд┐рд▓ рд╣реИ
--рдбрд┐рдмрдЧ=рдореЗрдореЛрдЗрдЬрд╝рд░
рдореЗрдореЛрдЗрдЬрд╝рд░, рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд┐рдЯ рдФрд░ рдорд┐рд╕ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рдпрд╣ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ SCons рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдкреБрдирдГ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореЗрдореЛрд░реА рдореЗрдВ рдХреИрд╢ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдЬрдм рдЙрдирдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред
--рдбрд┐рдмрдЧ=рдореЗрдореЛрд░реА
рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ SCons SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░
рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ.
--рдбрд┐рдмрдЧ=рдиреЛрдореЗрдореЛрдЗрдЬрд╝рд░
рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдПрдХ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╡рд┐рдХрд▓реНрдк.
--рдбрд┐рдмрдЧ=рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕
SCons рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕реВрдЪреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
--рдбрд┐рдмрдЧ=рдкреАрдбреАрдмреА
pdb рдкрд╛рдпрдерди рдбреАрдмрдЧрд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ SCons рдХреЛ рдкреБрдирдГ рдЪрд▓рд╛рдПрдВред
--рдбрд┐рдмрдЧ=рддреИрдпрд╛рд░
рдЬрдм рднреА рдХреЛрдИ рд▓рдХреНрд╖реНрдп (рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣реНрдп) рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ, рддреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
рд╕реНрдХреИрдиреНрд╕ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рд▓рдХреНрд╖реНрдп рдЕрджреНрдпрддрд┐рдд рд╣реЛ (рджреЗрдЦреЗрдВ
рд╕рд╛рде рд╣реА --debug=explain)ред рдпрд╣ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдбреАрдмрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдирд┐рд░реНрдорд┐рдд; рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреИрдиреНрд╕ рдХрдо рд╕реЗ рдХрдо рд╕рд░рдХрд╛рд░ рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рддреЛ рдХрд░ рд░рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВред
--рдбрд┐рдмрдЧ=рдкреНрд░реАрд╕рдм
рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдЪреНрдЪреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдЖрджреЗрд╢ред рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
$ scons --debug=presub
рдХрд╛рд░реНрд░рд╡рд╛рдИ(рдУрдВ) рдХреЗ рд╕рд╛рде myprog.o рдХрд╛ рдирд┐рд░реНрдорд╛рдг:
$SHCC $SHCFLAGS $SHCCFLAGS $CPPFLAGS $_CPPINCFLAGS -c -o $TARGET $SOURCES
...
--рдбрд┐рдмрдЧ=рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕
рдЕрдиреНрдпрдерд╛ рдЕрд╕реНрдкрд╖реНрдЯреАрдХреГрдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдкрд░ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рддреНрд░реБрдЯрд┐ред
--рдбрд┐рдмрдЧ=рд╕реНрдЯреНрд░реА
рдирдпреЗ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА --рд╡реГрдХреНрд╖=рд╕рднреА,рд╕реНрдерд┐рддрд┐ рд╡рд┐рдХрд▓реНрдкред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░рд┐рд▓реАрдЬ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдФрд░ рдЕрдВрддрддрдГ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
--рдбрд┐рдмрдЧ=рд╕рдордп
рд╡рд┐рднрд┐рдиреНрди рд╕рдордп рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд▓рдЧрд╛ рд╕рдордп
рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб; рдХреБрд▓ рдмрд┐рд▓реНрдб рд╕рдордп (SCons рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╕рдордп); рдХреБрд▓
SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрддреАрдд рд╕рдордп; SCons рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд╡реНрдпрддреАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреБрд▓ рд╕рдордп
рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ (рдЕрд░реНрдерд╛рдд, SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХреЛ рдЫреЛрдбрд╝рдХрд░); рдФрд░ рджреЛрдиреЛрдВ
рд╕рднреА рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрддреАрдд рдХреБрд▓ рд╕рдордп рдФрд░ рдмреАрддрд╛ рд╣реБрдЖ рд╡реЙрд▓-рдХреНрд▓реЙрдХ рд╕рдордп
рдЙрди рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред (рдЬрдм рд╕реНрдХреИрдиреНрд╕ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -j рд╡рд┐рдХрд▓реНрдк,
рджреАрд╡рд╛рд░-рдШрдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдмреАрддрд╛ рд╕рдордп рдЖрдо рддреМрд░ рдкрд░ рдХреБрд▓ рд╕рдордп рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛
SCons рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╕рднреА рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рдЖрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВред рд╕реНрдХреИрдиреНрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рд╛рде рдореЗрдВ la -j рд╡рд┐рдХрд▓реНрдк, рдФрд░ рдЖрдкрдХрд╛
рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдЪреНрдЫреЗ рд╕рдорд╛рдирд╛рдВрддрд░реАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмреАрддрд╛ рд╣реБрдЖ рджреАрд╡рд╛рд░-рдШрдбрд╝реА рдХрд╛ рд╕рдордп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рднреА рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рдХреБрд▓ рд╕рдордп рд╕реЗ рдХрд╛рдлреА рдХрдо,
рдЪреВрдВрдХрд┐ рдХрдИ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдФрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ SCons рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрдЧрд╣ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП
рд╕рдорд╛рдирд╛рдВрддрд░ред)
--рдбрд┐рдмрдЧ=рдкреЗрдбрд╝
рдирдпреЗ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА --рд╡реГрдХреНрд╖=рд╕рднреА рд╡рд┐рдХрд▓реНрдкред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд░рд┐рд╣рд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
--рдбрд┐рд╕реНрдХрдЪреЗрдХ=рдкреНрд░рдХрд╛рд░
рдбрд┐рд╕реНрдХ рдкрд░ рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЬрд╣рд╛рдВ SCons рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рдВрдЪ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд), рдФрд░ рдЖрд░рд╕реАрдПрд╕ рдпрд╛ рдПрд╕рд╕реАрд╕реАрдПрд╕ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рд╕реНрд░реЛрдд рдЦреЛрдЬрддреЗ рд╕рдордп рд╕реНрд░реЛрдд рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВред рдкреНрд░рдХрд╛рд░ рддрд░реНрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ: рд╕рдм, рд╕рднреА рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░); рдХреЛрдИ рдирд╣реАрдВ, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдРрд╕реА рд╕рднреА рдЬрд╛рдВрдЪреЗрдВ; рдореИрдЪ, рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ SCons рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕; рд╕рд╣рдХрд╛рд░реА рд╕рдорд┐рддрд┐ рдкрдВрдЬреАрдпрдХрдХрд┐рд╕реА рднреА рдЖрд░рд╕реАрдПрд╕ рд╕реНрд░реЛрдд рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрдиреБрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд рдпрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ; SCCS, рдПрд╕рд╕реАрд╕реАрдПрд╕ рд╕реНрд░реЛрдд рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд┐рд╕реА рднреА рдЕрдиреБрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд рдпрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдПрдХрд╛рдзрд┐рдХ рдЬрд╛рдБрдЪреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, --рдбрд┐рд╕реНрдХрдЪреЗрдХ=рдПрд╕рд╕реАрд╕реАрдПрд╕,рдЖрд░рд╕реАрдПрд╕ рдЕрднреА рднреА рдПрд╕рд╕реАрд╕реАрдПрд╕ рдФрд░ рдЖрд░рд╕реАрдПрд╕ рд╕реНрд░реЛрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдПрдЧреА,
рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдСрди-рдбрд┐рд╕реНрдХ рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред рдХреБрдЫ рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛
рдпреЗ рд╕рднреА рдЬрд╛рдБрдЪреЗрдВ рдмрдбрд╝реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд╕рдХрддреА рд╣реИрдВ, рдпрд╛ рдЬрдм
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░/рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдЧрд▓рдд рдирд┐рд░реНрдорд╛рдг рдпрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рди рд╣реЛрдиреЗ рдХрд╛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛ рдЬреЛрдЦрд┐рдо
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реБрдВрджрд░ рдврдВрдЧ рд╕реЗ (рдпрджрд┐ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ SCCS рдпрд╛ RCS рдореЗрдВ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ)
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╛ рдпрджрд┐ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдЬрд╣рд╛рдБ SCons рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛)ред
--рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=рдЖрджреЗрд╢
рдмрд┐рд▓реНрдб рдЯреНрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ: рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ, рд╕реЙрдлреНрдЯ (рдкреНрд░рддреАрдХрд╛рддреНрдордХ)
рд▓рд┐рдВрдХ рдФрд░ рдХреЙрдкреАред SCons рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЙрдлреНрдЯ рд▓рд┐рдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдирд╛ рд╣реИ
рдЖрдк рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрджреЗрд╢ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
of рд╣рд╛рд░реНрдб-рд╕реЙрдлреНрдЯ-рдХреЙрдкреА (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), рд╕реЙрдлреНрдЯ-рд╣рд╛рд░реНрдб-рдХреЙрдкреА, рд╣рд╛рд░реНрдб рдХреЙрдкреА, рд╕реЙрдлреНрдЯ рдХреЙрдкреА or рдкреНрд░рддрд┐рд▓рд┐рдкрд┐. рдПрд╕рд╕реАрдУрдПрдирдПрд╕
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред
-f рдкрдЯреНрдЯрд┐рдХрд╛, --рдлрд╝рд╛рдЗрд▓=рдкрдЯреНрдЯрд┐рдХрд╛, --рдореЗрдХрдлрд╛рдЗрд▓=рдкрдЯреНрдЯрд┐рдХрд╛, --sconstruct=рдкрдЯреНрдЯрд┐рдХрд╛
рдЙрдкрдпреЛрдЧ рдкрдЯреНрдЯрд┐рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ SConscript рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВред рдПрдХрд╛рдзрд┐рдХ -f рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ,
рдХреМрди рд╕рд╛ рдорд╛рдорд▓рд╛ рд╕реНрдХреИрдиреНрд╕ рд╕рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝реЗрдЧрд╛.
-рдПрдЪ, --рд╕рд╣рд╛рдпрддрд╛
рдпрджрд┐ SConscript рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рддреЛ рдЗрд╕ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ), рд╕рд╛рде рд╣реА рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ -H рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкред рдпрджрд┐ рдирд╣реАрдВ
рд╕реНрдерд╛рдиреАрдп рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдирдХ рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдпреБрдХреНрдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред
-рдПрдЪ, --рдорджрдж-рд╡рд┐рдХрд▓реНрдк
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдирдХ рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред
-i, --рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЖрджреЗрд╢реЛрдВ рд╕реЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред
-I рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, --рд╢рд╛рдорд┐рд▓-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛=рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ a рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЖрдпрд╛рддрд┐рдд рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдХрдИ -I рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
--рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд-рдХреИрд╢
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рд╕реНрдХреИрдиреНрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд (рд╕реНрдХреИрди рдХрд┐рдП рдЧрдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛
рдирд┐рд░реНрднрд░рддрд╛рдПрдБред рдпрд╣ SCons рдХреЛ рдХрд╛рдлреА рддреЗрдЬрд╝ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде
рд╕реАрдорд╛рдПрдВ:
рд╕реНрдХреИрдиреНрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЦреЛрдЬ рдкрдереЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдПрдЧрд╛ (рдЬреИрд╕реЗ рд╕реАрдкреАрдкреАрдкреАрдПрде, рд▓рд┐рдмрдкрде)
рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реНрдХреИрдиреНрд╕ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛рдж рдЖрдПрдВрдЧреЗ рдЬрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИ
рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЦреЛрдЬ рдкрде рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдкреАрдкреАрдПрде,
рд▓рд┐рдмрдкрде) рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рд╡рд░реНрддрдорд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
--рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд-рдирд┐рд░реНрднрд░рддрд╛-рдкрд░рд┐рд╡рд░реНрддрд┐рдд
SCons рдХреЛ рдХреИрд╢реНрдб рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреБрдирдГ рд╕реНрдХреИрди рдФрд░ рдкреБрдирдГ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ --рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд-рдХреИрд╢.
--рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд-рдирд┐рд░реНрднрд░рддрд╛-рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд
SCons рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдВред рдпрд╣ рдХреИрд╢реНрдб рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ --рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд-рдХреИрд╢.
--рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡
SCons рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдПрдХ рдмрд╛рд░ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд╕реНрдХреЙрдиреНрд╕>>>
рдкреНрд░реЙрдореНрдкреНрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдкрдврд╝реЗ рдмрд┐рдирд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛
рд╢реБрд░реБрд╡рд╛рдд рд╕реЗред
SCons рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
рдирд┐рд░реНрдорд╛рдг[рд╡рд┐рдХрд▓реНрдк] [рд▓рдХреНрд╖реНрдп] ...
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рд▓рдХреНрд╖реНрдп (рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ SCons рдХреЗ рд╕рд╛рде
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк. b рдФрд░ рд╕реНрдХреИрдиреНрд╕ рд╕рдорд╛рдирд╛рд░реНрдереА рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд SCons рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдирд┐рд░реНрдорд╛рдг рдЖрджреЗрд╢:
-- рдХреИрд╢-рдбреАрдмрдЧ=рдлрд╝рд╛рдЗрд▓
--рдХреИрд╢-рдЕрдХреНрд╖рдо, --рдиреЛ-рдХреИрд╢
--рдХреИрд╢-рдлреЛрд░реНрд╕, --рдХреИрд╢-рдкреЙрдкреНрдпреБрд▓реЗрдЯ
--рдХреИрд╢-рд░реАрдбрдСрдирд▓реА
--рдХреИрд╢-рд╢реЛ
--рдбрд┐рдмрдЧ=рдкреНрд░рдХрд╛рд░
-i, --рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ
-рдЬреЗ рдПрди, --рдЬреЙрдмреНрд╕ = рдПрди
-рдХреЗ, --рдХреАрдк-рдЧреЛрдЗрдВрдЧ
-n, --no-exec, --just-print, --dry-run, --recon
-Q
-рд╕, --рдЪреБрдк, --рд╢рд╛рдВрдд
--taskmastertrace=рдлрд╝рд╛рдЗрд▓
--рд╡реГрдХреНрд╖=рд╡рд┐рдХрд▓реНрдк
рдХреЛрдИ рднреА рдЕрдиреНрдп SCons рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб (рдореБрдЦреНрдпрддрдГ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)
рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ)ред
рд╕реНрд╡рдЪреНрдЫ[рд╡рд┐рдХрд▓реНрдк] [рд▓рдХреНрд╖реНрдп] ...
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ рд▓рдХреНрд╖реНрдп (рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рдеред
c рдпрд╣ рдЖрджреЗрд╢ рд╕реНрд╡рдпрдВ рдПрдХ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╣реИред рдирд┐рд░реНрдорд╛рдг --рд╕рд╛рдл
рдирд┐рдХрд╛рд╕
SCons рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдЖрдк рдЗрдирдкреБрдЯ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рднреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ (CTRL+D рдСрди
UNIX рдпрд╛ Linux рд╕рд┐рд╕реНрдЯрдо рдкрд░, Windows рд╕рд┐рд╕реНрдЯрдо рдкрд░ CTRL+Z).
рдорджрдж[рдХрдорд╛рдВрдб]
SCons рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдХрдорд╛рди рдЕрдзрд┐рдХреГрдд рд╣реИ, h рдФрд░ ? рд╕рдорд╛рдирд╛рд░реНрдереА рд╣реИрдВред
рдЦреЛрд▓[рдХрдорд╛рдВрдб рд▓рд╛рдЗрди]
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдХреЛрд╢ рдореЗрдВред рдпрджрд┐ рдирд╣реАрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЕрдзрд┐рдХреГрдд рд╣реИ,
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдорд╛рдВрдб рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рд╢реЗрд▓ рд╡рд╛рддрд╛рд╡рд░рдг
рдЪрд░ (рдпреВрдирд┐рдХреНрд╕ рдФрд░ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░) рдпрд╛ рдХреЙрдорд╕реНрдкреЗрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (рдкрд░
рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд┐рд╕реНрдЯрдо). sh рдФрд░ ! рд╕рдорд╛рдирд╛рд░реНрдереА рд╣реИрдВред
рд╕рдВрд╕реНрдХрд░рдг
SCons рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореБрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ.
рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдЖрдЦрд┐рд░реА рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдХрдорд╛рдВрдб рдХреЛ рджреЛрд╣рд░рд╛рддреА рд╣реИред рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐
ReadLine рдореЙрдбреНрдпреВрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИ.
$ scons --рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡
scons: SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдв рд░рд╣рд╛ рд╣реВрдБ...
scons: SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдирд╛ рдкреВрд░реНрдг рд╣реБрдЖред
scons>>> рдмрд┐рд▓реНрдб-рдПрди рдкреНрд░реЛрдЧ
scons>>> рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ
-j N, --рдиреМрдХрд░рд┐рдпрд╛рдВ=N
рдПрдХ рд╕рд╛рде рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ (рдХрдорд╛рдВрдб) рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рдПрдХ -j рдЗрдирдореЗрдВ рд╕реЗ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдкреНрд░рднрд╛рд╡реА рд╣реИред
-рдХреЗ, --рдХреАрдк-рдЧреЛрдЗрдВрдЧ
рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рдж рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдЬреЛ рд▓рдХреНрд╖реНрдп рд╡рд┐рдлрд▓ рд╣реБрдП рдФрд░ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реБрдП
рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рд╣реЛрдВрдЧреЗ
рдЕрднреА рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред
-m
рдЧреИрд░-GNU рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдирд╛рдирд╛.
--рдЕрдзрд┐рдХрддрдо-рдмрд╣рд╛рд╡=рд╕реЗрдХрдВрдб
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрд╢реЛрдзрди рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдЪрд▓рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рд╕реЗрдХрдВрдбред рдЗрд╕
рдорд╛рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕рдХреА рдХреИрд╢ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдирдП рдХрдВрдЯреЗрдВрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (MD5 рдЪреЗрдХрд╕рдо) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 2 рджрд┐рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрд╕рдХреА рдХреИрд╢реНрдб рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рджрд┐рди рдкрд╣рд▓реЗ рдХрд╛ рд╕рдВрд╢реЛрдзрди рд╕рдордп
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рд╛рдордЧреНрд░реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдХрднреА рднреА рдХреИрд╢ рди рдХрд░рдирд╛ рдФрд░
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдИ рдХреИрд╢реНрдб рдорд╛рди рд╣реИ рддреЛ рдЙрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред 0 рдХрд╛ рдорд╛рди рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ
рдХреИрд╢реНрдб рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЪрд╛рд╣реЗ рдлрд╝рд╛рдЗрд▓ рдХрд┐рддрдиреА рднреА рдкреБрд░рд╛рдиреА рд╣реЛред
--md5-chunksize=рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ
MD5 рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ. рдпрд╣ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
MD5 рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЦрдВрдбреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ред рдлрд╝рд╛рдЗрд▓реЗрдВ
рдЙрд╕ рдЖрдХрд╛рд░ рд╕реЗ рдиреАрдЪреЗ рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрдмрдХрд┐ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмреНрд▓реЙрдХ-рджрд░-рдмреНрд▓реЙрдХ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрдбрд╝реЗ рдмреНрд▓реЙрдХ-рд╕рд╛рдЗрдЬрд╝ рдХреА рд╡рдЬрд╣ рд╕реЗ рдореЗрдореЛрд░реА рдЬрд╝реНрдпрд╛рджрд╛ рд╣реЛрддреА рд╣реИ
рдЬрдмрдХрд┐ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХрд╛рдлреА рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 64 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдЪрдВрдХ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП.
-n, --рдЬрд╕реНрдЯ-рдкреНрд░рд┐рдВрдЯ, --рдбреНрд░рд╛рдИ-рд░рди, --рд░рд┐рдХреЙрди
рдХреЛрдИ рдирд┐рд╖реНрдкрд╛рджрди рдирд╣реАрдВред рдХрд┐рд╕реА рднреА рдкреБрд░рд╛рдиреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓реЗрдВ рддреЛ рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддреЗред
--рдиреЛ-рд╕рд╛рдЗрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдорд╛рдирдХ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕ dirs рдХреЛ sys.рдкрдеред рднреА
рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ site_scons/site_init.py рдореЙрдбреНрдпреВрд▓ рдпрджрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рд░реЛрдХрддрд╛ рд╣реИ
рдЙрдирдХреЗ рдЬреЛрдбрд╝рдирд╛ site_scons/site_tools dirs рдХреЛ рдЯреВрд▓рдкрд╛рде рдкрд░ рдЬреЛрдбрд╝реЗрдВ.
--рдкреНрд░реЛрдлрд╛рдЗрд▓=рдкрдЯреНрдЯрд┐рдХрд╛
рдкрд╛рдпрдерди рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рдЕрдВрддрд░реНрдЧрдд SCons рдЪрд▓рд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд╕рд╣реЗрдЬреЗрдВ рдкрдЯреНрдЯрд┐рдХрд╛ред
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд╛рдпрдерди pstats рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
-q, --рдкреНрд░рд╢реНрди
рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рди рдЪрд▓рд╛рдПрдВ, рдпрд╛ рдХреБрдЫ рднреА рдкреНрд░рд┐рдВрдЯ рди рдХрд░реЗрдВред рдмрд╕ рдПрдХ рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рдПрдВ рдЬреЛ рд╢реВрдиреНрдп рд╣реЛ рдЕрдЧрд░
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрджреНрдпрддрди рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдЧреИрд░-рд╢реВрдиреНрдпред
-Q
SCons рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИ SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ, рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдФрд░
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ред рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдЕрднреА рднреА рд╣реИрдВ
рдореБрджреНрд░рд┐рддред
--рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рдмрдирд╛рдПрдБред рдпрд╣ рдХрдИ рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реИ
рдПрдХ рд╕рд╛рде рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░, рдПрдХ рд╕рд╛рде рдХрдИ рдмрд┐рд▓реНрдб рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рдорд╛рди рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ред
-рд╕, --рдЪреБрдк, --рд╢рд╛рдВрдд
рдореМрдиред рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рди рдХрд░реЗрдВред рд╕рд╛рде рд╣реА
SCons рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИ.
-рдПрд╕, --рдирд╣реАрдВ-рдЪрд▓рддреЗ-рд░рд╣рдирд╛, --рд░реЛрдХрдирд╛
GNU рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдирд╛рдирд╛.
--рд╕рд╛рдЗрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛=рджреАрд░
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдирд╛рдорд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕ рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдЖрдЧреЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ sys.рдкрдердореЙрдбреНрдпреВрд▓ рджреАрд░/site_init.py рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдпрд╣
рдореМрдЬреВрдж рд╣реИ, рдФрд░ рджреАрд░/site_tools рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреВрд▓рдкрд╛рде рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕ dirs рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм --рд╕рд╛рдЗрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреНрд░рдо рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ
рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд site_init.py рдлрд╝рд╛рдЗрд▓ рд╣реИ
рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ (рдЬреЛ рдЗрд╕реЗ рдмрд╛рдХреА рд╕рдм рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрддрд╛ рд╣реИ), рдФрд░
рдкрдереЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЬрд╛рдБрдЪреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд╣рд▓реЗ рдЖрддреА рд╣реИ
рдкрд░рд┐рдгрд╛рдореА рдкрде.
Windows:
%ALLUSERSPROFILE/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛/scons/site_scons
%USERPROFILE%/рд╕реНрдерд╛рдиреАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛/scons/site_scons
%APPDATA%/scons/site_scons
%HOME%/.scons/рд╕рд╛рдЗрдЯ_scons
./рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕:
/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд░реНрдерди/SCons/site_scons
/opt/local/share/scons/site_scons (MacPorts рдХреЗ рд▓рд┐рдП)
/sw/share/scons/site_scons (рдлрд╝рд┐рдВрдХ рдХреЗ рд▓рд┐рдП)
$HOME/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдкреЛрд░реНрдЯ/SCons/site_scons
$HOME/.scons/site_scons
./рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕
рд╕реЛрд▓рд╛рд░рд┐рд╕:
/opt/sfw/scons/site_scons
/usr/share/scons/site_scons
$HOME/.scons/site_scons
./рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕
рд▓рд┐рдирдХреНрд╕, рдПрдЪрдкреАрдпреВрдПрдХреНрд╕, рдФрд░ рдЕрдиреНрдп рдкреЙрд╕рд┐рдХреНрд╕-рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо:
/usr/share/scons/site_scons
$HOME/.scons/site_scons
./рд╕рд╛рдЗрдЯ_рд╕реНрдХреЙрдиреНрд╕
--рд╕реНрдЯреИрдХ-рдЖрдХрд╛рд░=рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ
рдереНрд░реЗрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрдХрд╛рд░ рд╕реНрдЯреИрдХ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯрдпрд╣ рдорд╛рди рд╕реНрдЯреИрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЬреЙрдм рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ред рдпреЗ рд╡реЗ рдереНрд░реЗрдбреНрд╕ рд╣реИрдВ рдЬреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЪреБрдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░реНрд╕ рдХрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ
рдкреНрд░рднрд╛рд╡ рддрдм рддрдХ рдирд╣реАрдВ рдЬрдм рддрдХ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк, рдЬреЛ -j рдФрд░ --jobs рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ
рдПрдХ. рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдЖрдорддреМрд░ рдкрд░ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рджреЛрд╖реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреЛрди рдХреЛ рдирд┐рд░рд╕реНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ
рдХреБрдЫ рднреАред рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдХреЛрдВрд╕ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдореНрдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 256 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдПред рдЬрдм тАЛтАЛрддрдХ рдЖрдк рд╕реНрдЯреИрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдЖрдкрдХреЛ рдЗрд╕ рдорд╛рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА
рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдБ.
-рдЯреА, --рдЯрдЪ
GNU рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдирд╛рдирд╛. (рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрджреНрдпрддрд┐рдд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рд╕реНрдкрд░реНрд╢ рдХрд░рдирд╛
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рд╕реНрдХреИрдиреНрд╕.)
--рдЯрд╛рд╕реНрдХрдорд╛рд╕реНрдЯрд░рдЯреНрд░реЗрд╕=рдкрдЯреНрдЯрд┐рдХрд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреНрд░реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдкрдЯреНрдЯрд┐рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдЯрд╛рд╕реНрдХрдорд╛рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЛрдбреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд░рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рддрд╛ рд╣реИред - рдордИ
рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.
-рд╡реГрдХреНрд╖=рд╡рд┐рдХрд▓реНрдкреЛрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡реГрдХреНрд╖ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рдкреЗрдбрд╝ рдХреЗ рдХреБрдЫ рдпрд╛ рд╕рднреА рднрд╛рдЧ рдХреЛ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ:
--рд╡реГрдХреНрд╖=рд╕рднреА
рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛ рд╡реГрдХреНрд╖ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдпрд╣ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛ рд╡реГрдХреНрд╖, рдЬрд┐рд╕рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдФрд░ рдЕрдирджреЗрдЦрд╛ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрднрд░рддрд╛ред
--рд╡реГрдХреНрд╖=рд╡реНрдпреБрддреНрдкрдиреНрди
рд╡реГрдХреНрд╖ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╡реНрдпреБрддреНрдкрдиреНрди (рд▓рдХреНрд╖реНрдп) рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдирд╣реАрдВред
--рд╡реГрдХреНрд╖=рд╕реНрдерд┐рддрд┐
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
--рдкреЗрдбрд╝=рдЫрдБрдЯрд╛рдИ
рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреА рдЫрдВрдЯрд╛рдИ рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдИ рднреА рдиреЛрдб рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдирд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
[рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ], рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐ рдЙрд╕ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ
рдкреЗрдбрд╝ рдореЗрдВ рдКрдкрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЦреЛрдЬ рдХрд░рдХреЗред
рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдЕрдиреЗрдХ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
# рдХреЗрд╡рд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ:
scons --tree=рд╡реНрдпреБрддреНрдкрдиреНрди, рд╕реНрдерд┐рддрд┐
# рд╕реНрдерд┐рддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
# рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рджреЗрдЦреЗ рдЧрдП рдиреЛрдбреНрд╕ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЫрд╛рдВрдЯрдирд╛:
scons --tree=all,prune,status target
-u, --up, --search-up
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рддрдХ рдЪрд▓рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ , рд╕реНрдХреЙрдиреНрд╕реНрдЯреНрд░рдХреНрдЯ or рд╕реНрдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдкрдЯреНрдЯрд┐рдХрд╛
рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░, рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдпрд╛ рдЙрд╕рдХреЗ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд▓рдХреНрд╖реНрдп рд╣реА рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
-U
рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ -u рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣реИрдВ, рдЙрд╕реЗ рдЫреЛрдбрд╝рдХрд░ рд╡рд┐рдХрд▓реНрдк
рдЬрдм рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript(s) рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рд╣реИрдВ
рдЪрд╛рд╣реЗ рдкрд░рд┐рдгрд╛рдореА рд▓рдХреНрд╖реНрдп рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреНрдпреЛрдВ рди рд╣реЛрдВ, рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
-рд╡реА, --рд╕рдВрд╕реНрдХрд░рдг
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рд╕реНрдХреИрдиреНрд╕ рд╕рдВрд╕реНрдХрд░рдг, рдХреЙрдкреАрд░рд╛рдЗрдЯ рдЬрд╛рдирдХрд╛рд░реА, рд▓реЗрдЦрдХреЛрдВ рдХреА рд╕реВрдЪреА, рдФрд░ рдХреЛрдИ рдЕрдиреНрдп
рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рднрд░реЗрдВред рдлрд┐рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред
-w, --рдкреНрд░рд┐рдВрдЯ-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдЕрдиреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
--рдиреЛ-рдкреНрд░рд┐рдВрдЯ-рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
-w рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
--рдЪреЗрддрд╛рд╡рдиреА=рдЯрд╛рдЗрдк, --рдЪреЗрддрд╛рд╡рдиреА=рдирд╣реАрдВ-рдЯрд╛рдЗрдк
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ. рдЯрд╛рдЗрдк рд╕рдХреНрд╖рдо рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдпрд╛
рдЕрдХреНрд╖рдо:
--рдЪреЗрддрд╛рд╡рдиреА=рд╕рднреА, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рд╕рднреА рдирд╣реАрдВ
рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ.
--рдЪреЗрддрд╛рд╡рдиреА=рдХреИрд╢-рд▓реЗрдЦрди-рддреНрд░реБрдЯрд┐, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдХреИрд╢-рд▓реЗрдЦрди-рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ
рдХрд┐рд╕реА рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреИрд╢рдбрд┐рд░(). рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВ.
--рдЪреЗрддрд╛рд╡рдиреА=рднреНрд░рд╖реНрдЯ-рд╕рдВрдХреЗрдд, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рднреНрд░рд╖реНрдЯ-рд╕рдВрдХреЗрдд рдирд╣реАрдВ
рдЕрдкрд░рд┐рдЪрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ .sconsign рдлрд╝рд╛рдЗрд▓реЗрдВ. рдпреЗ
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВ.
--рдЪреЗрддрд╛рд╡рдиреА=рдирд┐рд░реНрднрд░рддрд╛, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрд╖рдо рдХреА рдЬрд╛рддреА рд╣реИрдВ
рдЪреВрдХред
--рдЪреЗрддрд╛рд╡рдиреА=рдЕрдкреНрд░рдЪрд▓рд┐рдд, --рдЪреЗрддрд╛рд╡рдиреА=рдирд╣реАрдВ-рдЕрдкреНрд░рдЪрд▓рд┐рдд
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ --рдЪреЗрддрд╛рд╡рдиреА=рдирд╣реАрдВ-рдмрд╣рд┐рд╖реНрдХреГрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ
рд╕рднреА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ
рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдХрдИ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдЧреБрдЬрд╝рд░ рдЪреБрдХреА рд╣реИрдВ
рдПрдХ рдпрд╛ рджреЛ рдмрд╛рд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
SCons рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рддред рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рд╕рдХреНрд╖рдо рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо; рдиреАрдЪреЗ рджреЗрдЦреЗрдВ
--рдЪреЗрддрд╛рд╡рдиреА=рдЕрдкреНрд░рдЪрд▓рд┐рдд-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдЕрдкреНрд░рдЪрд▓рд┐рдд-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ
рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ env.рдХреЙрдкреА() рд╡рд┐рдзрд┐.
--рдЪреЗрддрд╛рд╡рдиреА=рдЕрдкреНрд░рдЪрд▓рд┐рдд-рд╕реНрд░реЛрдд-рд╣рд╕реНрддрд╛рдХреНрд╖рд░, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдЕрдкреНрд░рдЪрд▓рд┐рдд-рд╕реНрд░реЛрдд-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ
рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░()
рдХрд╛рд░реНрдп рдпрд╛ env.рд╕реНрд░реЛрдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░() рд╡рд┐рдзрд┐.
--рдЪреЗрддрд╛рд╡рдиреА=рдЕрдкреНрд░рдЪрд▓рд┐рдд-рд▓рдХреНрд╖реНрдп-рд╣рд╕реНрддрд╛рдХреНрд╖рд░, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдЕрдкреНрд░рдЪрд▓рд┐рдд-рд▓рдХреНрд╖реНрдп-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ
рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рд▓рдХреНрд╖реНрдпрд╣рд╕реНрддрд╛рдХреНрд╖рд░()
рдХрд╛рд░реНрдп рдпрд╛ env.рдЯрд╛рд░реНрдЧреЗрдЯрд╕рд┐рдЧреНрдиреЗрдЪрд░() рд╡рд┐рдзрд┐.
--рдЪреЗрддрд╛рд╡рдиреА=рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдкрд░реНрдпрд╛рд╡рд░рдг, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╣реАрдВ
рджреЛ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдЬреЛ рдПрдХ рд╣реА рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╣реИрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдоред
--рдЪреЗрддрд╛рд╡рдиреА=рдлреЛрд░рдЯреНрд░рд╛рди-cxx-рдорд┐рдХреНрд╕, --рдЪреЗрддрд╛рд╡рдиреА=рдиреЛ-рдлреЛрд░рдЯреНрд░рд╛рди-cxx-рдорд┐рдХреНрд╕
Fortran рдФрд░ C++ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдПрдХрд▓ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп, рдЬреЛ рдХреБрдЫ рд╕рдВрдХрд▓рдХреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
--рдЪреЗрддрд╛рд╡рдиреА=рднрд╡рд┐рд╖реНрдп-рдмрд╣рд┐рд╖реНрдХреГрдд, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рднрд╡рд┐рд╖реНрдп-рдмрд╣рд┐рд╖реНрдХреГрдд рдирд╣реАрдВ
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ.
рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдЬреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП SCons рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
build, рддрд╛рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛ рд╕рдХреЗ
рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ.
--рдЪреЗрддрд╛рд╡рдиреА=рд▓рд┐рдВрдХ, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рд▓рд┐рдВрдХ рдирд╣реАрдВ
рд▓рд┐рдВрдХ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ.
--рдЪреЗрддрд╛рд╡рдиреА=рднреНрд░рд╛рдордХ-рдХреАрд╡рд░реНрдб, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рднреНрд░рд╛рдордХ-рдХреАрд╡рд░реНрдб рдирд╣реАрдВ
рдЧрд▓рдд рд╡рд░реНрддрдиреА рд╡рд╛рд▓реЗ рдХреАрд╡рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрддреНрд░реЛрдд
рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордпред (рдЕрдВрддрд┐рдо рдиреЛрдЯ рдХрд░реЗрдВ s рд╡рд░реНрдгреЛрдВ рдХреА рд╕рд╣реА рд╡рд░реНрддрдиреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рд▓рдХреНрд╖реНрдп
рдФрд░ рд╕реНрд░реЛрддред) рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВ.
--рдЪреЗрддрд╛рд╡рдиреА=рдЕрдиреБрдкрд▓рдмреНрдз-рд╕реНрдХреЛрдирд╕реНрдХреНрд░рд┐рдкреНрдЯ, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдЕрдиреБрдкрд▓рдмреНрдз-рд╕реНрдХреЛрдирд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ
рдЧреБрдо SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╣реИрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдоред
--рдЪреЗрддрд╛рд╡рдиреА=no-md5-рдореЙрдбреНрдпреВрд▓, --рдЪреЗрддрд╛рд╡рдиреА=no-no-md5-рдореЙрдбреНрдпреВрд▓
рдкрд╛рдЗрдерди рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ MD5 рдЪреЗрдХрд╕рдо рдирд╣реАрдВ рд╣реИ
рдореЙрдбреНрдпреВрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВред
--рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕-рд╕рдорд░реНрдерди рдирд╣реАрдВ, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдХреЛрдИ-рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕-рд╕рдорд░реНрдерди рдирд╣реАрдВ
рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рдЬрдм --рдбрд┐рдмрдЧ=рдореЗрдореЛрдЗрдЬрд╝рд░ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред
--рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдСрдмреНрдЬреЗрдХреНрдЯ-рдЧрд┐рдирддреА рдирд╣реАрдВ, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдХреЛрдИ-рдСрдмреНрдЬреЗрдХреНрдЯ-рдЧрд┐рдирддреА рдирд╣реАрдВ
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ --рдбрд┐рдмрдЧ=рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдЬрдм рд╕реНрдХреИрдиреНрд╕
рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -O рд╡рд┐рдХрд▓реНрдк рдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдкрд╛рдпрдерди (.pyo) рдореЙрдбреНрдпреВрд▓ рд╕реЗред
--рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдорд░реНрдерди рдирд╣реАрдВ, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдорд░реНрдерди рдирд╣реАрдВ
рдкрд╛рдпрдерди рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ
рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬрдм -j рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред
--рдЪреЗрддрд╛рд╡рдиреА=рдкрд╛рдпрдерди-рд╕рдВрд╕реНрдХрд░рдг, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдкрд╛рдпрдерди-рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ
рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде SCons рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рдкрд╛рдпрдерди. рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВ.
--рдЪреЗрддрд╛рд╡рдиреА=рдЖрд░рдХреНрд╖рд┐рдд-рдЪрд░, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рдЖрд░рдХреНрд╖рд┐рдд-рдЪрд░ рдирд╣реАрдВ
рдЖрд░рдХреНрд╖рд┐рдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
рдирд╛рдореЛрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд, рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп, TARGET рдореЗрдВ, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, рд╕реНрд░реЛрдд,
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд or рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдпрдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред
--рдЪреЗрддрд╛рд╡рдиреА=рд╕реНрдЯреИрдХ-рдЖрдХрд╛рд░, --рдЪреЗрддрд╛рд╡рдиреА=рдХреЛрдИ-рд╕реНрдЯреИрдХ-рдЖрдХрд╛рд░ рдирд╣реАрдВ
рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВред
--рдЪреЗрддрд╛рд╡рдиреА=target_not_built, --рдЪреЗрддрд╛рд╡рдиреА=no-target_not_built
рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рд▓реНрдб рдирд┐рдпрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
рдпреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ.
-Y рдХреЛрд╖, --рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА=рдХреЛрд╖, --srcdir=рдХреЛрд╖
рд╕реНрдерд╛рдиреАрдп рдореЗрдВ рди рдорд┐рд▓реЗ рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдФрд░ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЛ рдЦреЛрдЬреЗрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо. рдПрдХрд╛рдзрд┐рдХ -Y рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдЬрд╝ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рд╕рдВрджрд░реНрдн
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд╣ рдореВрд▓ рдорд╛рдзреНрдпрдо рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрдЪрд╛рд░ рдХрд░рддреА рд╣реИрдВ
рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреИрдиреНрд╕. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдорд╛рд░реЛрд╣:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
рдЪрд░, рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдХреАрд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЛрдИ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(FOO = 'foo')
env['рдмрд╛рд░'] = 'рдмрд╛рд░'
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рднреА рд╕реЗрдЯ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдкрд╛рд░реНрд╕_рдлрд╝реНрд▓реИрдЧ
рдХреАрд╡рд░реНрдб рддрд░реНрдХ, рдЬреЛ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдкрд╛рд░реНрд╕рдлреНрд▓реИрдЧреНрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ (рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд)
рд╕рднреА рдЕрдиреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореВрд▓реНрдпред рдпрд╣ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рдЯреАрдХ рд╕рд╛рдордЧреНрд░реА
рдЭрдВрдбреЛрдВ рдХрд╛ рдЕрдЬреНрдЮрд╛рдд рд╣реЛрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдирд╛) рдпрд╛ рдпрджрд┐ рдЭрдВрдбреЗ рд╣реИрдВ
рдХрдИ рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(parse_flags = '-Iinclude -DEBUG -lm')
рдпрд╣ рдЙрджрд╛рд╣рд░рдг 'рд╢рд╛рдорд┐рд▓' рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд╕реАрдкреАрдкреАрдкреАрдПрде, 'EBUG' рдХреЛ рд╕реАрдкреАрдкреАрдбрд┐рдлрд╛рдЗрдиреНрд╕, рдФрд░ 'рдПрдо' рдХреЛ LIBS.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдФрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХрд┐рд╕реА рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = 'cygwin')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = 'os2')
env = рдкрд░реНрдпрд╛рд╡рд░рдг (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = 'posix')
env = рдкрд░реНрдпрд╛рд╡рд░рдг (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = 'win32')
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЖрд░рдВрдн рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
рдЙрдкрдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧреЛрдВ рдФрд░ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг
рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдкрд░ рдЯреНрд░реЗрдб рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ|
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ win32 рдордВрдЪ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд╕рд┐рд╕реНрдЯрдордбреНрд░рд╛рдЗрд╡ рдФрд░ рд╕рд┐рд╕реНрдЯрдорд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЪрд░
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╛рд╣реНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рд▓рд┐ рд╢рдмреНрджрдХреЛрд╢ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ рднреА
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдЬреЛ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рд╕реНрд░реЛрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдмрд╛рд╣рд░реА CVS рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреИрд╕реЗ
:рдкреАрд╕рд░реНрд╡рд░:[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]:/cvsroot/scons) рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ Environment()
рд╡рд┐рдзрд┐ рдирдП рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧреА:
рдбреЗрдлрд╝ my_platform(env):
env['VAR'] = 'xyzzy'
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = my_platform)
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = ['msvc', 'lex'])
рдЧреИрд░-рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ toolpath рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'foo'], рдЯреВрд▓рдкрд╛рде = ['рдЙрдкрдХрд░рдг'])
рдпрд╣ tools/foo.py рдореЗрдВ рдЯреВрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ (рд╕рд╛рде рд╣реА рд╕рд╛рдзрд╛рд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░рддрд╛ рд╣реИ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг). foo.py рдореЗрдВ рджреЛ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: generate(env, **kw) рдФрд░
рдореМрдЬреВрдж рд╣реИ(env). рдЙрддреНрдкрдиреНрди () рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЪрд░ рддрд╛рдХрд┐ рдЙрдкрдХрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ; рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЖрдкреВрд░реНрддрд┐ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдЗрд╕рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдореМрдЬреВрдж() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП
рдпрджрд┐ рдЙрдкрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ рддреЛ true рдорд╛рдиред рдЯреВрд▓рдкрде рдореЗрдВ рдЙрдкрдХрд░рдг рдХрд┐рд╕реА рднреА рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд╛рд▓реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреВрд▓рдкрд╛рде рдореЗрдВ gcc.py рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд gcc рдУрд╡рд░рд░рд╛рдЗрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛
рдЙрдкрдХрд░рдгред рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЯреВрд▓рдкрд╛рде рдХреЛ рдмрд╛рдж рдореЗрдВ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреНрд▓реЛрди() рддрдерд╛ рдЙрдкрдХрд░рдг() рд╡рд┐рдзрд┐рдпрд╛рдБ:
рдЖрдзрд╛рд░ = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЯреВрд▓рдкрд╛рде=['рдХрд╕реНрдЯрдо_рдкрд╛рде'])
рд╡реНрдпреБрддреНрдкрдиреНрди = рдЖрдзрд╛рд░.рдХреНрд▓реЛрди(рдЙрдкрдХрд░рдг=['рдХрд╕реНрдЯрдо_рдЯреВрд▓'])
рд╡реНрдпреБрддреНрдкрдиреНрди.рдХрд╕реНрдЯрдордмрд┐рд▓реНрдбрд░()
рдЙрдкрдХрд░рдг рд╕реВрдЪреА рдХреЗ рддрддреНрд╡ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
Environment() рд╡рд┐рдзрд┐ рдирдП рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧреА
рд╡рд╛рддрд╛рд╡рд░рдг:
рдбреЗрдлрд╝ my_tool(env):
env['XYZZY'] = 'xyzzy'
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = [my_tool])
рдЙрдкрдХрд░рдг рд╕реВрдЪреА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡ рд╕реНрд╡рдпрдВ рднреА рджреЛ-рддрддреНрд╡ рд╡рд╛рд▓реА рд╕реВрдЪрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдкреНрд░рдкрддреНрд░ (рдЙрдкрдХрд░рдг рдХрд╛ рдирд╛рдо, kw_рдбрд┐рдХреНрдЯ) SCons рдЦреЛрдЬрддрд╛ рд╣реИ рдЙрдкрдХрд░рдг рдХрд╛ рдирд╛рдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрдгрд┐рдд рд╣реИ
рдКрдкрд░, рдФрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИ kw_рдбрд┐рдХреНрдЯ, рдЬреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ
рдЙрддреНрдкрдиреНрди рд╕рдорд╛рд░реЛрд╣ред рдЙрддреНрдкрдиреНрди рдлрд╝рдВрдХреНрд╢рди рдЯреВрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдХрд░
рдкреНрд░рд╛рд░рдВрднред
# рдЯреВрд▓реНрд╕/my_tool.py рдореЗрдВ:
def рдЙрддреНрдкрдиреНрди (env, **kw):
# MY_TOOL рдХреЛ рдХреАрд╡рд░реНрдб рддрд░реНрдХ 'arg1' рдпрд╛ 1 рдХреЗ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
env['MY_TOOL'] = kw.get('arg1', '1')
def рдореМрдЬреВрдж рд╣реИ(env):
рд╡рд╛рдкрд╕реА 1
# рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдореЗрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', ('my_tool', {'arg1': 'abc'})],
рдЯреВрд▓рдкрд╛рде=['рдЯреВрд▓реНрд╕'])
рдЙрдкрдХрд░рдг рдкрд░рд┐рднрд╛рд╖рд╛ (рдЕрд░реНрдерд╛рдд my_tool()) рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ PLATFORM рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдХреЛрдИ рдЙрдкрдХрд░рдг рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ SCons рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕реНрд╡рддрдГ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдЧрд╛
ENV рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ PATH рдЪрд░ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╛рдо
рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж PATH рдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ
рдЬрд┐рд╕рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкреБрдирдГ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
SCons рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
386рдПрдПрд╕рдПрдо
рдлрд╝рд╛рд░ рд▓реИрдк рдИрдЯреАрдПрд╕ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд▓рд┐рдП 386ASM рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдоред
рд╕реЗрдЯ: $рдПрдПрд╕, $рдПрдПрд╕рдХреЙрдо, $рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕, $рдПрдПрд╕рдкреАрдкреАрдХреЙрдо, $ASPPFLAGS.
рдЙрдкрдпреЛрдЧ: $рд╕реАрд╕реА, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS, $_CPPINCFLAGS.
aixc++
IMB xlc / Visual Age C++ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXрд╕рдВрд╕реНрдХрд░рдг, $SHCXX, $SHOBJSUFFIX.
aixcc
IBM xlc / Visual Age C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрд╕рдВрд╕реНрдХрд░рдг, $рдПрд╕рдПрдЪрд╕реАрд╕реА.
aixf77
IBM Visual Age f77 Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $F77, $рдПрд╕рдПрдЪрдПрдл77.
рдРрдХреНрд╕рд▓рд┐рдВрдХ
IBM рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрдЬ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $SHLIBSUFFIX, $SHLINKFLAGS.
рдПрдкреНрдкрд▓рд▓рд┐рдВрдХ
рдПрдкреНрдкрд▓ рд▓рд┐рдВрдХрд░ (GNU рд▓рд┐рдВрдХрд░ рдХреЗ рд╕рдорд╛рди) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдлреНрд░реЗрдорд╡рд░реНрдХрдкрд╛рдердкреНрд░реАрдлрд┐рдХреНрд╕, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULEPREFIX,
$LDMODULESUFFIX $LDMODULESUFFIX, $рд▓рд┐рдВрдХрдХреЙрдо, $SHLINKCOM, $SHLINKFLAGS, $_рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде, $_рдлреНрд░реЗрдорд╡рд░реНрдХ.
рдЙрдкрдпреЛрдЧ: $FRAMEWORKSFLAGS.
ar
ar рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $рдПрдЖрд░рдХреЙрдо, $рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕, $LIBPREFIX, $LIBSUFFIX, $RANLIB, $RANLIBCOM,
$RANLIBFLAGS.
as
as рдЕрд╕реЗрдореНрдмрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдПрд╕, $рдПрдПрд╕рдХреЙрдо, $рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕, $рдПрдПрд╕рдкреАрдкреАрдХреЙрдо, $ASPPFLAGS.
рдЙрдкрдпреЛрдЧ: $рд╕реАрд╕реА, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS, $_CPPINCFLAGS.
bcc32
Bcc32 рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрдХреЙрдо, $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, $CFILESUPFIX $CFILESUPFIX, $рд╕реАрдлреНрд▓реИрдЧреНрд╕, $CPPDEFPREFIX, $CPPDEFSUFFIX,
$INCPREFIX, $INCSUFFIX, $рдПрд╕рдПрдЪрд╕реАрд╕реА, $SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHOBJSUFFIX.
рдЙрдкрдпреЛрдЧ: $_CPPDEFFLAGS, $_CPPINCFLAGS.
BitKeeper
рдмрд┐рдЯрдХреАрдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдмрд┐рдЯрдХреАрдкрд░, $рдмрд┐рдЯрдХреАрдкрд░рдХреЙрдо, $рдмрд┐рдЯрдХреАрдкрд░рдЧреЗрдЯ, $рдмрд┐рдЯрдХреАрдкрд░рдЧреЗрдЯрдлреНрд▓реИрдЧреНрд╕.
рдЙрдкрдпреЛрдЧ: $рдмрд┐рдЯрдХреАрдкрд░рдХреЙрдорд╕реНрдЯреНрд░.
cc
рдЬреЗрдиреЗрд░рд┐рдХ POSIX C рдХреЙрдкреАрдорд┐рд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрдХреЙрдо, $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, $CFILESUPFIX $CFILESUPFIX, $рд╕реАрдлреНрд▓реИрдЧреНрд╕, $CPPDEFPREFIX, $CPPDEFSUFFIX,
$рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде, $рдлреНрд░реЗрдорд╡рд░реНрдХ, $INCPREFIX, $INCSUFFIX, $рдПрд╕рдПрдЪрд╕реАрд╕реА, $SHCCCOM, $SHCCFLAGS,
$SHCFLAGS, $SHOBJSUFFIX.
рдЙрдкрдпреЛрдЧ: $рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо.
CVF
рдХреЙрдореНрдкреИрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдлреЛрд░рдЯреНрд░рд╛рди, $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо, $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░, $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░рдкреНрд░реАрдлрд┐рдХреНрд╕,
$FORTRANMODDIRSUFFIX, $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо, $рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕, $SHFORTRANCOM, $SHFORTRANPPCOM.
рдЙрдкрдпреЛрдЧ: $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $SHFORTRANFLAGS, $_CPPDEFFLAGS, $_FORTRANINCFLAGS,
$_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ.
CVS
рд╕реАрд╡реАрдПрд╕ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╡реАрдПрд╕, $CVSCOFLAGS, $рд╕реАрд╡реАрдПрд╕рдХреЙрдо, $CVSFLAGS.
рдЙрдкрдпреЛрдЧ: $CVSCOMSTR.
cXX
рд╕рд╛рдорд╛рдиреНрдп POSIX C++ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $CPPDEFPREFIX, $CPPDEFSUFFIX, $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXCOM, $CXXFILESUPFIX, $CXXFLAGS,
$INCPREFIX, $INCSUFFIX, $рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕, $SHCXX, $SHCXXCOM, $SHCXXFLAGS, $SHOBJSUFFIX.
рдЙрдкрдпреЛрдЧ: $CXXCOMSTR.
рд╕рд╛рдЗрдЧреНрд▓рд┐рдВрдХ
cygwin рд▓рд┐рдВрдХрд░/рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $IMPLIBPREFIX, $IMPLIBSUFFIX, $LDMODULEVERSIONFLAGS$ ..., $рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $RPATHPREFIX,
$RPATHSUFFIX, $SHLIBPREFIX, $SHLIBSUFFIX, $SHLIBVERSIONFLAGS, $SHLINKCOM,
$SHLINKFLAGS, $_LDMODULEVERSIONFLAGS $_LDMODULEVERSIONFLAGS, $_SHLIBVERSIONFLAGS.
рдЪреВрдХ
рдЙрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░
SCons рдЪрд▓ рд░рд╣рд╛ рд╣реИ.
рдбреАрдПрдордбреА
рдбреА рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ рдбреАрдПрдордбреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдбреАрд╕реА, $рдбреАрдХреЙрдо, $рдбреАрдбреАрдмрдЧ, $DDEBUGPREFIX, $DDEBUGSUFFIX, $DFILESUPFIX, $DFLAGPREFIX,
$рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $DFLAGSUFFIX, $DINCPREFIX, $DINCSUFFIX, $рдбреАрдПрд▓рдЖрдИрдмреА, $рдбреАрдПрд▓рдЖрдИрдмреАрдХреЙрдо, $DLIBDIRPREFIX,
$DLIBDIRSUPFIX, $DLIBFLAGPREFIX, $DLIBFLAGSUFFIX, $DLIBLINKPREFIX, $DLIBLINKSUFFIX,
$рдбреАрд▓рд┐рдВрдХ, $рдбреАрд▓рд┐рдВрдХрдХреЙрдо, $DLINKFLAGS, $рдбреАрдкрде, $DVERPREFIX, $рдбреАрд╕рдВрд╕реНрдХрд░рдг, $DVERSUFFIX,
$RPATHPREFIX, $RPATHSUFFIX, $рдПрд╕рдПрдЪрдбреАрд╕реА, $SHDCOM, $SHDрд▓рд┐рдВрдХ, $SHDLINKCOM, $SHDLINKFLAGS,
$_DDEBUGFLAGS, $_рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_DINCFLAGS, $_DLIBDIRFLAGS, $_DLIBFLAGS, $_DLIBFLAGS,
$_рдбреАрд╡рд░рдлреНрд▓реИрдЧреНрд╕, $_RPATH.
рдбреЙрдХрдмреБрдХ
рдпрд╣ рдЙрдкрдХрд░рдг SCons рдореЗрдВ Docbook рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
HTML рдпрд╛ PDF рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЙрд░реНрдореЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЯреВрд▓рдЪреЗрдиред
рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 1.76.1 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЙрдХрдмреБрдХ XSL рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХрд╛ рд╡рд┐рддрд░рдг рд╣реИред
рдЬрдм рддрдХ рдЖрдк рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ... рдЬрд┐рд╕рд╕реЗ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╕реЗрдЯрдЕрдк рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЖрдк
рдпрджрд┐ рдЖрдк рдорд┐рд▓рддреЗ рд╣реИрдВ рддреЛ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ XIncludes рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдИ рдЬрд╛рддреА рд╣реИ
HTML рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБред рдкреЙрд▓ рдбреБрдмреЙрдЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ utils/xmldepend.xsl рд╣реИ
рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ XML рдХреИрдЯрд▓реЙрдЧ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ! рдпрд╣ рдЙрдкрдХрд░рдг рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рд╕рд╛рде XSLT рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ PDF рд░реЗрдВрдбрд░рд░реНрд╕, рдмрд╕ рдЗрддрдирд╛ рд╣реАред
рдмрд╛рдХреА рд╕рдм рдЖрдкрдХреЗ рд╣рд╛рде рдореЗрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрднреА рднреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдПрдХ рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╛рдо.
"рдбреЙрдХрдмреБрдХ" рдЯреВрд▓ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░, рдЗрд╕ рддрд░рд╣
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
рдЕрдкрдиреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдбреЙрдХрдмреБрдХ рдЯреВрд▓ рдПрдХ рдЖрд╡рд╢реНрдпрдХ xsltproc рдкреНрд░реЛрд╕реЗрд╕рд░ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ
рдкреАрдбреАрдПрдл рд░реЗрдВрдбрд░рд░, рдЬреИрд╕реЗ рдХрд┐ fop. рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ
рд╡рд╛рддрд╛рд╡рд░рдг PATH рдФрд░ рдЙрдирдХрд╛ рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛, рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Docbook рдХреЛ HTML рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
┬╖ рдкрд╛рдЗрдерди lxml рдХреЛ libxml2 рд╕реЗ рдЬреЛрдбрд╝рдирд╛, рдпрд╛
┬╖ libxml2/libxslt рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд╛рдпрдерди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдпрд╛
┬╖ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди XSLT рдкреНрд░реЛрд╕реЗрд╕рд░, рд╡рд░реНрддрдорд╛рди рдореЗрдВ xsltproc, saxon, saxon-xslt рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ
рдФрд░ рдЬрд╝рд╛рд▓рд╛рди.
рдкреАрдбреАрдПрдл рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ fop рдпрд╛ xep рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
HTML рдпрд╛ PDF рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml('manual.html', 'manual.xml')
env.DocbookPdf('manual.pdf', 'manual.xml')
рдЕрдкрдиреЗ XML рд╕реНрд░реЛрдд manual.xml рд╕реЗ рджреЛрдиреЛрдВ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рджреЗ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рд╕реНрдЯреЗрдо рдЕрдХреЗрд▓реЗ, рдЗрд╕ рддрд░рд╣:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml('рдореИрдиреБрдЕрд▓')
env.DocbookPdf('рдореИрдиреБрдЕрд▓')
рдФрд░ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рд╕реВрдЪрд┐рдпрд╛рдБ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml'])
рдпрд╛ рдпрд╣рд╛рдБ рддрдХ
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml(['рдореИрдиреБрдЕрд▓','рд╕рдВрджрд░реНрдн'])
рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг
рдЬрдм рднреА рдЖрдк рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдпрд╣ рдЯреВрд▓ рджрд┐рдП рдЧрдП рдирд╛рдореЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓рдХреНрд╖реНрдп рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рддрджрдиреБрд╕рд╛рд░.
рдЙрдкрд░реЛрдХреНрдд рдирд┐рдпрдо рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИрдВ рдбреЙрдХрдмреБрдХрдПрдЪрдЯреАрдПрдордПрд▓, рдбреЙрдХрдмреБрдХрдкреАрдбреАрдПрдл, рдбреЙрдХрдмреБрдХрдИрдкрдм,
рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕рдкреАрдбреАрдПрдл рдФрд░ рдбреЙрдХрдмреБрдХXрд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХрдореИрди рдкрд░рд┐рд╡рд░реНрддрди рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
рдЕрдкрдиреЗ XML рд╕реНрд░реЛрдд рдореЗрдВ refname рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ.
рдмрд┐рд▓реНрдбрд░реНрд╕ DocbookHtmlрдЪрдВрдХреНрдб, рдбреЙрдХрдмреБрдХHtmlрдорджрдж рдФрд░ рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕Html рд╡рд┐рд╢реЗрд╖ рд╣реИрдВ,
рдХрд┐:
1. рд╡реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╕рдЯреАрдХ рдирд╛рдо рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА, рдФрд░
2. рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд╛рдо рд╣рдореЗрд╢рд╛ index.html рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд XSL рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдирд╛рдо
рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд▓рдХреНрд╖реНрдп HTML рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореВрд▓
рдЗрди рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlhelp('рдореИрдиреБрдЕрд▓')
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ XSL рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд xsl рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрдкрдиреЗ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЙрд▓ рдХрд░реЗрдВ:
env.DocbookHtml('рдЕрдиреНрдп.html', 'рдореИрдиреБрдЕрд▓.xml', xsl='html.xsl')
рдЪреВрдВрдХрд┐ рдпрд╣ рдердХрд╛рдК рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕реНрдерд╛рдиреАрдп рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
XSL рдлрд╝рд╛рдЗрд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП HTML рдХреЗ рд▓рд┐рдП html.xsl рдФрд░ PDF рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП pdf.xsl, рдХреЗ рд▓рд┐рдП рдЪрд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSL рдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВред рдпреЗ рд╣реИрдВ:
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_HTML
DOCBOOK_DEFAULT_XSL_HTMLCHUNKED
DOCBOOK_DEFAULT_XSL_HTMLрд╕рд╣рд╛рдпрддрд╛
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_рдкреАрдбреАрдПрдл
DOCBOOK_рдбрд┐рдлрд╝рд╛рд▓реНрдЯ_XSL_EPUB
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_MAN
DOCBOOK_DEFAULT_XSL_SLIDESрдкреАрдбреАрдПрдл
DOCBOOK_DEFAULT_XSL_SLIDESHTML
рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдЗрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'],
DOCBOOK_DEFAULT_XSL_HTML='html.xsl',
DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl')
env.DocbookHtml('manual') # рдЕрдм html.xsl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕реЗрдЯ: $DOCBOOK_DEFAULT_XSL_EPUB, $DOCBOOK_DEFAULT_XSL_HTML,
$DOCBOOK_DEFAULT_XSL_HTMLCHUNKED, $DOCBOOK_DEFAULT_XSL_HTMLHELP,
$DOCBOOK_DEFAULT_XSL_MAN, $DOCBOOK_DEFAULT_XSL_рдкреАрдбреАрдПрдл, $DOCBOOK_DEFAULT_XSL_SLIDESHTML,
$DOCBOOK_DEFAULT_XSL_SLIDESрдкреАрдбреАрдПрдл, $DOCBOOK_FOP, $DOCBOOK_FOPCOM, $DOCBOOK_FOPFLAGS$ ...,
$DOCBOOK_XMLLINT, $DOCBOOK_XMLLINTCOM, $DOCBOOK_XMLLINTFLAGS $DOCBOOK_XMLLINTFLAGS, $DOCBOOK_XSLTPROC,
$DOCBOOK_XSLTPROCCOM, $DOCBOOK_XSLTPROCFLAGS$ ..., $DOCBOOK_XSLTPROCPARAMS $DOCBOOK_XSLTPROCPARAMS.
рдЙрдкрдпреЛрдЧ: $DOCBOOK_FOPCOMSTR, $DOCBOOK_XMLLINTCOMSTR, $DOCBOOK_XSLTPROCCOMSTR.
рдбреАрд╡реАрдЖрдИ
рдЬреЛрдбрд╝рддрд╛ рд╣реИ DVI рдмрд┐рд▓реНрдбрд░ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ред
рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдл
dvipdf рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдл, $DVIPDFCOM, $DVIPDFFLAGS.
рдЙрдкрдпреЛрдЧ: $DVIPDFCOMSTR.
рдбреАрд╡реАрдЖрдИрдкреА
dvips рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдбреАрд╡реАрдЖрдИрдкреА, $DVIPSFLAGS, $рдкреАрдПрд╕рдХреЙрдо, $PSPREFIX, $PSSUFFIX.
рдЙрдкрдпреЛрдЧ: $рдкреАрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░.
f03
рдЬреЗрдиреЗрд░рд┐рдХ POSIX Fortran 03 рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F03, $F03COM, $F03рдлрд╝реНрд▓реИрдЧ, $F03рдкреАрдкреАрдХреЙрдо, $рдПрд╕рдПрдЪрдПрдл03, $SHF03COM, $SHF03рдлрд╝реНрд▓реИрдЧ,
$SHF03PPCOM, $_F03INCFLAGS.
рдЙрдкрдпреЛрдЧ: $F03COMSTR, $F03PPCOMSTR, $SHF03COMSTR, $SHF03PPCOMSTR.
f08
рдЬреЗрдиреЗрд░рд┐рдХ POSIX Fortran 08 рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F08, $F08COM, $F08рдлрд╝реНрд▓реИрдЧ, $F08рдкреАрдкреАрдХреЙрдо, $рдПрд╕рдПрдЪрдПрдл08, $SHF08COM, $SHF08рдлрд╝реНрд▓реИрдЧ,
$SHF08PPCOM, $_F08INCFLAGS.
рдЙрдкрдпреЛрдЧ: $F08COMSTR, $F08PPCOMSTR, $SHF08COMSTR, $SHF08PPCOMSTR.
f77
рдЬреЗрдиреЗрд░рд┐рдХ POSIX Fortran 77 рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F77, $F77COM, $F77рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕, $F77рдлрд╝реНрд▓реИрдЧ, $F77рдкреАрдкреАрдХреЙрдо, $F77PPFILESUPFIXES$ ...,
$рдлреЛрд░рдЯреНрд░рд╛рди, $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо, $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $рдПрд╕рдПрдЪрдПрдл77, $SHF77COM, $SHF77рдлрд╝реНрд▓реИрдЧ, $SHF77PPCOM,
$SHFORTRAN, $SHFORTRANCOM, $SHFORTRANFLAGS, $SHFORTRANPPCOM, $_F77INCFLAGS.
рдЙрдкрдпреЛрдЧ: $F77COMSTR, $F77PPCOMSTR, $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдорд╕реНрдЯреНрд░, $FORTRANPPCOMSTR, $SHF77COMSTR,
$SHF77PPCOMSTR, $SHFORTRANCOMSTR, $SHFORTRANPPCOMSTR.
f90
рдЬреЗрдиреЗрд░рд┐рдХ POSIX Fortran 90 рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F90, $F90COM, $F90рдлрд╝реНрд▓реИрдЧ, $F90рдкреАрдкреАрдХреЙрдо, $рдПрд╕рдПрдЪрдПрдл90, $SHF90COM, $SHF90рдлрд╝реНрд▓реИрдЧ,
$SHF90PPCOM, $_F90INCFLAGS.
рдЙрдкрдпреЛрдЧ: $F90COMSTR, $F90PPCOMSTR, $SHF90COMSTR, $SHF90PPCOMSTR.
f95
рдЬреЗрдиреЗрд░рд┐рдХ POSIX Fortran 95 рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F95, $F95COM, $F95рдлрд╝реНрд▓реИрдЧ, $F95рдкреАрдкреАрдХреЙрдо, $рдПрд╕рдПрдЪрдПрдл95, $SHF95COM, $SHF95рдлрд╝реНрд▓реИрдЧ,
$SHF95PPCOM, $_F95INCFLAGS.
рдЙрдкрдпреЛрдЧ: $F95COMSTR, $F95PPCOMSTR, $SHF95COMSTR, $SHF95PPCOMSTR.
рдлреЛрд░рдЯреНрд░рд╛рди
рд╕рд╛рдорд╛рдиреНрдп POSIX Fortran рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $рдлреЛрд░рдЯреНрд░рд╛рди, $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо, $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $SHFORTRAN, $SHFORTRANCOM,
$SHFORTRANFLAGS, $SHFORTRANPPCOM.
рдЙрдкрдпреЛрдЧ: $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдорд╕реНрдЯреНрд░, $FORTRANPPCOMSTR, $SHFORTRANCOMSTR, $SHFORTRANPPCOMSTR.
рдЬреА ++
gXX C++ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXрд╕рдВрд╕реНрдХрд░рдг, $SHCXXFLAGS, $SHOBJSUFFIX.
g77
g77 Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред f77 рдЯреВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВ.
рдЧреИрд╕
рдЧреИрд╕ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред as рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдПрд╕.
рдЬреАрд╕реАрд╕реА
рдЬреАрд╕реАрд╕реА рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрд╕рдВрд╕реНрдХрд░рдг, $SHCCFLAGS.
рдЬреАрдбреАрд╕реА
рдбреА рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ GDC рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдбреАрд╕реА, $рдбреАрдХреЙрдо, $рдбреАрдбреАрдмрдЧ, $DDEBUGPREFIX, $DDEBUGSUFFIX, $DFILESUPFIX, $DFLAGPREFIX,
$рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $DFLAGSUFFIX, $DINCPREFIX, $DINCSUFFIX, $рдбреАрдПрд▓рдЖрдИрдмреА, $рдбреАрдПрд▓рдЖрдИрдмреАрдХреЙрдо, $DLIBFLAGPREFIX,
$DLIBFLAGSUFFIX, $рдбреАрд▓рд┐рдВрдХ, $рдбреАрд▓рд┐рдВрдХрдХреЙрдо, $DLINKFLAGPREFIX, $DLINKFLAGS, $DLINKFLAGSUFFIX,
$рдбреАрдкрде, $DVERPREFIX, $рдбреАрд╕рдВрд╕реНрдХрд░рдг, $DVERSUFFIX, $RPATHPREFIX, $RPATHSUFFIX, $рдПрд╕рдПрдЪрдбреАрд╕реА,
$SHDCOM, $SHDрд▓рд┐рдВрдХ, $SHDLINKCOM, $SHDLINKFLAGS, $_DDEBUGFLAGS, $_рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_DINCFLAGS,
$_DLIBFLAGS, $_рдбреАрд╡рд░рдлреНрд▓реИрдЧреНрд╕, $_RPATH.
gettext
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯреВрд▓рд╕реЗрдЯ рд╣реИ, рдЬреЛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
SCons рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ред рдЯреВрд▓рд╕реЗрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдг рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ:
┬╖ xgettext - рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ POT рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рддрдХ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП,
┬╖ msginit - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
┬╖ msgmerge - PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдирдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕рдВрджреЗрд╢ рдореМрдЬреВрдж рд╣реИрдВ,
┬╖ msgfmt - рдкрд╛рдареНрдп PO рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп MO рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЬрдм рдЖрдк gettext рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рднреА рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк
рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдмрд┐рд▓реНрдбрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖ рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдХреБрдЫ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдмрд╛рдж рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ.
gettext рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ 'gettext' рдЯреВрд▓ рдЬреЛрдбрд╝реЗрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'gettext'] )
рдЧреНрдлреЛрд░рдЯреНрд░рд╛рди
GNU F95/F2003 GNU рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $F77, $F90, $F95, $рдлреЛрд░рдЯреНрд░рд╛рди, $рдПрд╕рдПрдЪрдПрдл77, $SHF77рдлрд╝реНрд▓реИрдЧ, $рдПрд╕рдПрдЪрдПрдл90, $SHF90рдлрд╝реНрд▓реИрдЧ, $рдПрд╕рдПрдЪрдПрдл95,
$SHF95рдлрд╝реНрд▓реИрдЧ, $SHFORTRAN, $SHFORTRANFLAGS.
рдЧреНрдиреБрд▓рд┐рдВрдХ
GNU рд▓рд┐рдВрдХрд░/рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $LDMODULEVERSIONFLAGS$ ..., $RPATHPREFIX, $RPATHSUFFIX, $SHLIBVERSIONFLAGS,
$SHLINKFLAGS, $_LDMODULESONAME, $_SHLIBSONAME.
gs
рдпрд╣ рдЯреВрд▓ рдШреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдпрд╣ рдкреАрдбреАрдПрдл рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рднреА рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ (рдкреАрдбреАрдПрдл), рдРрд╕рд╛ рд╣реИ рдХрд┐
TeX/LaTeX рдЯреВрд▓рдЪреЗрди рдХреЗ рд▓рд┐рдП PS/EPS рд╕реЗ PDF рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдШреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдбрд░ (Gs) рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛред
рд╕реЗрдЯ: $ рдЬреА рдПрд╕, $рдЬреАрдПрд╕рдХреЙрдо, $рдЬреАрдПрд╕рдПрдлрдПрд▓рдПрдЬреАрдПрд╕.
рдЙрдкрдпреЛрдЧ: $рдЬреАрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░.
рдПрдЪрдкреАрд╕реА++
HP/UX рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдВрдХрд▓рдХ aCC рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдПрдЪрдкреАрд╕реАрд╕реА
HP/UX рд╕рд┐рд╕реНрдЯрдо рдкрд░ aCC рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП cXX рдЯреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░.
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXрд╕рдВрд╕реНрдХрд░рдг, $SHCXXFLAGS.
рдПрдЪрдкреАрд▓рд┐рдВрдХ
HP/UX рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $SHLIBSUFFIX, $SHLINKFLAGS.
рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб
OS/2 рд╕рд┐рд╕реНрдЯрдо рдкрд░ icc рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрдХреЙрдо, $CFILESUPFIX $CFILESUPFIX, $CPPDEFPREFIX, $CPPDEFSUFFIX, $CXXCOM,
$CXXFILESUPFIX, $INCPREFIX, $INCSUFFIX.
рдЙрдкрдпреЛрдЧ: $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, $рд╕реАрдлреНрд▓реИрдЧреНрд╕, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS, $_CPPINCFLAGS.
рдЖрдИрд╕реАрдПрд▓
рдЗрдВрдЯреЗрд▓ C/C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯреЗрд▓ рдЯреВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдЗрд╕рдХреЗ рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.
рдЖрдИрдПрдлрдПрд▓
рдЗрдВрдЯреЗрд▓ рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдлреЛрд░рдЯреНрд░рд╛рди, $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо, $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо, $SHFORTRANCOM, $SHFORTRANPPCOM.
рдЙрдкрдпреЛрдЧ: $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $_CPPDEFFLAGS, $_FORTRANINCFLAGS.
рдЗрдлреЛрд░реНрдЯ
рдЗрдВрдЯреЗрд▓ рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рд▓рд┐рдирдХреНрд╕ред
рд╕реЗрдЯ: $F77, $F90, $F95, $рдлреЛрд░рдЯреНрд░рд╛рди, $рдПрд╕рдПрдЪрдПрдл77, $SHF77рдлрд╝реНрд▓реИрдЧ, $рдПрд╕рдПрдЪрдПрдл90, $SHF90рдлрд╝реНрд▓реИрдЧ, $рдПрд╕рдПрдЪрдПрдл95,
$SHF95рдлрд╝реНрд▓реИрдЧ, $SHFORTRAN, $SHFORTRANFLAGS.
iLink
OS/2 рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ ilink рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX, $ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо,
$рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ.
ilink32
рдмреЛрд░рд▓реИрдВрдб ilink32 рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX, $ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо,
$рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ.
рд╕реНрдерд╛рдкрд┐рдд
рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЗрдВрд╕реНрдЯреЙрд▓, $INSTALLSTR.
рдЗрдВрдЯреЗрд▓
рдЗрдВрдЯреЗрд▓ C/C++ рдХрдВрдкрд╛рдЗрд▓рд░ (рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ, рд╕рдВрд╕реНрдХрд░рдг 7) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдФрд░ рдмрд╛рдж рдореЗрдВ)ред рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gcc рдпрд╛ msvc (рдХреНрд░рдорд╢рдГ Linux рдФрд░ Windows рдкрд░) рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд░.
рд╕реЗрдЯ: $рдПрдЖрд░, $рд╕реАрд╕реА, $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $INTEL_C_COMPILER_VERSION, $ рд▓рд┐рдВрдХ.
рдЬрд╛рд░
jar рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЬрд╛рд░, $рдЬрд╛рд░рдХреЙрдо, $рдЬрд╛рд░рдлрд╝реНрд▓реИрдЧреНрд╕, $JARSUFFIX.
рдЙрдкрдпреЛрдЧ: $рдЬрд╛рд░рдХреЙрдорд╕реНрдЯреНрд░.
рдЬреЗрд╡реИрдХ
javac рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $JAVABOOTCLASSPATH, $рдЬрд╛рд╡реИрдХ, $рдЬрд╛рд╡реИрдХрдХреЙрдо, $JAVACFLAGS, $рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕рдкрд╛рде,
$JAVACLASSSUFFIX, $рдЬрд╛рд╡рд╛рд╕реЛрд░реНрд╕рдкрде, $рдЬрд╛рд╡рд╛рд╕реБрдлрд╝рд┐рдХреНрд╕.
рдЙрдкрдпреЛрдЧ: $JAVACCOMSTR.
рдЬрд╛рд╡рд╣
javah рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $JAVACLASSSUFFIX, $рдЬрд╛рд╡рд╛, $рдЬрд╛рд╡рд╛рдХреЙрдо, $рдЬрд╛рд╡рд╛рдлреНрд▓реИрдЧреНрд╕.
рдЙрдкрдпреЛрдЧ: $рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕рдкрд╛рде, $рдЬрд╛рд╡рд╛рдХреЙрдорд╕реНрдЯреНрд░.
рд▓рд╛рдЯреЗрдХрд╕
рд▓реЗрдЯреЗрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд▓реЗрдЯреЗрдХреНрд╕, $рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо, $LATEXFLAGS.
рдЙрдкрдпреЛрдЧ: $LATEXCOMSTR.
рдПрд▓рдбреАрд╕реА
рдбреА рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ LDC2 рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдбреАрд╕реА, $рдбреАрдХреЙрдо, $рдбреАрдбреАрдмрдЧ, $DDEBUGPREFIX, $DDEBUGSUFFIX, $DFILESUPFIX, $DFLAGPREFIX,
$рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $DFLAGSUFFIX, $DINCPREFIX, $DINCSUFFIX, $рдбреАрдПрд▓рдЖрдИрдмреА, $рдбреАрдПрд▓рдЖрдИрдмреАрдХреЙрдо, $DLIBDIRPREFIX,
$DLIBDIRSUPFIX, $DLIBFLAGPREFIX, $DLIBFLAGSUFFIX, $DLIBLINKPREFIX, $DLIBLINKSUFFIX,
$рдбреАрд▓рд┐рдВрдХ, $рдбреАрд▓рд┐рдВрдХрдХреЙрдо, $DLINKFLAGPREFIX, $DLINKFLAGS, $DLINKFLAGSUFFIX, $рдбреАрдкрде,
$DVERPREFIX, $рдбреАрд╕рдВрд╕реНрдХрд░рдг, $DVERSUFFIX, $RPATHPREFIX, $RPATHSUFFIX, $рдПрд╕рдПрдЪрдбреАрд╕реА, $SHDCOM,
$SHDрд▓рд┐рдВрдХ, $SHDLINKCOM, $SHDLINKFLAGS, $_DDEBUGFLAGS, $_рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_DINCFLAGS,
$_DLIBDIRFLAGS, $_DLIBFLAGS, $_DLIBFLAGS, $_рдбреАрд╡рд░рдлреНрд▓реИрдЧреНрд╕, $_RPATH.
рд▓реЗрдХреНрд░рд╕
рд▓реЗрдХреНрд╕ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд▓реЗрдХреНрд╕, $рд▓реЗрдХреНрд╕рдХреЙрдо, $рд▓реЗрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕.
рдЙрдкрдпреЛрдЧ: $рд▓реЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░.
рд╕рдВрдкрд░реНрдХ
рдЬреЗрдиреЗрд░рд┐рдХ POSIX рд▓рд┐рдВрдХрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрд▓рдбреАрдореЙрдбреНрдпреВрд▓, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULENOVERSIONSYMLINKS,
$LDMODULEPREFIX, $LDMODULESUFFIX $LDMODULESUFFIX, $LDMODULEVERSION ..., $LDMODULEVERSIONFLAGS$ ...,
$LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX, $ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо,
$рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $SHLIBSUFFIX, $SHLINK, $SHLINKCOM, $SHLINKFLAGS, $__LDMODULEVERSIONFLAGS,
$__SHLIBVERSIONFLAGS.
рдЙрдкрдпреЛрдЧ: $LDMODULECOMSTR, $рд▓рд┐рдВрдХрдХреЙрдорд╕реНрдЯреНрд░, $SHLINKCOMSTR.
рд▓рд┐рдВрдХрд▓реЛрдХ
рдлрд╝рд╛рд░ рд▓реИрдк рдИрдЯреАрдПрд╕ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд▓реЛрдХ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдоред
рд╕реЗрдЯ: $LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX, $ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо,
$рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $SHLINK, $SHLINKCOM, $SHLINKFLAGS.
рдЙрдкрдпреЛрдЧ: $рд▓рд┐рдВрдХрдХреЙрдорд╕реНрдЯреНрд░, $SHLINKCOMSTR.
m4
m4 рдореИрдХреНрд░реЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдо4, $M4COM, $M4FLAGS.
рдЙрдкрдпреЛрдЧ: $M4COMSTR.
рдорд╛рд╕реНрдореА
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрд╕реЗрдореНрдмрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдПрд╕, $рдПрдПрд╕рдХреЙрдо, $рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕, $рдПрдПрд╕рдкреАрдкреАрдХреЙрдо, $ASPPFLAGS.
рдЙрдкрдпреЛрдЧ: $рдПрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░, $ASPPCOMSTR, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS, $_CPPINCFLAGS.
рдордзреНрдпрдо
Microsoft IDL рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдордЖрдИрдбреАрдПрд▓, $рдорд┐рдбрд▓рдХреЙрдо, $MIDLFLAGS$ ....
рдЙрдкрдпреЛрдЧ: $MIDLCOMSTR.
рдорд┐рдВрдЧрд╡
MinGW (рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдиреНрдпреВрдирддрдо Gnu) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдПрд╕, $рд╕реАрд╕реА, $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $LDMODULECOM, $LIBPREFIX, $LIBSUFFIX, $рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕, $рдЖрд░рд╕реА, $рдЖрд░рд╕реАрдХреЙрдо,
$RCFLAGS, $RCINCFLAGS, $RCINCPREFIX, $RCINCSUFFIX, $SHCCFLAGS, $SHCXXFLAGS,
$SHLINKCOM, $SHLINKFLAGS, $SHOBJSUFFIX, $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX.
рдЙрдкрдпреЛрдЧ: $RCCOMSTR, $SHLINKCOMSTR.
рд╕рдВрджреЗрд╢
рдпрд╣ scons рдЯреВрд▓ scons gettext рдЯреВрд▓рд╕реЗрдЯ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ scons рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд╕рдВрджреЗрд╢(1) рдХрдорд╛рдВрдб, рдЬреЛ рдкрд╛рдареНрдп рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдмрд╛рдЗрдирд░реА рд╕рдВрджреЗрд╢ рдХреИрдЯрд▓реЙрдЧ (рдПрдордУ) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╡рд░рдг (рдкреАрдУ).
рд╕реЗрдЯ: $рдореЛрд╕рдлрд╝рд┐рдХреНрд╕, $рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреА, $рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреАрдХреЙрдо, $MSGFMTCOMSTR, $MSGFMTFLAGS, $POSUFFIX.
рдЙрдкрдпреЛрдЧ: $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓.
msginit
рдпрд╣ scons рдЯреВрд▓ scons gettext рдЯреВрд▓рд╕реЗрдЯ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ scons рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
msginit(1) рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдЬреЛ рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реБрдП рдирдИ PO рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг (рдпрд╛ рд╡рд┐рдХрд▓реНрдк) рд╕реЗ рдорд╛рди.
рд╕реЗрдЯ: $MSGINIT, $MSGINITCOM, $MSGINITCOMSTR, $MSGINITFLAGS, $POрдСрдЯреЛрдЗрдирд┐рдЯ,
$POCREATE_ALIAS, $POSUFFIX, $POTSUPFIX$ ..., $_MSGINITLOCALE.
рдЙрдкрдпреЛрдЧ: $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓, $POрдСрдЯреЛрдЗрдирд┐рдЯ, $POTDOMAIN.
рд╕рдВрджреЗрд╢ рдорд░реНрдЬ
рдпрд╣ scons рдЯреВрд▓ scons gettext рдЯреВрд▓рд╕реЗрдЯ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ scons рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рдХрдорд╛рдВрдб, рдЬреЛ рджреЛ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рд╕реНрдЯрд╛рдЗрд▓ .po рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $MSGMERGE, $MSGMERGECOM, $MSGMERGECOMSTR, $MSGMERGEFLAGS, $POSUFFIX, $POTSUPFIX$ ...,
$POUPDATE_ALIAS.
рдЙрдкрдпреЛрдЧ: $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓, $POрдСрдЯреЛрдЗрдирд┐рдЯ, $POTDOMAIN.
рдПрдордПрд╕рд▓рд┐рдм
Microsoft mslib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $рдПрдЖрд░рдХреЙрдо, $рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕, $LIBPREFIX, $LIBSUFFIX.
рдЙрдкрдпреЛрдЧ: $ARCOMSTR.
mslink
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрд▓рдбреАрдореЙрдбреНрдпреВрд▓, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULEPREFIX, $LDMODULESUFFIX $LDMODULESUFFIX,
$LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX, $ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо,
$рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ, $рдЖрд░рдИрдЬреАрдПрд╕рд╡реАрдЖрд░, $REGSVRCOM, $REGSVRFLAGS, $SHLINK, $SHLINKCOM, $SHLINKFLAGS,
$WIN32DEFPREFIX, $WIN32DEFSUFFIX, $WIN32EXPPREFIX, $WIN32EXPSUFFIX, $WINDOWSDEFPREFIX,
$WINDOWSDEFSUFFIX, $WINDOWSEXPPREFIX, $WINDOWSEXPSUFFIX, $WINDOWSPROGMANIFESTPREFIX,
$WINDOWSPROGMANIFESTSUFFIX, $WINDOWSSHLIBMANIFESTPREFIX, $WINDOWSSHLIBMANIFESTSUFFIX,
$WINDOWS_INSERT_DEF.
рдЙрдкрдпреЛрдЧ: $LDMODULECOMSTR, $рд▓рд┐рдВрдХрдХреЙрдорд╕реНрдЯреНрд░, $REGSVRCOMSTR, $SHLINKCOMSTR.
рдПрдордПрд╕рдПрд╕рдбреАрдХреЗ
Microsoft Platform SDK рдФрд░/рдпрд╛ Windows SDK рдХреЗ рд▓рд┐рдП рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд╡рд┐рдкрд░реАрдд
рдЕрдиреНрдп рдЯреВрд▓ рдореЙрдбреНрдпреВрд▓, mssdk рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ SCons Microsoft рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ
рдЯреВрд▓рдЪреЗрди: %INCLUDE%, %LIB%, %LIBPATH% рдФрд░ %PATH%.
рдЙрдкрдпреЛрдЧ: $MSSDK_DIR, $MSSDK_рд╕рдВрд╕реНрдХрд░рдг, $MSVS_рд╕рдВрд╕реНрдХрд░рдг.
рдПрдордПрд╕рд╡реАрд╕реА
Microsoft Visual C/C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдмрд┐рд▓реНрдбрд░реНрд╕, $рд╕реАрд╕реА, $рд╕реАрд╕реАрдХреЙрдо, $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, $CCPCHFLAGS, $рд╕реАрд╕реАрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕, $CFILESUPFIX $CFILESUPFIX,
$рд╕реАрдлреНрд▓реИрдЧреНрд╕, $CPPDEFPREFIX, $CPPDEFSUFFIX, $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXCOM, $CXXFILESUPFIX, $CXXFLAGS,
$INCPREFIX, $INCSUFFIX, $рдУрдмреАрдЬреЗрдкреАрд░рд┐рдлрд┐рдХреНрд╕, $рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕, $рдкреАрд╕реАрдПрдЪрд╕реАрдУрдПрдо, $PCHPDBFLAGS, $рдЖрд░рд╕реА, $рдЖрд░рд╕реАрдХреЙрдо,
$RCFLAGS, $рдПрд╕рдПрдЪрд╕реАрд╕реА, $SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHCXX, $SHCXXCOM, $SHCXXFLAGS,
$SHOBJPREFIX, $SHOBJSUFFIX.
рдЙрдкрдпреЛрдЧ: $рд╕реАрд╕реАрдХреЙрдорд╕реНрдЯреНрд░, $CXXCOMSTR, $рдкреАрд╕реАрдПрдЪ, $рдкреАрд╕реАрдПрдЪрдПрд╕рдЯреЙрдк, $рдкреАрдбреАрдмреА, $SHCCCOMSTR, $SHCXXCOMSTR.
рдПрдордПрд╕рд╡реАрдПрд╕
Microsoft Visual Studio рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $MSVSBUILDCOM, $MSVSCLEANCOM, $MSVSENCODING, $MSVSPROJECTCOM, $MSVSREBUILDCOM,
$рдПрдордПрд╕рд╡реАрдПрд╕рдПрд╕рд╕реАрдУрдПрдирдПрд╕, $MSVSSCONSCOM, $MSVSSCONSCRIPT, $MSVSSCONSFLAGS, $MSVSSOLUTIONCOM.
рдПрдордбрдмреНрд▓реНрдпреВрд╕реАрд╕реА
рдореЗрдЯреНрд░реЛрд╡рд░реНрдХреНрд╕ рдХреЛрдбрд╡реЙрд░рд┐рдЕрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрд╕реА, $рд╕реАрд╕реАрдХреЙрдо, $CFILESUPFIX $CFILESUPFIX, $CPPDEFPREFIX, $CPPDEFSUFFIX, $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXCOM,
$CXXFILESUPFIX, $INCPREFIX, $INCSUFFIX, $MWCW_рд╕рдВрд╕реНрдХрд░рдг, $MWCW_рд╕рдВрд╕реНрдХрд░рдг, $рдПрд╕рдПрдЪрд╕реАрд╕реА,
$SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHCXX, $SHCXXCOM, $SHCXXFLAGS.
рдЙрдкрдпреЛрдЧ: $рд╕реАрд╕реАрдХреЙрдорд╕реНрдЯреНрд░, $CXXCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR.
рдПрдордбрдмреНрд▓реВрдПрд▓рдбреА
рдореЗрдЯреНрд░реЛрд╡рд░реНрдХреНрд╕ рдХреЛрдбрд╡реЙрд░рд┐рдЕрд░ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $рдПрдЖрд░рдХреЙрдо, $LIBDIRPREFIX, $LIBDIRSUFFIX, $LIBLINKPREFIX, $LIBLINKSUFFIX,
$ рд▓рд┐рдВрдХ, $рд▓рд┐рдВрдХрдХреЙрдо, $SHLINK, $SHLINKCOM, $SHLINKFLAGS.
рдПрдирдПрдПрд╕рдПрдо
nasm рдиреЗрдЯрд╡рд╛рдЗрдб рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдПрд╕, $рдПрдПрд╕рдХреЙрдо, $рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕, $рдПрдПрд╕рдкреАрдкреАрдХреЙрдо, $ASPPFLAGS.
рдЙрдкрдпреЛрдЧ: $рдПрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░, $ASPPCOMSTR.
рдкреИрдХреЗрдЬрд┐рдВрдЧ
рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдкреИрдХреЗрдЬ рдирд┐рд░реНрдорд╛рддрд╛ред
рдкреИрдХреЗрдЬрд┐рдВрдЧ
рдмрд╛рдЗрдирд░реА рдФрд░ рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдврд╛рдВрдЪрд╛ред
рдкреАрдбреАрдПрдл
рдкреЛрд░реНрдЯреЗрдмрд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдлреЙрд░реНрдореЗрдЯ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдкреАрдбреАрдПрдлрдкреНрд░реАрдлрд┐рдХреНрд╕, $рдкреАрдбреАрдПрдлрд╕рдлрд╝рд┐рдХреНрд╕.
pdflatex
pdflatex рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $LATEXRETRIES, $рдкреАрдбреАрдПрдлрд▓реИрдЯреЗрдХреНрд╕, $PDFLATEXCOM, $PDFLATEXFLAGS.
рдЙрдкрдпреЛрдЧ: $PDFLATEXCOMSTR.
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕
pdftex рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $LATEXRETRIES, $рдкреАрдбреАрдПрдлрд▓реИрдЯреЗрдХреНрд╕, $PDFLATEXCOM, $PDFLATEXFLAGS, $рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕, $PDFTEXCOM,
$PDFTEXFLAGS.
рдЙрдкрдпреЛрдЧ: $PDFLATEXCOMSTR, $PDFTEXCOMSTR.
рдЦрд╝рд╛рдордЦрд╝рд╛рд╣
рдкрд░рдлреЛрд░реНрд╕ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рдгрд╛рд▓реАред
рд╕реЗрдЯ: $рдкреА4, $P4COM, $P4рдлрд╝реНрд▓реИрдЧ.
рдЙрдкрдпреЛрдЧ: $P4COMSTR.
qt
Qt рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░, $QT_рдСрдЯреЛрд╕реНрдХреИрди, $QT_BINPATH, $QT_CPPPATH, $QT_LIB, $QT_LIBPATH, $QT_MOC,
$QT_MOCCXXPREFIX, $QT_MOCCXXSUFFIX, $QT_MOCFROMCXXCOM, $QT_MOCFROMCXXFLAGS,
$QT_MOCFROMHCOM, $QT_MOCFROMHFLAGS, $QT_MOCHPREFIX, $QT_MOCHSUFFIX, $QT_UIC,
$QT_UICCOM, $QT_UICDECLFLAGS, $QT_UICDECLPREFIX, $QT_UICDECLSUFFIX, $QT_UICIMPLFLAGS,
$QT_UICIMPLPREFIX, $QT_UICIMPLSUFFIX, $QT_UISUFFIX.
рдЖрд░рд╕реАрдПрд╕
рд╕рдВрд╢реЛрдзрди рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЖрд░рд╕реАрдПрд╕, $рдЖрд░рд╕реАрдПрд╕_рд╕реАрдУ, $рдЖрд░рд╕реАрдПрд╕_COCOM, $RCS_COFLAGS.
рдЙрдкрдпреЛрдЧ: $RCS_COCOMSTR.
рдЖрд░рдПрдордЖрдИрд╕реА
rmic рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $JAVACLASSSUFFIX, $рдЖрд░рдПрдордЖрдИрд╕реА, $рдЖрд░рдПрдордЖрдИрд╕реАрдХреЙрдо, $RMICFLAGS.
рдЙрдкрдпреЛрдЧ: $рдЖрд░рдПрдордЖрдИрд╕реАрдХреЙрдорд╕реНрдЯреНрд░.
рдЖрд░рдкреАрд╕реАрдЬреЗрди
RPCGEN рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЖрд░рдкреАрд╕реАрдЬреАрдПрди, $RPCGENCLIENTFLAGS, $RPCGENFLAGS, $RPCGENHEADERFLAGS,
$RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS.
рдПрд╕рд╕реАрд╕реАрдПрд╕
рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрд╕рд╕реАрд╕реАрдПрд╕, $рдПрд╕рд╕реАрд╕реАрдПрд╕рдХреЙрдо, $рдПрд╕рд╕реАрд╕реАрдПрд╕рдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $SCCSGETFLAGS.
рдЙрдкрдпреЛрдЧ: $SCCSCOMSTR.
рд╕реНрдЧрд┐рдЖрд░
рдПрд╕рдЬреАрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $ARCOMSTR, $рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕, $LIBPREFIX, $LIBSUFFIX, $SHLINK, $SHLINKFLAGS.
рдЙрдкрдпреЛрдЧ: $ARCOMSTR, $SHLINKCOMSTR.
рдПрд╕рдЬреАрдЖрдИрд╕реА++
SGI C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXFLAGS, $SHCXX, $SHOBJSUFFIX.
рдПрд╕рдЬреАрдЖрдИрд╕реАрд╕реА
рдПрд╕рдЬреАрдЖрдИ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $SHOBJSUFFIX.
рдПрд╕рдЬреАрдЖрдИрд▓рд┐рдВрдХ
рдПрд╕рдЬреАрдЖрдИ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $ рд▓рд┐рдВрдХ, $RPATHPREFIX, $RPATHSUFFIX, $SHLINKFLAGS.
рд╕реБрдирд╛рд░
рд╕рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $рдПрдЖрд░рдХреЙрдо, $рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕, $LIBPREFIX, $LIBSUFFIX.
рдЙрдкрдпреЛрдЧ: $ARCOMSTR.
рд╕рдирдХ++
рд╕рди C++ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $CXXрд╕рдВрд╕реНрдХрд░рдг, $SHCXX, $SHCXXFLAGS, $SHOBJPREFIX, $SHOBJSUFFIX.
рд╕рдирд╕реАрд╕реА
рд╕рди рд╕реА рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕, $SHCCFLAGS, $SHOBJPREFIX, $SHOBJSUFFIX.
рд╕рдирдлрд╝77
рд╕рди f77 рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F77, $рдлреЛрд░рдЯреНрд░рд╛рди, $рдПрд╕рдПрдЪрдПрдл77, $SHF77рдлрд╝реНрд▓реИрдЧ, $SHFORTRAN, $SHFORTRANFLAGS.
рд╕рдирдлрд╝90
рд╕рди f90 рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F90, $рдлреЛрд░рдЯреНрд░рд╛рди, $рдПрд╕рдПрдЪрдПрдл90, $SHF90рдлрд╝реНрд▓реИрдЧ, $SHFORTRAN, $SHFORTRANFLAGS.
рд╕рдирдлрд╝95
рд╕рди f95 рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╕реЗрдЯ: $F95, $рдлреЛрд░рдЯреНрд░рд╛рди, $рдПрд╕рдПрдЪрдПрдл95, $SHF95рдлрд╝реНрд▓реИрдЧ, $SHFORTRAN, $SHFORTRANFLAGS.
рд╕рдирд▓рд┐рдВрдХ
рд╕реВрд░реНрдп рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $RPATHPREFIX, $RPATHSUFFIX, $SHLINKFLAGS.
рдмрдбрд╝рд╛ рдШреВрдБрдЯ
SWIG рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рд╕реНрд╡рд┐рдЧ, $SWIGCFILESUPFIX, $рд╕реНрд╡рд┐рдЧрдХреЙрдо, $SWIGCXXFILESUFFIX ..., $SWIGDIRECTORSUFFIX,
$рд╕реНрд╡рд┐рдЧрдлреНрд▓реИрдЧреНрд╕, $SWIGINCPREFIX, $SWIGINCSUFFIX, $рд╕реНрд╡рд┐рдЧрдкрд╛рде, $рд╕реНрд╡рд┐рдЧрд╡рд░реНрдЬрди, $_SWIGINCFLAGS.
рдЙрдкрдпреЛрдЧ: $рд╕реНрд╡рд┐рдЧрдХреЙрдорд╕реНрдЯреНрд░.
рдЯрд╛рд░
рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЯреАрдПрдЖрд░, $рдЯрд╛рд░рдХреЙрдо, $рдЯрд╛рд░рдлрд╝реНрд▓реИрдЧреНрд╕, $TARSUFFIX.
рдЙрдкрдпреЛрдЧ: $TARCOMSTR.
tex
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $BIBTEX, $BIBTEXCOM, $BIBTEXFLAGS, $рд▓реЗрдЯреЗрдХреНрд╕, $рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо, $LATEXFLAGS, $рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕,
$рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕рдХреЙрдо, $MAKEINDEXFLAGS, $рдЯреЗрдХреНрд╕, $рдЯреЗрдХреНрд╕рдХреЙрдо, $TEXFLAGS.
рдЙрдкрдпреЛрдЧ: $BIBTEXCOMSTR, $LATEXCOMSTR, $MAKEINDEXCOMSTR, $рдЯреЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░.
рдкрд╛рда рдлрд╝рд╛рдЗрд▓
рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░реЛрдВред
рд╕реЗрдЯ: $рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░, $SUBSTFILEPREFIX, $SUBSTFILESUPFIX, $рдЯреЗрдХреНрд╕рдЯрд╛рдЗрд▓рдкреНрд░реАрдлрд┐рдХреНрд╕,
$рдЯреЗрдХреНрд╕реНрдЯрдлрд╛рдЗрд▓реНрд╕рдлрд╝рд┐рдХреНрд╕.
рдЙрдкрдпреЛрдЧ: $SUBST_DICT.
рдЯреАрд▓рд┐рдм
рдмреЛрд░рд▓рд╛рди рдЯрд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдПрдЖрд░, $рдПрдЖрд░рдХреЙрдо, $рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕, $LIBPREFIX, $LIBSUFFIX.
рдЙрдкрдпреЛрдЧ: $ARCOMSTR.
xgettext
рдпрд╣ scons рдЯреВрд▓ scons gettext рдЯреВрд▓рд╕реЗрдЯ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ scons рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
xgettext(1) рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдЬреЛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдкреАрдУ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╛рдЗрд▓реЗрдВ.
рд╕реЗрдЯ: $POTSUPFIX$ ..., $POTUPDATE_ALIAS, $XGETTEXTCOM, $XGETTEXTCOMSTR, $XGETTEXTFLAGS,
$XGETTEXTFROM, $XGETTEXTFROMPREFIX, $XGETTEXTFROMSUFFIX, $XGETTEXTPATH,
$XGETTEXTPATHPREFIX, $XGETTEXTPATHSUFFIX, $_XGETTEXTDOMAIN, $_XGETTEXTFROMFLAGS,
$_XGETTEXTPATHFLAGS.
рдЙрдкрдпреЛрдЧ: $POTDOMAIN.
рдпрд╛рдХ
рдпрд╛рдХ рдкрд╛рд░реНрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $YACC, $YACCCOM, $YACCFLAGS, $YACCHFILESUPFIX, $YACCHXXFILESUFFIX ...,
$YACCVCGFILESUFFIX $YACCVCGFILESUFFIX.
рдЙрдкрдпреЛрдЧ: $YACCCOMSTR.
рдЬрд╝рд┐рдк
рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ: $рдЬрд╝рд┐рдк, $рдЬрд╝рд┐рдкрдХреЙрдо, $рдЬрд╝рд┐рдкрд╕рдВрдкреАрдбрд╝рди, $рдЬрд╝рд┐рдкрдлрд╝реНрд▓реИрдЧ, $рдЬрд╝рд┐рдкрд╕рдлрд╝рд┐рдХреНрд╕.
рдЙрдкрдпреЛрдЧ: $рдЬрд╝рд┐рдкрдХреЙрдорд╕реНрдЯреНрд░.
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдПрдХ "рдЯреВрд▓" рднреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ рдЪреВрдХ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ.
рдкреЙрдЬрд╝рд┐рдХреНрд╕ рдФрд░ рд╕рд┐рдЧреНрд╡рд┐рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ GNU рдЯреВрд▓реНрд╕ (рдЬреИрд╕реЗ gcc) рдХреЛ SCons рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ msvc) рдХреЗ рдмрд╛рдж MinGW рдХреЛ SCons рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдФрд░ OS/2 рдореЗрдВ
рдЖрдИрдмреАрдПрдо рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ рдЖрдИрд╕реАрд╕реА) рдХреЛ рдПрд╕рд╕реАрдУрдПрдирдПрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред
рдирд┐рд░реНрдорд╛рддрд╛ рддрд░реАрдХреЗ
рдирд┐рд░реНрдорд╛рдг рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИрдВ рд▓рдХреНрд╖реНрдп (рдмрдирд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА, рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓
рдирд╛рдо) рдФрд░ рд╕реНрд░реЛрдд (рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА, рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо)ред
рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рд▓рдВрдмреА рд╕реВрдЪреА рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрджреНрдзрд░рдг рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╕реНрдХреИрдиреНрд╕ рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛()
рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдЬреЛ рдПрдХрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрдИ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИ
рд╕реВрдЪреА, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рдЕрд▓рдЧ рдХреА рдЧрдИред (рдпреЗ split() рдХреЗ рд╕рдорд╛рди рд╣реИрдВ
рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рджрд╕реНрдп рдлрд╝рдВрдХреНрд╢рди рд▓реЗрдХрд┐рди рддрдм рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрдирдкреБрдЯ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред)
рд╕рднреА рдкрд╛рдпрдерди рддрд░реНрдХреЛрдВ рдХреА рддрд░рд╣, рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рддрд░реНрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
"рд▓рдХреНрд╖реНрдп" рдФрд░ "рд╕реНрд░реЛрдд" рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдХреАрд╡рд░реНрдб
рдЫреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░, рд▓рдХреНрд╖реНрдп рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рд╕реНрд░реЛрдд рдЖрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорддреБрд▓реНрдп рд╣реИрдВ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('рдмрд╛рд░', ['bar.c', 'foo.c'])
env.Program('рдмрд╛рд░', рд╕реНрдкреНрд▓рд┐рдЯ('рдмрд╛рд░.c foo.c'))
env.Program('рдмрд╛рд░', env.Split('bar.c foo.c'))
env.Program(рд╕реНрд░реЛрдд = ['bar.c', 'foo.c'], рд▓рдХреНрд╖реНрдп = 'bar')
env.Program(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ('bar.c foo.c'))
env.Program(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', env.Split('bar.c foo.c'))
env.Program('рдмрд╛рд░', рд╕реНрд░реЛрдд = 'рдмрд╛рд░.c foo.c'.split())
рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ
/ POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдпрд╛ \NS on рд╡рд┐рдВрдбреЛрдЬ рдкреНрд░рдгрд╛рд▓реА, рд╕рд╛рде рдореЗрдВ or рдмрд┐рдирд╛ an рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреНрд░рд╛рдЗрд╡ рдкрддреНрд░)
рд░рд╣реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕реЗрд╡рд╛ рдореЗрд░реЗ la рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдпреБрдХреНрдд la рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реА рдЬрд╛ рд░рд╣реА рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ # рдкрде рдирд╛рдо рдкрд░ (рд╣реИрд╢ рдорд╛рд░реНрдХ) рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рд╣реИ
рд╢реАрд░реНрд╖-рд╕реНрддрд░ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓, рднрд▓реЗ рд╣реА # is
рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд┐рднрд╛рдЬрдХ рд╡рд░реНрдг (рд╕реНрд▓реИрд╢ рдпрд╛ рдмреИрдХрд╕реНрд▓реИрд╢) рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
# рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
# рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпреЗ рдХреЙрд▓ SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВ
# "subdir" рдирд╛рдордХ рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛.
# "subdir/foo.c" рд╕реЗ "subdir/foo" рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддрд╛ рд╣реИ:
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo', 'foo.c')
# "subdir/bar.c" рд╕реЗ "/tmp/bar" рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддрд╛ рд╣реИ:
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('/tmp/bar', 'bar.c')
# рдкреНрд░рд╛рд░рдВрднрд┐рдХ '#' рдпрд╛ '#/' рд╕рдорддреБрд▓реНрдп рд╣реИрдВ; рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
# "foo" рдФрд░ "bar" рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ (
# рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) "subdir/foo.c" рд╕реЗ рдФрд░
# "subdir/bar.c", рдХреНрд░рдорд╢рдГ:
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('#foo', 'foo.c')
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('#/рдмрд╛рд░', 'bar.c')
# рдкреНрд░реЛрдЧреНрд░рд╛рдо "other/foo" рдмрдирд╛рддрд╛ рд╣реИ (рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖)
# SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) "subdir/foo.c" рд╕реЗ:
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('#рдЕрдиреНрдп/foo', 'foo.c')
рдЬрдм рд▓рдХреНрд╖реНрдп рд╕реНрд░реЛрдд рдХреЗ рд╕рдорд╛рди рдЖрдзрд╛рд░ рдирд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпрдп рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддреНрдпрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рд▓рдХреНрд╖реНрдп рддрд░реНрдХ
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреИрдиреНрд╕ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд┐рдХрд╛рд▓реЗрдЧрд╛
рдирд╛рдо. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддреЗ рд╣реИрдВ рдмрд╛рд░ (POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░) рдпрд╛
рдмрд╛рд░.exe (рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд┐рд╕реНрдЯрдо рдкрд░) bar.c рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ:
env.Program(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = 'bar.c')
env.Program('рдмрд╛рд░', рд╕реНрд░реЛрдд = 'bar.c')
env.Program(рд╕реНрд░реЛрдд = 'bar.c')
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('bar.c')
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рддреМрд░ рдкрд░, srcdir рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ, рд╕рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЬреЛ рдкреВрд░реНрдг рдкрде рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреА
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ srcdir.рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ рдирд┐рд░реНрдорд╛рдг/рдкреНрд░рдЧрддрд┐ (рдпрд╛
рдмрд┐рд▓реНрдб/prog.exe рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░) рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ src/f1.c рдФрд░ src/f2.c:
env.Program('build/prog', ['f1.c', 'f2.c'], srcdir='src')
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдпрд╛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рдирд╛ред рдпреЗ рдУрд╡рд░рд░рд╛рдЗрдб рдпрд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рдЪрд░ рдХреЗрд╡рд▓ рдореЗрдВ рд╣реЛрдВрдЧреЗ
рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдкреНрд░рднрд╛рд╡, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
env.Program('рд╣реИрд▓реЛ', 'рд╣реИрд▓реЛ.c', LIBS=['gl', 'glut'])
рдпрд╛ рдЧреИрд░-рдорд╛рдирдХ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:
env.SharedLibrary('рд╢рдмреНрдж', 'рд╢рдмреНрдж.cpp',
SHLIBSUFFIX='.ocx',
LIBSUFFIXES=['.ocx'])
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк SCons рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ $SHLIBSUFFIX рдФрд░ $LIBSUFFIXES рджреЛрдиреЛрдВ рдЪрд░ рд╕реЗрдЯ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рдЧреИрд░-рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдореЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП; рджреЗрдЦреЗрдВ
(рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЗрди рдЪрд░реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВред)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ рдкрд╛рд░реНрд╕_рдлрд╝реНрд▓реИрдЧ рдУрд╡рд░рд░рд╛рдЗрдб рдореЗрдВ рдХреАрд╡рд░реНрдб рддрд░реНрдХ:
env = рдкреНрд░реЛрдЧреНрд░рд╛рдо('рд╣реИрд▓реЛ', 'рд╣реИрд▓реЛ.c', parse_flags = '-Iinclude -DEBUG -lm')
рдпрд╣ рдЙрджрд╛рд╣рд░рдг 'рд╢рд╛рдорд┐рд▓' рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд╕реАрдкреАрдкреАрдкреАрдПрде, 'EBUG' рдХреЛ рд╕реАрдкреАрдкреАрдбрд┐рдлрд╛рдЗрдиреНрд╕, рдФрд░ 'рдПрдо' рдХреЛ LIBS.
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдХреИрдиреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд░реНрдорд╛рдг рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ
environment рдСрдмреНрдЬреЗрдХреНрдЯ, рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ рднреА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдкреНрд░реЛрдЧреНрд░рд╛рдо('рд╣реИрд▓реЛ', 'рд╣реИрд▓реЛ.рд╕реА')
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА('рд╢рдмреНрдж', 'рд╢рдмреНрдж.cpp')
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЙрдкрдХрд░рдг рдФрд░ рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╕реНрдХреИрдиреНрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ
рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдгрд╛рд▓реАред
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдкрд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрди рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдХрд╕реНрдЯрдо рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЬреЛрдбрд╝рдХрд░ SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓:
SCons.Script рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ *
рд╕рднреА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдПрдХ рд╕реВрдЪреА-рдЬреИрд╕реА рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд▓рдХреНрд╖реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ
рдпрд╛ рд▓рдХреНрд╖реНрдп рдЬреЛ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред рдЖрд╕рдВрдзрд┐ рдПрдХ рдЖрдВрддрд░рд┐рдХ SCons рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп рдпрд╛ рд╕реНрд░реЛрдд.
рд▓реМрдЯрд╛рдП рдЧрдП рдиреЛрдб-рд╕реВрдЪреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реНрд░реЛрдд(рдУрдВ) рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХрд┐рд╕реА рднреА SCons рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ -D рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдзреНрд╡рдЬ
рдлрд╝рд╛рдЗрд▓:
рдмрд╛рд░_рдСрдмреНрдЬреЗрдХреНрдЯ_рд╕реВрдЪреА = env.StaticObject('рдмрд╛рд░.c', CPPDEFINES='-DBAR')
env.Program(рд╕реНрд░реЛрдд = ['foo.c', bar_obj_list, 'main.c'])
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рдмрд┐рд▓реНрдб рдмрдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдиреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
Program() рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рддреНрдпрдпред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ "рд╕рдорддрд▓" рдХрд░ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП
рдмреАрдЪ рдореЗрдВ StaticObject() рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ bar_obj рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдареАрдХ рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреАред рдпрджрд┐ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдбрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕реАрдзреЗ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реВрдЪреА рдХреЛ рд╣рд╛рде рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
foo = рдСрдмреНрдЬреЗрдХреНрдЯ('foo.c')
рдмрд╛рд░ = рдСрдмреНрдЬреЗрдХреНрдЯ('bar.c')
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ = ['begin.o'] + foo + ['middle.o'] + рдмрд╛рд░ + ['end.o']
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП:
рдкреНрд░рд┐рдВрдЯ str(рдСрдмреНрдЬреЗрдХреНрдЯ)
рдпрд╛ рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕рдорддрд▓() рдлрд╝рдВрдХреНрд╢рди scons рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдпреБрдХреНрдд рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдиреЛрдбреНрд╕, рдЬреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
foo = рдСрдмреНрдЬреЗрдХреНрдЯ('foo.c')
рдмрд╛рд░ = рдСрдмреНрдЬреЗрдХреНрдЯ('bar.c')
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ = рдлрд╝реНрд▓реИрдЯрди(['begin.o', foo, 'middle.o', рдмрд╛рд░, 'end.o'])
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП:
рдкреНрд░рд┐рдВрдЯ str(рдСрдмреНрдЬреЗрдХреНрдЯ)
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рдПрдХ рд╕реВрдЪреА рдЬреИрд╕реА рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рдпрдерди рд╕реВрдЪреА,
рддреБрдореНрд╣реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ += рдмрд┐рд▓реНрдбрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкрд╛рдпрдерди рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ред
рдЪреВрдБрдХрд┐ рд╕реВрдЪреА рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╛рдпрдерди рдореВрд▓ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╕реВрдЪреА рдХреЛ рдЬрдЧрд╣ рдкрд░ рд░рдЦреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдпреЛрдЬрди рдпреБрдХреНрдд рдПрдХ рдирдпрд╛ рдиреЛрдб-рд╕реВрдЪреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдЧрд╛
рд╕реВрдЪреА рддрддреНрд╡реЛрдВ рдФрд░ рдмрд┐рд▓реНрдбрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗред рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛
рдЖрдкрдХреЗ SCons рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд╛рдпрдерди рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛ рдЕрднреА рднреА рд╕рдВрджрд░реНрдн рдкрд░ рдЯрд┐рдХреЗ рд╣реБрдП рд╣реИрдВ
рдореВрд▓ рд╕реВрдЪреАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ редрдмрдврд╝рд╛рдирд╛() рд╕реВрдЪреА рдЕрджреНрдпрддрди рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐
рдЙрджрд╛рд╣рд░рдг:
рдСрдмреНрдЬреЗрдХреНрдЯ_рдлрд╝рд╛рдЗрд▓реЗрдВ = []
# += рдХрд╛ рдкреНрд░рдпреЛрдЧ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рди рдХрд░реЗрдВ:
#
# рдСрдмреНрдЬреЗрдХреНрдЯ_рдлрд╝рд╛рдЗрд▓реЗрдВ += рдСрдмреНрдЬреЗрдХреНрдЯ('bar.c')
#
# рдпрд╣ object_files рд╕реВрдЪреА рдХреЛ рдпрдерд╛рд╕реНрдерд╛рди рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
#
# рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, .extend() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
object_files.extend(рдСрдмреНрдЬреЗрдХреНрдЯ('bar.c'))
рдиреЛрдб рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЛрдб рдХреЛ рдкрд╛рдпрдерди-рдирд┐рд░реНрдорд┐рдд рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдЯреНрд░ () рд╕рдорд╛рд░реЛрд╣:
рдмрд╛рд░_рдСрдмреНрдЬреЗрдХреНрдЯ_рд╕реВрдЪреА = env.StaticObject('рдмрд╛рд░.c', CPPDEFINES='-DBAR')
рдкреНрд░рд┐рдВрдЯ "bar_obj рдХрд╛ рдкрде рд╣реИ:", str(bar_obj_list[0])
рдлрд┐рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реЛрдЧрд╛
рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡ (рдмрд╛рд░_рдСрдмреНрдЬреЗрдХреНрдЯ_рд╕реВрдЪреА[0]) рдЙрд╕ рдиреЛрдб рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред
рдмрд┐рд▓реНрдбрд░ рдиреЗ рд╕рдорд░реНрдерди рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ(рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред chdir рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдб, scons рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░ chdir рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ
рдпрд╛ Node рдФрд░ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ, рддреЛ scons рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
# scons "sub" рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
# "cp" рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ.
env.Command('sub/dir/foo.out', 'sub/dir/foo.in',
"рд╕реАрдкреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/foo.in рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/foo.out",
chdir='рдЙрдк')
# рдХреНрдпреЛрдВрдХрд┐ chdir рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, scons рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
# рд▓рдХреНрд╖реНрдп рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ("sub/dir") рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
# "cp" рдХрдорд╛рдВрдб.
env.Command('sub/dir/foo.out', 'sub/dir/foo.in',
"рд╕реАрдкреА foo.in foo.out",
рдЪреНрджрд┐рд░=1)
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдХреЛрдиреНрд╕ рдирд╣реАрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдЬреИрд╕реЗ
$рдЯрд╛рд░рдЧреЗрдЯ рдФрд░ $рд╕реНрд░реЛрдд chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп - рдЕрд░реНрдерд╛рдд, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлрд╝рд╛рдЗрд▓
рдирд╛рдо рдЕрднреА рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдВрдЧреЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк
chdir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЧрд▓рдд рд╣реИред рдпрджрд┐ рдЖрдк chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк
рдЖрдо рддреМрд░ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрд▓рдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ${TARGET.рдлрд╝рд╛рдЗрд▓} рдФрд░
${рд╕реНрд░реЛрдд.рдлрд╝рд╛рдЗрд▓} рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕реНрдХреИрдиреНрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рд╕реАрдлрд╛рдЗрд▓(), env.CFile()
lex (.l) рдпрд╛ yacc (.y) рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп
рджреНрд╡рд╛рд░рд╛ $CFILESUPFIX $CFILESUPFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .c) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдЙрджрд╛рд╣рд░рдг:
# foo.c рдмрдирд╛рддрд╛ рд╣реИ
env.CFile(рд▓рдХреНрд╖реНрдп = 'foo.c', рд╕реНрд░реЛрдд = 'foo.l')
# рдмрд╛рд░.рд╕реА рдмрдирд╛рддрд╛ рд╣реИ
env.CFile(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = 'bar.y')
рдЖрдЬреНрдЮрд╛(), env.рдХрдорд╛рдВрдб()
RSI рдЖрджреЗрд╢ "рдмрд┐рд▓реНрдбрд░" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдбрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП
рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ рдЖрджреЗрд╢ рдХреЙрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рд╡рд░рдг.
CXXрдлрд╝рд╛рдЗрд▓(), env.CXXрдлрд╝рд╛рдЗрд▓()
рдПрдХ lex (.ll) рдпрд╛ yacc (.yy) рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдПрдХ C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпрдп
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ $CXXFILESUPFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .cc) рд╣реИ
рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
# foo.cc рдмрдирд╛рддрд╛ рд╣реИ
env.CXXFile(рд▓рдХреНрд╖реНрдп = 'foo.cc', рд╕реНрд░реЛрдд = 'foo.ll')
# builds bar.cc
env.CXXFile(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = 'bar.yy')
рдбреЙрдХрдмреБрдХрдИрдкрдм(), env.рдбреЙрдХрдмреБрдХрдПрдкрдм()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ EPUB рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookEpub('manual.epub', 'manual.xml')
рдпрд╛ рдмрд╕
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookEpub('рдореИрдиреБрдЕрд▓')
рдбреЙрдХрдмреБрдХрдПрдЪрдЯреАрдПрдордПрд▓(), env.рдбреЙрдХрдмреБрдХHtml()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ HTML рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml('manual.html', 'manual.xml')
рдпрд╛ рдмрд╕
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtml('рдореИрдиреБрдЕрд▓')
рдбреЙрдХрдмреБрдХHtmlChunked(), env.DocbookHtmlChunked()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ рдЦрдВрдбрд┐рдд HTML рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
base.dir рдкреИрд░рд╛рдореАрдЯрд░ред chunkfast.xsl рдлрд╝рд╛рдЗрд▓ ("EXSLT" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ. рдореВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlChunked('рдореИрдиреБрдЕрд▓')
рдЬрд╣рд╛рдБ manual.xml рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ.
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдореЗрдВ root.filename рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдирдпрд╛ рд▓рдХреНрд╖реНрдп рдирд╛рдоред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕рд╣реА рд╣реЛрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
тАЬscons -cтАЭ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдлрд╛рдИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlChunked('mymanual.html', 'рдореИрдиреБрдЕрд▓', xsl='htmlchunk.xsl')
base.dir рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИред рдЖрдк base_dir рдХреАрд╡рд░реНрдб рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдкрдХреЗ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓, рдФрд░ рджрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╕рднреА рдмрдирд╛рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlChunked('рдореИрдиреБрдЕрд▓', xsl='htmlchunk.xsl', base_dir='output/')
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдмреЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓реИрд╢ рдХреЛ рди рднреВрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХрд╛
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рд╣реА рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ!
рдбреЙрдХрдмреБрдХHtmlhelp(), env.DocbookHtmlhelp()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ HTMLHELP рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕
рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlhelp('рдореИрдиреБрдЕрд▓')
рдЬрд╣рд╛рдБ manual.xml рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ.
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдореЗрдВ root.filename рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдирдпрд╛ рд▓рдХреНрд╖реНрдп рдирд╛рдоред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕рд╣реА рд╣реЛрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
тАЬscons -cтАЭ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдлрд╛рдИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlhelp('mymanual.html', 'рдореИрдиреБрдЕрд▓', xsl='htmlhelp.xsl')
base.dir рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИред рдЖрдк base_dir рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдХреАрд╡рд░реНрдб рдХреЛ рдЕрдкрдиреЗ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рджрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╕рднреА рдмрдирд╛рдП рдЧрдП рдХреЙрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookHtmlhelp('рдореИрдиреБрдЕрд▓', xsl='htmlhelp.xsl', base_dir='output/')
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдмреЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓реИрд╢ рдХреЛ рди рднреВрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХрд╛
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рд╣реА рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ!
рдбреЙрдХрдмреБрдХрдореИрди(), env.рдбреЙрдХрдмреБрдХрдореИрди()
рдПрдХ рдЫрджреНрдо-рдмрд┐рд▓реНрдбрд░, рдЬреЛ рдореИрди рдкреЗрдЬ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕
рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookMan('рдореИрдиреБрдЕрд▓')
рдЬрд╣рд╛рдБ manual.xml рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ, рдЖрдк рд▓рдХреНрд╖реНрдп рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ XML рд╕реНрд░реЛрдд рдореЗрдВ refname рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдбреЙрдХрдмреБрдХрдкреАрдбреАрдПрдл(), env.рдбреЙрдХрдмреБрдХрдкреАрдбреАрдПрдл()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ рдкреАрдбреАрдПрдл рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookPdf('manual.pdf', 'manual.xml')
рдпрд╛ рдмрд╕
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookPdf('рдореИрдиреБрдЕрд▓')
рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕Html(), env.DocbookSlidesHtml()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ HTML рд╕реНрд▓рд╛рдЗрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookSlidesHtml('рдореИрдиреБрдЕрд▓')
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдореЗрдВ titlefoil.html рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдпрд╣ рджреЗрдирд╛ рд╣реЛрдЧрд╛
рдирдпрд╛ рд▓рдХреНрд╖реНрдп рдирд╛рдоред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕рд╣реА рд╣реЛрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
тАЬscons -cтАЭ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдлрд╛рдИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookSlidesHtml('mymanual.html','manual', xsl='slideshtml.xsl')
base.dir рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИред рдЖрдк base_dir рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдХреАрд╡рд░реНрдб рдХреЛ рдЕрдкрдиреЗ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рджрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╕рднреА рдмрдирд╛рдП рдЧрдП рдХреЙрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookSlidesHtml('рдореИрдиреБрдЕрд▓', xsl='slideshtml.xsl', base_dir='output/')
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдмреЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓реИрд╢ рдХреЛ рди рднреВрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХрд╛
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рд╣реА рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ!
рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕рдкреАрдбреАрдПрдл(), env.DocbookSlidesPdf()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ рдкреАрдбреАрдПрдл рд╕реНрд▓рд╛рдЗрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдмреБрдХ рдЯреВрд▓рдЪреЗрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookSlidesPdf('manual.pdf', 'manual.xml')
рдпрд╛ рдмрд╕
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookSlidesPdf('рдореИрдиреБрдЕрд▓')
рдбреЙрдХрдмреБрдХXрд╢рд╛рдорд┐рд▓(), env.DocbookXInclude()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЪрд░рдг рдореЗрдВ XIncludes рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookXInclude('manual_xincluded.xml', 'manual.xml')
рдбреЙрдХрдмреБрдХXslt(), env.DocbookXslt()
рдПрдХ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░, рдЬреЛ рджрд┐рдП рдЧрдП XSL рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['docbook'])
env.DocbookXslt('manual_transformed.xml', 'manual.xml', xsl='transform.xslt')
рдзреНрдпрд╛рди рджреЗрдВ, рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЛ xsl рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдбреАрд╡реАрдЖрдИ(), env.рдбреАрд╡реАрдЖрдИ()
.tex, .ltx рдпрд╛ .latex рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ .dvi рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп
.tex рд╣реИ, scons рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛; рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ \documentclass рдпрд╛
\documentstyle рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ LaTeX рдлрд╝рд╛рдЗрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рд╣реИ
рдЖрд╣реНрд╡рд╛рди рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ $рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди; рдЕрдиреНрдпрдерд╛, $рдЯреЗрдХреНрд╕рдХреЙрдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди is
рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдХ LaTeX рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ DVI рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреА рднреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдПрдЧреА
.aux рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЖрд╣реНрд╡рд╛рди $BIBTEX рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ bibdata рд╣реИ
рдкрд╛рдпрд╛, рд╢реБрд░реВ $рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕ рдпрджрд┐ .ind рдлрд╝рд╛рдЗрд▓ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ рддреЛ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛
.log рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдЙрд╕реЗ рдкреБрдирдГ рдЪрд▓рд╛рдПрдБ $рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо рдпрджрд┐ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╣рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ рддреЛ рдХрдорд╛рдВрдб
рдЬрд╝рд░реВрд░реАред
рдкреНрд░рддреНрдпрдп .dvi (TeX рдХреЗ рднреАрддрд░ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
# aaa.tex рд╕реЗ рдирд┐рд░реНрдорд┐рдд
env.DVI(рд▓рдХреНрд╖реНрдп = 'aaa.dvi', рд╕реНрд░реЛрдд = 'aaa.tex')
# bbb.dvi рдмрдирд╛рддрд╛ рд╣реИ
env.DVI(рд▓рдХреНрд╖реНрдп = 'bbb', рд╕реНрд░реЛрдд = 'bbb.ltx')
# ccc.latex рд╕реЗ рдирд┐рд░реНрдорд┐рдд
env.DVI(рд▓рдХреНрд╖реНрдп = 'ccc.dvi', рд╕реНрд░реЛрдд = 'ccc.latex')
рдЬреАрдПрд╕(), env.рдЬреАрдПрд╕()
gs рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдбрд░ред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд OS рдХреЗ рдЖрдзрд╛рд░ рдкрд░,
рд╡рд┐рднрд┐рдиреНрди рдирд╛рдо gs, gsos2 рдФрд░ gswin32c рдЖрдЬрд╝рдорд╛рдП рдЧрдП рд╣реИрдВред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['gs'])
env.Gs('рдХрд╡рд░.jpg','scons-scons.pdf',
GSFLAGS='-dNOPAUSE -dBATCH -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -q')
)
рдЗрдВрд╕реНрдЯреЙрд▓(), env.рдЗрдВрд╕реНрдЯрд╛рд▓()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рд╕рдорд╛рди рд░рд╣рддреЗ рд╣реИрдВ
рдЧрдВрддрд╡реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ред рд╕реНрд░реЛрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ред
env.рдЗрдВрд╕реНрдЯреЙрд▓('/ Usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди', рд╕реНрд░реЛрдд = ['foo', 'bar'])
рдЗрдВрд╕реНрдЯреЙрд▓рдЕрд╕(), env.рдЗрдВрд╕реНрдЯрд╛рд▓рдПрдПрд╕()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдореЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдоред рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдФрд░
рд╕реНрд░реЛрдд рддрд░реНрдХ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред
env.InstallAs(рд▓рдХреНрд╖реНрдп = '/usr/local/bin/foo',
рд╕реНрд░реЛрдд = 'foo_debug')
env.InstallAs(рд▓рдХреНрд╖реНрдп = ['../lib/libfoo.a', '../lib/libbar.a'],
рд╕реНрд░реЛрдд = ['libFOO.a', 'libBAR.a'])
InstallVersionedLib(), env.рдЗрдВрд╕реНрдЯрд╛рд▓рд╡рд░реНрдЬрдиреНрдбрд▓рд┐рдм()
рдПрдХ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕рд┐рдореНрдмрд▓рд┐рдВрдХреНрд╕
рд╕реНрд░реЛрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
env.InstallVersionedLib(рд▓рдХреНрд╖реНрдп = '/usr/local/bin/foo',
рд╕реНрд░реЛрдд = 'libxyz.1.5.2.so')
рдЬрд╛рд░(), env.рдЬрд╛рд░()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ (.jar) рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдХреЛрдИ рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рд╕реНрд░реЛрдд рд╕реВрдЪреА рдореЗрдВ .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреА рдЬрд╛рдПрдЧреА)ред рд╕реНрд░реЛрдд рдореЗрдВ рдХреЛрдИ рднреА .java рдлрд╝рд╛рдЗрд▓
рд╕реВрдЪреА рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд╛рд╡рд╛ рдирд┐рд░реНрдорд╛рддрд╛ред
рдЕрдЧрд░ $JARCHDIR рдорд╛рди рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░, jar рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
рдХрд╛ рдЙрдкрдпреЛрдЧ -C рд╡рд┐рдХрд▓реНрдкред рдЕрдЧрд░ $JARCHDIR рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, SCons рдХрд┐рд╕реА рднреА рдХреЗ рд╢реАрд░реНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛
рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ .class рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╛рд╡рд╛ рдирд┐рд░реНрдорд╛рддрд╛ред
рдпрджрд┐ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ-рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ jar рдХрдорд╛рдВрдб рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ m рд╡рд┐рдХрд▓реНрдк
рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ.
env.Jar(рд▓рдХреНрд╖реНрдп = 'foo.jar', рд╕реНрд░реЛрдд = 'рдХреНрд▓рд╛рд╕реЗрд╕')
env.Jar(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░.jar',
рд╕реНрд░реЛрдд = ['bar1.java', 'bar2.java'])
рдЬрд╛рд╡рд╛(), env.рдЬрд╛рд╡рд╛()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рд╕реНрдкрд╖реНрдЯ рдХрд╛ рдХреЛрдИ рднреА рд╕рдВрдпреЛрдЬрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
.java рдлрд╝рд╛рдЗрд▓реЗрдВ, рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рдЬрд┐рдиреНрд╣реЗрдВ .java рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
SCons рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд░реЛрдд .java рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдХреЗ рдХрдХреНрд╖рд╛рдПрдВ (рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рд╕рд╣рд┐рдд) рдвреВрдВрдвреЗрдЧрд╛
рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЙрд╕рд╕реЗ рд▓рдХреНрд╖реНрдп .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдЬреЛ
рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдиреАрдЪреЗ рд░рдЦреА рдЬрд╛рдПрдВрдЧреАред
SCons рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рд╡рд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рдХреА рднреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрдХреЗрдЬ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
рдкрд░рд┐рдгрд╛рдореА .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛
рдирд╛рдоред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ Foo.java рдПрдХ рдПрдХрд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ Foo рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
sub.dir рдХрд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рдПрдХ рд╕рдВрдЧрдд sub/dir/Foo.class рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг:
env.Java(рд▓рдХреНрд╖реНрдп = 'рдХреНрд▓рд╛рд╕реЗрд╕', рд╕реНрд░реЛрдд = 'src')
env.Java(рд▓рдХреНрд╖реНрдп = 'рдХреНрд▓рд╛рд╕реЗрд╕', рд╕реНрд░реЛрдд = ['src1', 'src2'])
env.Java(рд▓рдХреНрд╖реНрдп = 'рдХреНрд▓рд╛рд╕реЗрд╕', рд╕реНрд░реЛрдд = ['рдлрд╝рд╛рдЗрд▓1.рдЬрд╛рд╡рд╛', 'рдлрд╝рд╛рдЗрд▓2.рдЬрд╛рд╡рд╛'])
рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд OS рдХреЗ рд▓рд┐рдП рдореВрд▓ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░рд▓ ASCII рдореЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд, рд╕рдВрдХрд▓рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛
рдЕрдирдореИрдкреЗрдмрд▓ рдХреИрд░реЗрдХреНрдЯрд░, рдЬрд┐рд╕рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдЧреЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП LANG рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдХреМрди рд╕реА рдПрдирдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдПрдирдХреЛрдбрд┐рдВрдЧ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╣реЛ рддрд╛рдХрд┐
рдпрджрд┐ рд╕рдВрдХрд▓рди рдХрд┐рд╕реА рднрд┐рдиреНрди рдПрдирдХреЛрдбрд┐рдВрдЧ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдпрд╣ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env['ENV']['LANG'] = 'en_GB.UTF-8'
рдЬрд╛рд╡рд╛рдПрдЪ(), env.рдЬрд╛рд╡рд╛рдПрдЪ()
рдЬрд╛рд╡рд╛ рдореВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C рд╣реЗрдбрд░ рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИред рд▓рдХреНрд╖реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╛ рддреЛ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦреА рдЬрд╛рдПрдВрдЧреА, рдпрд╛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реЛ
рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реЛрдВрдЧреАред рд╕реНрд░реЛрдд .class рдХреЗ рдирд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓реЗрдВ, .java рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдЬрд┐рдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рдХреЗ .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рдЬрд╛рд╡рд╛
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐, рдпрд╛ рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЬрд╛рд╡рд╛ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ $рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕реНрдбрд┐рд░ рдпрд╛ рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдпрд╛ рдлрд┐рд░
рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдЬрд╛рд╡рд╛рдПрдЪ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ, рддреЛ рдЪрд░ рдХрд╛ рдорд╛рди рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рднреА .class рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЖрд░рдВрдн рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЙрджрд╛рд╣рд░рдг:
# java_native.h рдмрдирд╛рддрд╛ рд╣реИ
рдХрдХреНрд╖рд╛рдПрдВ = env.Java(рд▓рдХреНрд╖реНрдп = 'classdir', рд╕реНрд░реЛрдд = 'src')
env.JavaH(рд▓рдХреНрд╖реНрдп = 'java_native.h', рд╕реНрд░реЛрдд = рдХрдХреНрд╖рд╛рдПрдВ)
# include/package_foo.h рдФрд░ include/package_bar.h рдмрдирд╛рддрд╛ рд╣реИ
env.JavaH(рд▓рдХреНрд╖реНрдп = 'рд╢рд╛рдорд┐рд▓',
рд╕реНрд░реЛрдд = ['рдкреИрдХреЗрдЬ/foo.class', 'рдкреИрдХреЗрдЬ/bar.class'])
# export/foo.h рдФрд░ export/bar.h рдмрдирд╛рддрд╛ рд╣реИ
env.JavaH(рд▓рдХреНрд╖реНрдп = 'рдирд┐рд░реНрдпрд╛рдд',
рд╕реНрд░реЛрдд = ['рдХреНрд▓рд╛рд╕реЗрд╕/foo.class', 'рдХреНрд▓рд╛рд╕реЗрд╕/bar.class'],
JAVACLASSDIR = 'рдХреНрд▓рд╛рд╕реЗрд╕')
рдкреБрд╕реНрддрдХрд╛рд▓рдп(), env.рд▓рд╛рдЗрдмреНрд░реЗрд░реА()
рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдирд╛рд░реНрдереА рд╕реНрдЯреЗрдЯрд┐рдХрд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓(), env.рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдпрдореЙрдбреНрдпреВрд▓()
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░, рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ (рдбрд╛рд░реНрд╡рд┐рди) рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░,
рдпрд╣ рдПрдХ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдВрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИ.
рдПрдо4(), env.M4()
M4 рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ $M4FLAGS рдХреЗ рдореВрд▓реНрдп -E,
рдЬреЛ рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдШрд╛рддрдХ рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реА рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ
m4 рдХрд╛ GNU рд╕рдВрд╕реНрдХрд░рдг. рдЙрджрд╛рд╣рд░рдг:
env.M4(рд▓рдХреНрд╖реНрдп = 'foo.c', рд╕реНрд░реЛрдд = 'foo.c.m4')
рдореЛрдХ(), env.Moc()
Moc рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред Moc рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ рддреЛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ
рдпрд╛ cxx рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрд╣ рдмрд┐рд▓реНрдбрд░ рдХреЗрд╡рд▓ 'qt' рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИред рджреЗрдЦреЗрдВ $рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП variable рдкрд░ рдЬрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг:
env.Moc('foo.h') # moc_foo.cc рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
env.Moc('foo.cpp') # foo.moc рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
рдПрдордУрдлрд╛рдЗрд▓реНрд╕(), env.MOрдлрд╛рдЗрд▓реНрд╕()
рдпрд╣ рдмрд┐рд▓реНрдбрд░ msgfmt рдЯреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдмрд┐рд▓реНрдбрд░ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг 1pl.po рдФрд░ en.po рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ pl.mo рдФрд░ en.mo рдмрдирд╛рдПрдБ:
#...
env.MOFiles(['pl', 'en'])
рдЙрджрд╛рд╣рд░рдг 2LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ:
#...
env.MOFiles(LINGUAS_FILE = 1)
рдЙрджрд╛рд╣рд░рдг 3pl.po рдФрд░ en.po рдкреНрд▓рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ pl.mo рдФрд░ en.mo рдмрдирд╛рдПрдБ
LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдПрдБ:
#...
env.MOFiles(['pl', 'en'], LINGUAS_FILE = рез)
рдЙрджрд╛рд╣рд░рдг 4LINGUAS рдлрд╝рд╛рдЗрд▓ (рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг) рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ:
#...
env['LINGUAS_FILE'] = 1
env.MOрдлрд╛рдЗрд▓реНрд╕()
рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ(), env.MSVSрдкреНрд░реЛрдЬреЗрдХреНрдЯ()
Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рддрдерд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ
рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ Visual Studio рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рддреЛ рдирд╡реАрдирддрдо рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг, рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг
$MSVS_рд╕рдВрд╕реНрдХрд░рдг рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ)ред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 6 рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛
.dsp рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред Visual Studio 7 (.NET) рдФрд░ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ .vcproj рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓, рдПрдХ .dsw рдлрд╝рд╛рдЗрд▓ рднреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
Visual Studio 6 рдХреЗ рд▓рд┐рдП рдпрд╛ Visual Studio 7 (.NET) рдХреЗ рд▓рд┐рдП .sln рдлрд╝рд╛рдЗрд▓ред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЬрдм рдЖрдк рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ auto_build_solution=0 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдХреМрдирд╕реЗ рдорд╛рдорд▓реЗрдореЗрдВ
рдЖрдк рд╕рдВрднрд╡рддрдГ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдПрдордПрд╕рд╡реАрдПрд╕рд╕рдорд╛рдзрд╛рди рдирд┐рд░реНрдорд╛рддрд╛
(рдирд┐рдЪреЗ рджреЗрдЦреЛ)ред
RSI рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░рдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рдХрдИ рд╕реВрдЪрд┐рдпрд╛рдБ рд▓реЗрддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ред рдпреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ srcs, incs, localincs, resources, рдФрд░ misc рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред рдпреЗ
рдпреЗ рд╕реВрдЪрд┐рдпрд╛рдБ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд░рд╣реЗ рдХрд┐ рдпреЗ рд╕реВрдЪрд┐рдпрд╛рдБ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИрдВред
$рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, SCons рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐
рд╡реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП.
рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реВрдЪрд┐рдпрд╛рдБ рд╕рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░рд┐рдгрд╛рдореА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░рд┐рдХреНрдд рди рд╣реЛрдиреЗ рджреЗрдВред
рдЙрдкрд░реЛрдХреНрдд рдорд╛рди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп .dsp рдпрд╛ .vcproj рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рддреНрдпрдп
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди $MSVSPROJECTSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реЛрдЧрд╛
рд╕рд╣реА рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)ред
рдкреНрд░рдХрд╛рд░
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд╛рдоред Visual Studio 7 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рд╣реЛред рдпреЗ рдЖрдо рддреМрд░ рдкрд░ "рдбреАрдмрдЧ" рдпрд╛ "рд░рд┐рд▓реАрдЬрд╝" рдЬреИрд╕реА рдЪреАрдЬрд╝реЗрдВ рд╣реЛрддреА рд╣реИрдВ,
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рд╡рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Visual Studio 7 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рд╡реЗ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рд╡реЗрд░рд┐рдПрдВрдЯ рдирд╛рдо рд╕реЗ | (рд╡рд░реНрдЯрд┐рдХрд▓ рдкрд╛рдЗрдк) рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ
рд╡рд░реНрдг: Debug|Xbox. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо Win32 рд╣реИ. рдПрдХрд╛рдзрд┐рдХ рдХреЙрд▓
рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рднрд┐рдиреНрди рд╡реЗрд░рд┐рдПрдВрдЯ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ; рд╕рднреА рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрдирдХреЗ рдЙрдЪрд┐рдд рдирд┐рд░реНрдорд╛рдг рд▓рдХреНрд╖реНрдпреЛрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВред
cmdargs
рд╡рд┐рднрд┐рдиреНрди рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХред
cmdargs рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рднрд┐рдиреНрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд░рд┐рдХреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдирд╣реАрдВ)
рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд╣реА рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╡реЗрд░рд┐рдПрдВрдЯред
рдмрд┐рд▓реНрдбрдЯрд╛рд░реНрдЧреЗрдЯ
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдиреЛрдб, рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА (рдкреНрд░рддрд┐ рдмрд┐рд▓реНрдб рд╡реИрд░рд┐рдПрдВрдЯ рдПрдХ),
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдбреАрдмрдЧрд░ рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рдХрд┐рд╕ рдмрд┐рд▓реНрдб рд╡реИрд░рд┐рдПрдВрдЯ рдореЗрдВ рдХреМрди рд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рд▓рдХреНрд╖реНрдп рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдмрд┐рд▓реНрдбрдЯрд╛рд░реНрдЧреЗрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡реИрд░рд┐рдПрдВрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рд░рдирдлрд╝рд╛рдЗрд▓
рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕реЗ Visual Studio 7 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛рдПрдБрдЧреЗ рдФрд░ рдбреАрдмрдЧ рдХрд░реЗрдВрдЧреЗ. рдпрд╣
рдкрд░рд┐рдгрд╛рдореА Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓. рдпрджрд┐ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИ
buildtarget рдореВрд▓реНрдп.
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ SCons рд╣рдореЗрд╢рд╛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЕрдкрдиреЗ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднрд┐рдиреНрди рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ SConstruct рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИ
SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ
рд╕рдВрдХрд▓рди рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо Visual Studio рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢
рд╡рд┐рдВрдбреЛ рдореЗрдВ Visual C/C++ /FC рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
$рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рддрд╛рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЙрди рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреВрд░рд╛ рдкрде рдирд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХреЗ рдЬреЛ
рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ.
рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ:
рдмрд╛рд░реНрд╕рдЖрд░рд╕реАрдПрд╕ = ['рдмрд╛рд░.рд╕реАрдкреАрдкреА'],
рдмрд╛рд░рд┐рдиреНрдХреНрд╕ = ['рдмрд╛рд░.рдПрдЪ'],
рдмрд╛рд░рд▓реЛрдХреИрд▓рд┐рдХреНрд╕ = ['StdAfx.h']
рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрди = ['рдмрд╛рд░.rc','рд╕рдВрд╕рд╛рдзрди.h']
рдмрд╛рд░рдорд┐рд╕реНрдХ = ['bar_readme.txt']
dll = env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'bar.dll',
рд╕реНрд░реЛрдд = рдмрд╛рд░реНрд╕рдЖрд░рд╕реАрдПрд╕)
env.MSVSProject(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░' + env['MSVSPROJECTSUFFIX'],
srcs = рдмрд╛рд░реНрд╕rcs,
incs = рдмрд╛рд░рд┐рдиреНрдХреНрд╕,
рд▓реЛрдХрд▓рдЗрдВрдХ = рдмрд╛рд░рд▓реЛрдХрд▓рдЗрдВрдХ,
рд╕рдВрд╕рд╛рдзрди = рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрди,
рд╡рд┐рд╡рд┐рдз = рдмрд╛рд░рдорд┐рд╕реНрдХ,
рдмрд┐рд▓реНрдбрдЯрд╛рд░реНрдЧреЗрдЯ = рдбреАрдПрд▓рдПрд▓,
рд╡реЗрд░рд┐рдПрдВрдЯ = 'рд░рд┐рд▓реАрдЬрд╝')
SCons рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.4 рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ
рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬреЛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ:
рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдбрд┐рдмрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рдЬреЛ .vcproj.user рдпрд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ
.vcxproj.user рдлрд╝рд╛рдЗрд▓, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ cmdargs рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(рдКрдкрд░ рджреЗрдЦреЗрдВ), рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдгред рдпрджрд┐ рдЖрдк рджреЗрддреЗ рд╣реИрдВ
рдХреЗрд╡рд▓ рдПрдХ, рдпрд╣ рд╕рднреА рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреЗрд╡рд▓ Visual Studio v9.0 рдФрд░ Visual Studio рд╕рдВрд╕реНрдХрд░рдг v11 рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ,
рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрдкрдиреЗ MSVS рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢
рд╕рдВрд╕реНрдХрд░рдгред рдпрджрд┐ рд╢рдмреНрджрдХреЛрд╢ рдЦрд╛рд▓реА рд╣реИ, рдпрд╛ рдЙрд╕рдореЗрдВ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдорд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реЛрдЧреА
рдЙрддреНрдкрдиреНрди рд╣реЛред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЕрдзрд┐рдХ рдордирдЧрдврд╝рдВрдд рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдФрд░ рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕:
# рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЕрдкрдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ
vars = рдЪрд░('variables.py')
msvcver = vars.args.get('vc', '9')
# рдПрдХ Microsoft Visual Studio рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЖрд░реНрдЧреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдпрджрд┐ msvcver == '9' рдпрд╛ msvcver == '11':
env = рдкрд░реНрдпрд╛рд╡рд░рдг (MSVC_VERSION=msvcver+'.0', MSVC_BATCH=рдЧрд▓рдд)
рдЕрдиреНрдп:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
AddOption('--userfile', action='store_true', dest='userfile', default=False,
help="Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ")
#
# 1. рдЕрдкрдиреА рдбрд┐рдмрдЧ рд╕реЗрдЯрд┐рдВрдЧ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдЗрдЪреНрдЫрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЕрдиреБрдордд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
# Microsoft Visual Studio 2008 (v9) рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ dll рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ:
#
V9рдбрд┐рдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = {
'рдХрдорд╛рдВрдб':'c:\\myapp\\using\\thisdll.exe',
'рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛': 'c:\\myapp\\using\\',
'рдХрдорд╛рдВрдбрдЖрд░реНрдЧреБрдореЗрдВрдЯреНрд╕': '-p рдкрд╛рд╕рд╡рд░реНрдб',
# 'рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ':'рдЧрд▓рдд',
# 'рдбреАрдмрдЧрд░ рдкреНрд░рдХрд╛рд░':'3',
# 'рд░рд┐рдореЛрдЯ':'1',
# 'рд░рд┐рдореЛрдЯ рдорд╢реАрди': рдХреЛрдИ рдирд╣реАрдВ,
# 'рд░рд┐рдореЛрдЯрдХрдорд╛рдВрдб': рдХреЛрдИ рдирд╣реАрдВ,
# 'HttpUrl': рдХреЛрдИ рдирд╣реАрдВ,
# 'PDBPath': рдХреЛрдИ рдирд╣реАрдВ,
# 'SQLDebugging': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдкрд░реНрдпрд╛рд╡рд░рдг': '',
# 'рдкрд░реНрдпрд╛рд╡рд░рдг рдорд░реНрдЬ':'рд╕рддреНрдп',
# 'рдбреАрдмрдЧрд░рдлреНрд▓реЗрд╡рд░': рдХреЛрдИ рдирд╣реАрдВ,
# 'MPIRunCommand': рдХреЛрдИ рдирд╣реАрдВ,
# 'MPIRunArguments': рдХреЛрдИ рдирд╣реАрдВ,
# 'MPIRunWorkingDirectory': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдПрдкреНрд▓рд┐рдХреЗрд╢рдирдХрдорд╛рдВрдб': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрд░реНрдХ': рдХреЛрдИ рдирд╣реАрдВ,
# 'рд╢рд┐рдордХрдорд╛рдВрдб': рдХреЛрдИ рдирд╣реАрдВ,
# 'MPIAcceptMode': рдХреЛрдИ рдирд╣реАрдВ,
# 'MPIAcceptFilter': рдХреЛрдИ рдирд╣реАрдВ,
}
#
# 2. рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
# Visual Studio рд╕рдВрд╕реНрдХрд░рдг, рдпрджрд┐ рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ
# рдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
# Microsoft рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ dll рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╣реЗрддреБ рдлрд╝рд╛рдЗрд▓
# рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 (v11):
#
V10рдбрд┐рдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = {
'рд▓реЛрдХрд▓рдбрд┐рдмрдЧрд░рдХрдорд╛рдВрдб': 'c:\\myapp\\using\\thisdll.exe',
'рд▓реЛрдХрд▓рдбрд┐рдмрдЧрд░рд╡рд░реНрдХрд┐рдВрдЧрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА': 'c:\\myapp\\using\\',
'LocalDebuggerCommandArguments': '-p рдкрд╛рд╕рд╡рд░реНрдб',
# 'рд▓реЛрдХрд▓рдбрд┐рдмрдЧрд░рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдбрд┐рдмрдЧрд░рдлреНрд▓реЗрд╡рд░': 'рд╡рд┐рдВрдбреЛрдЬрд▓реЛрдХрд▓рдбрд┐рдмрдЧрд░',
# 'LocalDebuggerAttach': рдХреЛрдИ рдирд╣реАрдВ,
# 'рд▓реЛрдХрд▓рдбрд┐рдмрдЧрд░рдбрд┐рдмрдЧрд░рдЯрд╛рдЗрдк': рдХреЛрдИ рдирд╣реАрдВ,
# 'LocalDebuggerMergeEnvironment': рдХреЛрдИ рдирд╣реАрдВ,
# 'LocalDebuggerSQLDebugging': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerCommand': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerCommandArguments': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerWorkingDirectory': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerServerName': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerConnection': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerDebuggerType': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerAttach': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerSQLDebugging': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА': рдХреЛрдИ рдирд╣реАрдВ,
# 'рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВ': рдХреЛрдИ рдирд╣реАрдВ,
# 'RemoteDebuggerDeployDebugCppRuntime': рдХреЛрдИ рдирд╣реАрдВ,
# 'WebBrowserDebuggerHttpUrl': рдХреЛрдИ рдирд╣реАрдВ,
# 'WebBrowserDebuggerDebuggerType': рдХреЛрдИ рдирд╣реАрдВ,
# 'WebServiceDebuggerHttpUrl': рдХреЛрдИ рдирд╣реАрдВ,
# 'WebServiceDebuggerDebuggerType': рдХреЛрдИ рдирд╣реАрдВ,
# 'WebServiceDebuggerSQLDebugging': рдХреЛрдИ рдирд╣реАрдВ,
}
#
# 3. рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдЪреНрдЫрд┐рдд рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
# рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ.
#
рдпрджрд┐ рдирд╣реАрдВ рддреЛ env.GetOption('userfile'):
dbgрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = рдХреЛрдИ рдирд╣реАрдВ
рдпрджрд┐ env.get('MSVC_VERSION', None) == '9.0':
dbgрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = V9Debugрд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдпрджрд┐ env.get('MSVC_VERSION', None) == '11.0':
dbgрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = V10Debugрд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдЕрдиреНрдп:
dbgрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = рдХреЛрдИ рдирд╣реАрдВ
#
# 4. DebugSettings рдХреАрд╡рд░реНрдб рдореЗрдВ рд╢рдмреНрджрдХреЛрд╢ рдЬреЛрдбрд╝реЗрдВред
#
рдмрд╛рд░реНрд╕рдЖрд░рд╕реАрдПрд╕ = ['рдмрд╛рд░.рд╕реАрдкреАрдкреА', 'dllmain.cpp', 'stdafx.cpp']
рдмрд╛рд░рд┐рдиреНрдХреНрд╕ = ['targetver.h']
рдмрд╛рд░рд▓реЛрдХреИрд▓рд┐рдХреНрд╕ = ['StdAfx.h']
рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрди = ['рдмрд╛рд░.rc','рд╕рдВрд╕рд╛рдзрди.h']
рдмрд╛рд░рдорд┐рд╕реНрдХ = ['ReadMe.txt']
dll = env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'bar.dll',
рд╕реНрд░реЛрдд = рдмрд╛рд░реНрд╕рдЖрд░рд╕реАрдПрд╕)
env.MSVSProject(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░' + env['MSVSPROJECTSUFFIX'],
srcs = рдмрд╛рд░реНрд╕rcs,
incs = рдмрд╛рд░рд┐рдиреНрдХреНрд╕,
рд▓реЛрдХрд▓рдЗрдВрдХ = рдмрд╛рд░рд▓реЛрдХрд▓рдЗрдВрдХ,
рд╕рдВрд╕рд╛рдзрди = рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрди,
рд╡рд┐рд╡рд┐рдз = рдмрд╛рд░рдорд┐рд╕реНрдХ,
рдмрд┐рд▓реНрдбрдЯрд╛рд░рдЧреЗрдЯ = [dll[0]] * 2,
рд╡реИрд░рд┐рдПрдВрдЯ = ('рдбреАрдмрдЧ|Win32', 'рд░рд┐рд▓реАрдЬрд╝|Win32'),
cmdargs = 'vc=%s' % msvcver,
рдбреАрдмрдЧрд╕реЗрдЯрд┐рдВрдЧреНрд╕ = (dbgрд╕реЗрдЯрд┐рдВрдЧреНрд╕, {}))
рдПрдордПрд╕рд╡реАрдПрд╕рд╕реЙрд▓реНрдпреВрд╢рди(), env.MSVSSolution()
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ.
рдпрд╣ Visual Studio рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Visual Studio рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рддреЛ рдирд╡реАрдирддрдо рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг, рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг
$MSVS_рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ)ред Visual Studio 6 рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛
.dsw рдлрд╝рд╛рдЗрд▓ред Visual Studio 7 (.NET) рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ .sln рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпреЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП:
рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп .dsw рдпрд╛ .sln рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рддреНрдпрдп
Visual Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдорд╛рди $MSVSSOLUTIONSUFFIX рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕рд╣реА рдорд╛рди (рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)
рдкреНрд░рдХрд╛рд░
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡реИрд░рд┐рдПрдВрдЯ рдХрд╛ рдирд╛рдо, рдпрд╛ рд╡реИрд░рд┐рдПрдВрдЯ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА (рдЙрддреНрддрд░рд╛рд░реНрджреНрдз
рдХреЗрд╡рд▓ MSVS 7 рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд)ред рдпреЗ рдЖрдо рддреМрд░ рдкрд░ "рдбреАрдмрдЧ" рдпрд╛ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВ
"рд░рд┐рд▓реАрдЬрд╝", рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред MSVS 7 рдХреЗ рд▓рд┐рдП рд╡реЗ рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдЬреИрд╕реЗ рдХрд┐ "Debug|Xbox"ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо Win32 рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА, рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рдЬреЛ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЬрд╛рддреА рд╣реИ
рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░, рдХреЛ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐
рдЗрди рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЛ $SOURCES рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ
рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ, рди рдХрд┐ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВред
рдЙрджрд╛рд╣рд░рдг
env.MSVSSolution(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░' + env['MSVSSOLUTIONSUFFIX'], рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ = ['рдмрд╛рд░'
+ env['MSVSPROJECTSUFFIX']], variant = 'рд░рд┐рд▓реАрдЬрд╝')
рд╡рд╕реНрддреБ(), env.рдСрдмреНрдЬреЗрдХреНрдЯ()
рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдирд╛рд░реНрдереА рд╕реНрдереИрддрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рдкреИрдХреЗрдЯ(), env.рдкреИрдХреЗрдЬ()
рджреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рдмрдирд╛рддрд╛ рд╣реИред
env.Package(рд╕реНрд░реЛрдд = FindInstalledFiles())
рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рддрд░рдг рдкреИрдХреЗрдЬ рдмрдирд╛рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ
рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реАред рдкреВрд░реНрд╡ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реНрд░реЛрдд рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦреЛрдЬреЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЙрди рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ
рдПрдХ рд╣реИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ or рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдмрд┐рд▓реНрдбрд░ рд╕рдВрд▓рдЧреНрди рд╣реИред рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣
рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЛ рджреА рдЧрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рдорджрдж рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рдиреАрдЪреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝рд┐рддред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЯреИрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬрд╝реЛрд░ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЯреИрдЧ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдВрдЧреЗ рдпрджрд┐
рд╡реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдереЗред рд╡реЗ рдЪреБрдиреЗ рдЧрдП рд▓рдХреНрд╖реНрдп рдкреИрдХреЗрдЬрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рд▓рдХреНрд╖реНрдп рдкреИрдХреЗрдЬрд░ рдХреЛ "PACKAGETYPE" рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдпрд╛ "PACKAGETYPE" рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
la $рдкреИрдХреЗрдЬрдЯрд╛рдЗрдк рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬрд░реНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
* msi - рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЗрдВрд╕реНрдЯреЙрд▓рд░ * rpm - рд░реЗрдбрд╣реИрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ * ipkg - рдЗрдЯреНрд╕реА рдкреИрдХреЗрдЬ
рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА * tarbz2 - рд╕рдВрдкреАрдбрд╝рд┐рдд tar * targz - рд╕рдВрдкреАрдбрд╝рд┐рдд tar * zip - рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓
* src_tarbz2 - рд╕рдВрдкреАрдбрд╝рд┐рдд tar рд╕реНрд░реЛрдд * src_targz - рд╕рдВрдкреАрдбрд╝рд┐рдд tar рд╕реНрд░реЛрдд * src_zip -
рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рд╕реНрд░реЛрдд
рдкреИрдХреЗрдЬ_рдкреНрд░рдХрд╛рд░ рдЪрд▓рд╛рддреЗ рд╕рдордп рдПрдХ рдЕрджреНрдпрддрди рд╕реВрдЪреА рд╣рдореЗрд╢рд╛ "package_type" рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЙрдкрд▓рдмреНрдз рд░рд╣рддреА рд╣реИ
"scons --help" рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'рдкреИрдХреЗрдЬрд┐рдВрдЧ'])
env.рдЗрдВрд╕реНрдЯреЙрд▓('/ рдмрд┐рди /', 'рдореЗрд░рд╛_рдХрд╛рд░реНрдпрдХреНрд░рдо')
env.Package( рдирд╛рдо = 'foo',
рд╕рдВрд╕реНрдХрд░рдг = '1.2.3',
рдкреИрдХреЗрдЬрд╡рд░реНрдЬрди = 0,
рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд░ = 'рдЖрд░рдкреАрдПрдо',
рд▓рд╛рдЗрд╕реЗрдВрд╕ = 'рдЬреАрдкреАрдПрд▓',
рд╕рд╛рд░рд╛рдВрд╢ = 'рдмрд▓реНрд▓рд╛рд▓рд╛рд▓рд▓рд╛рд▓',
рд╡рд┐рд╡рд░рдг = 'рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП',
X_RPM_GROUP = 'рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдлрд╝реНрдпреВ',
рд╕реНрд░реЛрдд_URL = 'http://foo.org/foo-1.2.3.tar.gz'
)
рдкреАрд╕реАрдПрдЪ(), env.рдкреАрд╕реАрдПрдЪ()
Microsoft Visual C++ рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓реНрдб рд╣реЗрдбрд░ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рд░рд┐рдЯрд░реНрди рдорд┐рд▓рддрд╛ рд╣реИ
рджреЛ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА: рдкрд╣рд▓рд╛ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ PCH, рдФрд░ рджреВрд╕рд░рд╛ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓
рддрддреНрд╡ред рдЖрдо рддреМрд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ
рдЬрдм Microsoft Visual C++ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛред PCH рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рд╣реИ
рдЖрдо рддреМрд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PCH рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
env['PCH'] = env.PCH('StdAfx.cpp')[0]
рдкреАрдбреАрдПрдл(), env.рдкреАрдбреАрдПрдл()
.dvi рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ (рдпрд╛, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛, .tex, .ltx, рдпрд╛ .latex) рд╕реЗ .pdf рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ
рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп $рдкреАрдбреАрдПрдлрд╕рдлрд╝рд┐рдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ (.pdf рджреНрд╡рд╛рд░рд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рд▓рдХреНрд╖реНрдп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
# aaa.tex рд╕реЗ рдирд┐рд░реНрдорд┐рдд
env.PDF(рд▓рдХреНрд╖реНрдп = 'aaa.pdf', рд╕реНрд░реЛрдд = 'aaa.tex')
# bbb.dvi рд╕реЗ bbb.pdf рдмрдирд╛рддрд╛ рд╣реИ
env.PDF(рд▓рдХреНрд╖реНрдп = 'bbb', рд╕реНрд░реЛрдд = 'bbb.dvi')
POInit(), env.POInit()
рдпрд╣ рдмрд┐рд▓реНрдбрд░ msginit рдЯреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдмрд┐рд▓реНрдбрд░ рдЧреБрдо PO рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдпрджрд┐
$POрдСрдЯреЛрдЗрдирд┐рдЯ рд╕реЗрдЯ рд╣реИред рдЕрдЧрд░ $POрдСрдЯреЛрдЗрдирд┐рдЯ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), POInit рдкреНрд░рд┐рдВрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЬрд┐рд╕реЗ рдЕрдиреБрд╡рд╛рджрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ PO рдлрд╝рд╛рдЗрд▓ рдХреИрд╕реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рд▓рд┐рдП рдЖрдк рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рдЙрдкрдпреЛрдЧ POInit рдФрд░ рдЙрдкрдпреЛрдЧ POрдЕрдкрдбреЗрдЯ рдмрдЬрд╛рдп.
POрдЕрдкрдбреЗрдЯ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЪреБрдирддрд╛ рд╣реИ рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рдФрд░ msginit(1). POInit рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
msginit(1) рдФрд░ рдЙрд╕реЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рддреНрд╡рд░рд┐рдд, рдПрдХ рдмрд╛рд░ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП) рдпрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдПред
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд POInit рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ '.' рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдиреЛрдб) рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 'po-create') рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрдирд╛рдо рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ $POCREATE_ALIAS рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рд╕рднреА PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд
рдкреВрдЬреНрдп рдЧреБрд░реБрджреЗрд╡ рдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рд╕реЗ рд╕рдВрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - POInit рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕ po-рдХреНрд░рд┐рдПрдЯ.
рдЙрджрд╛рд╣рд░рдг 1. message.pot рд╕реЗ en.po рдФрд░ pl.po рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
#...
env.POInit(['en', 'pl']) # messages.pot --> [en.po, pl.po]
рдЙрджрд╛рд╣рд░рдг 2. foo.pot рд╕реЗ en.po рдФрд░ pl.po рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
#...
env.POInit(['en', 'pl'], ['foo']) # foo.pot --> [en.po, pl.po]
рдЙрджрд╛рд╣рд░рдг 3. en.po рдФрд░ pl.po рдХреЛ foo.pot рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ $POTDOMAIN рдирд┐рд░реНрдорд╛рдг
рдЪрд░:
#...
env.POInit(['en', 'pl'], POTDOMAIN='foo') # foo.pot --> [en.po, pl.po]
рдЙрджрд╛рд╣рд░рдг 4LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрд░рдВрдн рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓реЗрдВ
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрджреЗрд╢.pot рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
#...
env.POInit(LINGUAS_FILE = 1) # рдХреЛ 'LINGUAS' рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг 5en.po рдФрд░ pl.pl PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
LINGUAS рдлрд╝рд╛рдЗрд▓ред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрджреЗрд╢.pot рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
#...
env.POInit(['en', 'pl'], LINGUAS_FILE = рез)
рдЙрджрд╛рд╣рд░рдг 6рдЖрдк рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
#...
env['POAUTOINIT'] = 1
env['LINGUAS_FILE'] = 1
env['POTDOMAIN'] = 'foo'
env.POInit()
рдЬрд┐рд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ рд╕рдорд╛рди рд╣реИ:
#...
env.POInit(POAUTOINIT = 1, LINGUAS_FILE = 1, POTDOMAIN = 'foo')
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧ(), env.рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ()
.dvi рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ (рдпрд╛, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛, .tex, .ltx, рдпрд╛ .latex) рд╕реЗ .ps рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ
рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп $PSSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ (.ps рджреНрд╡рд╛рд░рд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рд▓рдХреНрд╖реНрдп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
# aaa.tex рд╕реЗ рдирд┐рд░реНрдорд┐рдд
env.PostScript(рд▓рдХреНрд╖реНрдп = 'aaa.ps', рд╕реНрд░реЛрдд = 'aaa.tex')
# bbb.dvi рд╕реЗ bbb.ps рдмрдирд╛рддрд╛ рд╣реИ
env.PostScript(рд▓рдХреНрд╖реНрдп = 'bbb', рд╕реНрд░реЛрдд = 'bbb.dvi')
POTрдЕрдкрдбреЗрдЯ(), env.POTUpdate()
рдмрд┐рд▓реНрдбрд░ xgettext рдЯреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдмрд┐рд▓реНрдбрд░ рд▓рдХреНрд╖реНрдп POT рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ рдпрд╛
рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдПрдХ рдиреЛрдб рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреЛрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
'.'), рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдорд╛рдВрдЧ рдкрд░ (рдЕрд░реНрдерд╛рдд рдЬрдм рджреА рдЧрдИ POT рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рдпрд╛ рдЬрдм рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо рд╣реЛ)
рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдмрд┐рд▓реНрдбрд░ рдЕрдкрдиреЗ рдЯрд╛рд░реНрдЧреЗ рдиреЛрдб (рдЬреИрд╕реЗ рдХрд┐ рдореИрд╕реЗрдЬ.рдкреЙрдЯ) рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреЙрдЯ-рдЕрдкрдбреЗрдЯ, рджреЗрдЦреЗрдВ $POTUPDATE_ALIAS) рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдбреЗрдЯ/рдмрдирд╛ рд╕рдХреЗрдВ
рд╕рд╛рде рдореЗрдВ рд╕реНрдХреИрдиреНрд╕ рдкреЙрдЯ-рдЕрдкрдбреЗрдЯ.рдлрд╝рд╛рдЗрд▓ рддрдм рддрдХ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рди рд╣реЛ
рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рд╕рдВрджреЗрд╢ (рдпрд╛ POT рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд░реНрдЬ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ)ред
рдиреЛрдЯ
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ xgettext(1) xgettext рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рднрд▓реЗ рд╣реА рдХреЛрдИ рди рд╣реЛ
рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди (рдЗрд╕рд▓рд┐рдП POT рдлрд╝рд╛рдЗрд▓ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ)ред
рдРрд╕рд╛ рд╣рд░ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реИрдВ
xgettext(1) рдФрд░ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рддреБрд▓рдирд╛ POT рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ.
рдЙрджрд╛рд╣рд░рдг 1. рдЖрдЗрдП po/ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд SConstruct рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦреЗрдВ:
# 'po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConstruct
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env.POTUpdate(['foo'], ['../a.cpp', '../b.cpp'])
env.POTUpdate(['рдмрд╛рд░'], ['../c.cpp', '../d.cpp'])
рдлрд┐рд░ scons рдХреЛ рдХреБрдЫ рдмрд╛рд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
user@host:$ scons # foo.pot рдпрд╛ bar.pot рдирд╣реАрдВ рдмрдирд╛рддрд╛
user@host:$ scons foo.pot # foo.pot рдХреЛ рдЕрдкрдбреЗрдЯ рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ
user@host:$ scons pot-update # foo.pot рдФрд░ bar.pot рдХреЛ рдЕрдкрдбреЗрдЯ рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ
user@host:$ scons -c # рди рддреЛ foo.pot рдФрд░ рди рд╣реА bar.pot рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рд╡реИрд╕реЗ рд╣реА рд╣реЛрдВрдЧреЗ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджреА рдЧрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг 2. RSI POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рд╕рдВрджреЗрд╢.pot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдХреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреА рд╕реНрдерд╛рдкрдирд╛ $POTDOMAIN рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ POTрдЕрдкрдбреЗрдЯ
рдмрд┐рд▓реНрдбрд░:
# рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env['POTDOMAIN'] = "foo"
env.POTUpdate(source = ["a.cpp", "b.cpp"]) # foo.pot рдмрдирд╛рддрд╛ рд╣реИ ...
env.POTUpdate(POTDOMAIN = "bar", source = ["c.cpp", "d.cpp"]) # рдФрд░ bar.pot
рдЙрджрд╛рд╣рд░рдг 3. рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
POTFILES.in:
# POTFILES.in 'po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
../a.рд╕реАрдкреАрдкреА
../рдмреА.рд╕реАрдкреАрдкреА
# рдлрд╛рдЗрд▓ рд╕рдорд╛рдкреНрдд
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (POTFILES.in) рдЬрд┐рд╕рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ, рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
$XGETTEXTFROM:
# 'po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in')
рдЙрджрд╛рд╣рд░рдг 4. рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ $XGETTEXTPATH рд╕реНрд░реЛрдд рдЦреЛрдЬ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдорд╛рди рд▓реЗрдВ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ a.cpp, b.cpp, po/SConstruct, po/POTFILES.in рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рддреЛ рдЖрдкрдХреА
POT-рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд┐рдЦ рд╕рдХрддреА рд╣реИрдВ:
# POTFILES.in 'po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
рдП.рд╕реАрдкреАрдкреА
рдмреА.рд╕реАрдкреАрдкреА
# рдлрд╛рдЗрд▓ рд╕рдорд╛рдкреНрдд
# 'po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH='../')
рдЙрджрд╛рд╣рд░рдг 5. рдПрдХ рд╕реВрдЪреА рдХреЗ рднреАрддрд░ рдПрдХрд╛рдзрд┐рдХ рдЦреЛрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН
XGETTEXTPATH тАЛтАЛ= ['dir1', 'dir2', ...]. рд╕реВрдЪреА рдореЗрдВ рдХреНрд░рдо рдЦреЛрдЬ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдХреНрд░рдоред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкрд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП 0/1/po/SConstruct рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ:
# '0/1/po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH=['../', '../../'])
рдФрд░ 0/1/po/POTFILES.in:
# POTFILES.in '0/1/po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
рдП.рд╕реАрдкреАрдкреА
# рдлрд╛рдЗрд▓ рд╕рдорд╛рдкреНрдд
рджреЛ *.cpp рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦреЗрдВ, рдкрд╣рд▓реА 0/a.cpp рд╣реИ:
/* 0/a.cpp */
gettext("рдирдорд╕реНрддреЗ ../../a.cpp рд╕реЗ")
рдФрд░ рджреВрд╕рд░рд╛ рд╣реИ 0/1/a.cpp:
/* 0/1/a.cpp */
gettext("рдирдорд╕реНрддреЗ../a.cpp рд╕реЗ")
рдлрд┐рд░ scons рдЪрд▓рд╛рдПрдБред рдЖрдкрдХреЛ 0/1/po/messages.pot рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдорд┐рд▓реЗрдЧрд╛ "рдирдорд╕реНрддреЗ рд╕реЗ
../a.cpp". рдЬрдм рдЖрдк рдХреНрд░рдо рдХреЛ рдЙрд▓рдЯрддреЗ рд╣реИрдВ $XGETTEXTFOM, рдпрд╛рдиреА рдЬрдм рдЖрдк SConscript рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
# '0/1/po/' рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH=['../../', '../'])
рддреЛ рдореИрд╕реЗрдЬ.рдкреЙрдЯ рдореЗрдВ msgid "Hello from ../../a.cpp" рд▓рд╛рдЗрди рд╣реЛрдЧреА, msgid рдирд╣реАрдВ
"../a.cpp рд╕реЗ рдирдорд╕реНрддреЗ".
рдкреАрдУрдЕрдкрдбреЗрдЯ(), env.POрдЕрдкрдбреЗрдЯ()
рдмрд┐рд▓реНрдбрд░ msgmerge рдЯреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдмрд┐рд▓реНрдбрд░ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1),
рдпрд╛ msginit рдЙрдкрдХрд░рдг рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрд╕рд╛рд░ рдЧреБрдо PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░
POInit рдмрд┐рд▓реНрдбрд░ (рдпрд╣ рднреА рджреЗрдЦреЗрдВ $POрдСрдЯреЛрдЗрдирд┐рдЯ)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ POрдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЗрд╕рдХреЗ рд▓рдХреНрд╖реНрдп рд╕реЗрд╡рд╛ рдореЗрд░реЗ
po-рдХреНрд░рд┐рдПрдЯ рдЙрд░реНрдл as POInit рдХрд░рддрд╛ рд╣реИ.
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд POрдЕрдкрдбреЗрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
'.' рдиреЛрдб) рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо ('po-update' рджреНрд╡рд╛рд░рд╛) рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ)ред рдЙрдкрдирд╛рдо рдирд╛рдо рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ $POUPDATE_ALIAS рдирд┐рд░реНрдорд╛рдг
рдЪрд░ред рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдХреИрдиреНрд╕ po-рдЕрдкрдбреЗрдЯ.
рдЙрджрд╛рд╣рд░рдг 1. message.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ en.po рдФрд░ pl.po рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ (рдпрд╣ рднреА рджреЗрдЦреЗрдВ) $POTDOMAIN),
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдмрд╛рдж рд╡рд╛рд▓рд╛ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рдпрдо рд╣реИ (рджреЗрдЦреЗрдВ POTрдЕрдкрдбреЗрдЯ):
#...
env.POUpdate(['en','pl']) # messages.pot --> [en.po, pl.po]
рдЙрджрд╛рд╣рд░рдг 2. foo.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ en.po рдФрд░ pl.po рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВ:
#...
env.POUpdate(['en', 'pl'], ['foo']) # foo.pot --> [en.po, pl.pl]
рдЙрджрд╛рд╣рд░рдг 3. foo.pot (рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг) рд╕реЗ en.po рдФрд░ pl.po рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВ:
#...
env.POUpdate(['en', 'pl'], POTDOMAIN='foo') # foo.pot -- > [en.po, pl.pl]
рдЙрджрд╛рд╣рд░рдг 4. LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ
рд╕рдВрджреЗрд╢.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ:
#...
env.POUpdate(LINGUAS_FILE = 1) # рдХреЛ 'LINGUAS' рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг 5. рдЙрдкрд░реЛрдХреНрдд рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди foo.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЕрджреНрдпрддрди:
#...
env.POUpdate(LINGUAS_FILE = 1, рд╕реНрд░реЛрдд = ['foo'])
рдЙрджрд╛рд╣рд░рдг 6. LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП en.po рдФрд░ pl.po рдкреНрд▓рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВред
рдлрд╝рд╛рдЗрд▓реЗрдВ message.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЕрджреНрдпрддрди рдХреА рдЬрд╛рддреА рд╣реИрдВ:
# 'en.po', 'pl.po' + 'LINGUAS' рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ:
env.POUpdate(['en', 'pl' ], LINGUAS_FILE = рез)
рдЙрджрд╛рд╣рд░рдг 7. рдЙрдкрдпреЛрдЧ $POрдСрдЯреЛрдЗрдирд┐рдЯ рдпрджрд┐ PO рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЙрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
#...
env.POUpdate(LINGUAS_FILE = 1, POAUTOINIT = 1)
рдЙрджрд╛рд╣рд░рдг 8. LINGUAS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ
foo.pot рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг.
#...
env['POAUTOINIT'] = 1
env['LINGUAS_FILE'] = 1
env['POTDOMAIN'] = 'foo'
env.POрдЕрдкрдбреЗрдЯ()
рдХрд╛рд░реНрдпрдХреНрд░рдо(), env.рдкреНрд░реЛрдЧреНрд░рд╛рдо()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ C, C++, D, рдпрд╛ Fortran рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрджрд┐ рдХреЛрдИ C, C++, D рдпрд╛ Fortran рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╕реНрддреБ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐; рджреЗрдЦреЗрдВ рдХрд┐
рдХрд╛рдиреВрдиреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рд╡реЗ рдХреИрд╕реЗ рд╣реИрдВ
рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИред рд▓рдХреНрд╖реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧ (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $PROGPREFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ) рдФрд░ рдкреНрд░рддреНрдпрдп (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $PROGSUFFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ .exe, POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреБрдЫ рдирд╣реАрдВ)
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг:
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = ['foo.o', 'bar.c', 'baz.f'])
рдЖрд░рдИрдПрд╕(), env.RES()
Microsoft Visual C++ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рддрдм рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ C++ рдпрд╛ MinGW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рддреНрдпрдп рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ MinGW) рдкреНрд░рддреНрдпрдп рдХреЛ рд▓рдХреНрд╖реНрдп рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рд╕реА рдлрд╝рд╛рдЗрд▓ рд╣реЛред рдЙрджрд╛рд╣рд░рдг:
env.RES('рд╕рдВрд╕рд╛рдзрди.rc')
рдЖрд░рдПрдордЖрдИрд╕реА(), env.рдЖрд░рдПрдордЖрдИрд╕реА()
рдЬрд╛рд╡рд╛ .class рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рджреВрд░рд╕реНрде рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдм рдФрд░ рдХрдВрдХрд╛рд▓ рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИред
рд▓рдХреНрд╖реНрдп рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдЯрдм рдФрд░ рдХрдВрдХрд╛рд▓ рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА
рд▓рд┐рдЦрд┐рддред рд╕реНрд░реЛрдд .class рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрд╛рд╡рд╛ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ $рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕реНрдбрд┐рд░ рдпрд╛ рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдпрд╛ рдлрд┐рд░
рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдЖрд░рдПрдордЖрдИрд╕реА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ, рддреЛ рдЪрд░ рдХрд╛ рдорд╛рди рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рднреА .class рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЖрд░рдВрдн рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдХрдХреНрд╖рд╛рдПрдВ = env.Java(рд▓рдХреНрд╖реНрдп = 'classdir', рд╕реНрд░реЛрдд = 'src')
env.RMIC(рд▓рдХреНрд╖реНрдп = 'outdir1', рд╕реНрд░реЛрдд = рдХрдХреНрд╖рд╛рдПрдВ)
env.RMIC(рд▓рдХреНрд╖реНрдп = 'outdir2',
рд╕реНрд░реЛрдд = ['рдкреИрдХреЗрдЬ/foo.class', 'рдкреИрдХреЗрдЬ/bar.class'])
env.RMIC(рд▓рдХреНрд╖реНрдп = 'outdir3',
рд╕реНрд░реЛрдд = ['рдХреНрд▓рд╛рд╕реЗрд╕/foo.class', 'рдХреНрд▓рд╛рд╕реЗрд╕/bar.class'],
JAVACLASSDIR = 'рдХреНрд▓рд╛рд╕реЗрд╕')
рдЖрд░рдкреАрд╕реАрдЬреЗрдирдХреНрд▓рд╛рдЗрдВрдЯ(), env.RPCGenClient()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ RPC (.x) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ RPC рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдЯрдм (_clnt.c) рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВрдХрд┐ rpcgen рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдорд╛рдВрдб рд╣реЛрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
# src/rpcif_clnt.c рдмрдирд╛рддрд╛ рд╣реИ
env.RPCGenClient('src/rpcif.x')
рдЖрд░рдкреАрд╕реАрдЬреЗрдирд╣реИрдбрд░(), env.RPCGenHeader()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ RPC (.x) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ RPC рд╣реЗрдбрд░ (.h) рдлрд╝рд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐
rpcgen рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ.
# src/rpcif.h рдмрдирд╛рддрд╛ рд╣реИ
env.RPCGenHeader('src/rpcif.x')
рдЖрд░рдкреАрд╕реАрдЬреЗрдирд╕рд░реНрд╡рд┐рд╕(), env.RPCGenService()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ RPC (.x) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ RPC рд╕рд░реНрд╡рд░-рд╕реНрдХреЗрд▓реЗрдЯрди (_svc.c) рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВрдХрд┐ rpcgen рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдорд╛рдВрдб рд╣реЛрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
# src/rpcif_svc.c рдмрдирд╛рддрд╛ рд╣реИ
env.RPCGenClient('src/rpcif.x')
рдЖрд░рдкреАрд╕реАрдЬреЗрдирдПрдХреНрд╕рдбреАрдЖрд░(), env.RPCGenXDR()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ RPC (.x) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ RPC XDR рд░реВрдЯреАрди (_xdr.c) рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВрдХрд┐ rpcgen рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдорд╛рдВрдб рд╣реЛрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
# src/rpcif_xdr.c рдмрдирд╛рддрд╛ рд╣реИ
env.RPCGenClient('src/rpcif.x')
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА(), env.рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рджрд┐рдП рдЧрдП рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ .so, Windows рдкрд░ .dll) рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ C, C++, D рдпрд╛ Fortran рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрджрд┐ рдХреЛрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рджреА рдЧрдИ рд╣реИрдВ, рддреЛ
рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдБрдЧреЗред рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрд╕рд░реНрдЧ рдФрд░
рдкреНрд░рддреНрдпрдп (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рдХреНрд╖реНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧ
(рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ $SHLIBPREFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, POSIX рдкрд░ lib
рд╕рд┐рд╕реНрдЯрдо, рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ) рдФрд░ рдкреНрд░рддреНрдпрдп (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $SHLIBSUFFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ .dll, POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ .so) рд╣реИрдВ
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = ['bar.c', 'foo.o'])
рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрдпрд╛рдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреА
рд╕рд╛рдЭрд╛ (.dll) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд (.lib) рд▓рд╛рдЗрдмреНрд░реЗрд░реА, .lib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЬреЛрдбрд╝рдирд╛
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдИ .lib рдлрд╝рд╛рдЗрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ рд╡рд╣реА рдмреЗрд╕рдирд╛рдо
рд▓рдХреНрд╖реНрдпред
рд╕рд┐рдЧреНрд╡рд┐рди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░, рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрдпрд╛рдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреА
рд╕рд╛рдЭрд╛ (.dll) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд (.dll.a) рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдПрдХ .dll.a рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝рдирд╛
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА .dll.a рдлрд╝рд╛рдЗрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реА рдмреЗрд╕рдиреЗрдо рдХреЗ рд╕рд╛рде
рд▓рдХреНрд╖реНрдпред
рд╕реНрд░реЛрдд рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХреЛрдИ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реЛрдЧреА (рдЬреЛ рдХрд┐
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕рд╛рдЭрд╛рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐)ред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА рддреЛ scons рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрдард╛рдПрдЧрд╛
рдмреЗрдореЗрд▓
рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░, рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рд▓реЛрдбреЗрдб) рдФрд░ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рд▓реЛрдбреЗрдб) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИ
рдмрд╛рд╣реНрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ) рдФрд░ рдПрдХ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓
(рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдЕрдзрд┐рдХрддрдо рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓
рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ред
рдЬрдм $SHLIBрд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ
рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ $SHLINKFLAGS рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░, рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИред
env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = ['bar.c', 'foo.o'], SHLIBVERSION='1.5.2')
POSIX рдкреНрд░рдгрд╛рд▓реА рдкрд░, рдПрдХрд▓ рдЯреЛрдХрди рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ:
libbar.so.6 рдореЗрдВ рдХреЗрд╡рд▓ libbar.so рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ред POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░, рджреЛ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг
рдпрд╛ рдЕрдзрд┐рдХ рдЯреЛрдХрди рдареАрдХ рджреЛ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ: libbar.so.2.3.1 рдореЗрдВ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рд╣реЛрдВрдЧреЗ
libbar.so рдФрд░ libbar.so.2; рдбрд╛рд░реНрд╡рд┐рди (OSX) рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдЧреА
libbar.2.3.1.dylib рдФрд░ рд▓рд┐рдВрдХ libbar.dylib рд╣реЛрдЧрд╛ред
рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░, register=1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ .dll рдХреЛ рдмрд╛рдж рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЗрд╕реЗ REGSVR32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ("рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ regsvr32") рд╡рд╣ рд╣реИ
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд $рдЖрд░рдИрдЬреАрдПрд╕рд╡реАрдЖрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдФрд░ рдкрд╛рд░рд┐рдд рдЭрдВрдбреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
$REGSVRFLAGSред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, $REGSVRFLAGS рд╢рд╛рдорд┐рд▓ /s рд╡рд┐рдХрд▓реНрдк, рд╕рдВрд╡рд╛рджреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП
рдкреЙрдк рдЕрдк рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ $REGSVRFLAGS, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЗрд╕рдореЗрдВ рдЕрд╡рд╢реНрдп рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ /s рд╡рд┐рдХрд▓реНрдкред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░',
рд╕реНрд░реЛрдд = ['bar.cxx', 'foo.obj'],
рд░рдЬрд┐рд╕реНрдЯрд░=1)
рдЬрдм рдпрд╣ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд╛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░ рд▓реЗрдЧрд╛ рддреЛ bar.dll рдХреЛ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рджреЗрдЧрд╛ред
рд╕рд╛рдЭрд╛рдСрдмреНрдЬреЗрдХреНрдЯ(), env.рд╕рд╛рдЭрд╛рдСрдмреНрдЬреЗрдХреНрдЯ()
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдКрдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╡рд╣реА рд╕реЗрдЯ рд╕реНрдереИрддрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдкрд░ред
рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреИрд╕реЗ
-рдПрдлрдкреАрдЖрдИрд╕реА рдЬреАрд╕реАрд╕реА рдХреЗ рд▓рд┐рдП) рдПрдХ рд╕рд╛рдорд╛рдиреНрдп (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдХрд┐рди
рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдПрдХ. рдЬрдм рдХреЛрдИ рдЕрдВрддрд░ рд╣реЛрдЧрд╛, рддреЛ SCons рдХреЗрд╡рд▓ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдФрд░ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рддреНрдпрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╣рд╛рдБ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, SCons рд╕рд╛рдорд╛рдиреНрдп (рд╕реНрдерд┐рд░) рдФрд░ рджреЛрдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкреНрд░рддреНрдпрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕рд╛рдЭрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯред рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧ (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ)
$SHOBJPREFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬреИрд╕рд╛ рд╣реА $рдУрдмреАрдЬреЗрдкреАрд░рд┐рдлрд┐рдХреНрд╕) рдФрд░ рдкреНрд░рддреНрдпрдп
(рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ $SHOBJSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
env.SharedObject(рд▓рдХреНрд╖реНрдп = 'ddd', рд╕реНрд░реЛрдд = 'ddd.c')
env.SharedObject(рд▓рдХреНрд╖реНрдп = 'eee.o', рд╕реНрд░реЛрдд = 'eee.cpp')
env.SharedObject(рд▓рдХреНрд╖реНрдп = 'fff.obj', рд╕реНрд░реЛрдд = 'fff.for')
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рддреНрдпрдп рдореИрдкрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.
SourceFileScanner рдСрдмреНрдЬреЗрдХреНрдЯред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдЬрд╛рдирдХрд╛рд░реА.
рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА(), env.рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ C, C++, D рдпрд╛ Fortran рд╕реНрд░реЛрдд рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдПрдХ рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрджрд┐ рдХреЛрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рджреА рдЧрдИ рд╣реИрдВ, рддреЛ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреА
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВред рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп. рд▓рдХреНрд╖реНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧ (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $LIBPREFIX рдирд┐рд░реНрдорд╛рдг
рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ lib, Windows рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреБрдЫ рдирд╣реАрдВ) рдФрд░ рдкреНрд░рддреНрдпрдп
(рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ $LIBSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ .lib
рд╕рд┐рд╕реНрдЯрдо, POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ .a) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ
рд╡рд░реНрддрдорд╛рдиред рдЙрджрд╛рд╣рд░рдг:
env.StaticLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = ['bar.c', 'foo.o'])
рд╕реНрд░реЛрдд рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХреЛрдИ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕реА рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реЛрдЧреА (рдЬреЛ рдХрд┐
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реНрдереИрддрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐)ред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА рддреЛ scons рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрдард╛рдПрдЧрд╛
рдмреЗрдореЗрд▓
рд╕реНрдЯреЗрдЯрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ(), env.рд╕реНрдЯреЗрдЯрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ()
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ C, C++, D, рдпрд╛ Fortran рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рд╕реНрдереИрддрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
.asm рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓
.ASM рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓
.c рд╕реА рдлрд╝рд╛рдЗрд▓
.C рд╡рд┐рдВрдбреЛрдЬрд╝: C рдлрд╝рд╛рдЗрд▓
POSIX: C++ рдлрд╝рд╛рдЗрд▓
.cc рд╕реА++ рдлрд╝рд╛рдЗрд▓
.cpp рд╕реА++ рдлрд╝рд╛рдЗрд▓
.cxx рд╕реА++ рдлрд╝рд╛рдЗрд▓
.cxx рд╕реА++ рдлрд╝рд╛рдЗрд▓
.c++ рд╕реА++ рдлрд╝рд╛рдЗрд▓
.C++ C++ рдлрд╝рд╛рдЗрд▓
.d рдбреА рдлрд╝рд╛рдЗрд▓
.f рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓
.F рд╡рд┐рдВрдбреЛрдЬрд╝: рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓
POSIX: рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
.рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП
.FOR рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓
.fpp рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
.FPP рдлреЛрд░рдЯреНрд░рд╛рди рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
.m рдСрдмреНрдЬреЗрдХреНрдЯ C рдлрд╝рд╛рдЗрд▓
.mm рдСрдмреНрдЬреЗрдХреНрдЯ C++ рдлрд╝рд╛рдЗрд▓
.s рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓
.S рд╡рд┐рдВрдбреЛрдЬрд╝: рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓
ARM: рдХреЛрдбрд╕реЛрд░реНрд╕рд░реА рд╕реЛрд░реНрд╕рд░реА рд▓рд╛рдЗрдЯ
.sx рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
POSIX: рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
.spp рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
.SPP рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ + C рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░
рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧ (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $рдУрдмреАрдЬреЗрдкреАрд░рд┐рдлрд┐рдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ) рдФрд░ рдкреНрд░рддреНрдпрдп (рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) $рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░;
.obj (рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░, .o (POSIX рд╕рд┐рд╕реНрдЯрдо рдкрд░) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐
рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
env.StaticObject(рд▓рдХреНрд╖реНрдп = 'aaa', рд╕реНрд░реЛрдд = 'aaa.c')
env.StaticObject(рд▓рдХреНрд╖реНрдп = 'bbb.o', рд╕реНрд░реЛрдд = 'bbb.c++')
env.StaticObject(рд▓рдХреНрд╖реНрдп = 'ccc.obj', рд╕реНрд░реЛрдд = 'ccc.f')
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рддреНрдпрдп рдореИрдкрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
SourceFileScanner рдСрдмреНрдЬреЗрдХреНрдЯред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдЬрд╛рдирдХрд╛рд░реА.
рд╕рдмреНрд╕рдЯрдлрд╝рд╛рдЗрд▓(), env.рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓()
RSI рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдПрдХрд▓ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ $рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░ рдФрд░ рдкрд╛рда рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ $SUBST_DICT
рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдБ рд╕рдорддрд▓ рд╣реИрдВред рдпрд╣ рднреА рджреЗрдЦреЗрдВ рдкрд╛рда рдлрд╝рд╛рдЗрд▓.
рдпрджрд┐ рдПрдХ рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ .in рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИ, рддреЛ рдкреНрд░рддреНрдпрдп рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
рд╢реЗрд╖ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп $SUBSTFILEPREFIX рдФрд░ $SUBSTFILESUPFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ
рдпрджрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдХрд┐рд╕реА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рдирд╛рдо $SUBST_DICT рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдпрд╛ рддреЛ рдкрд╛рдпрдерди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╢рдмреНрджрдХреЛрд╢ рдпрд╛ (рдХреБрдВрдЬреА, рдореВрд▓реНрдп) рдЯрдкрд▓ рдХрд╛ рдЕрдиреБрдХреНрд░рдоред рдпрджрд┐ рдпрд╣ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рддреЛ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдПрдХ рдордирдорд╛рдиреЗ рдХреНрд░рдо рдореЗрдВ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдПрдХ рдХреБрдВрдЬреА рдХрд┐рд╕реА рдЕрдиреНрдп рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИ
рдпрд╛ рдпрджрд┐ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рджреНрд╡рд╛рд░рд╛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣
рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИред
рд╕реНрд░реЛрдд рдореЗрдВ рдХрд┐рд╕реА рдХреБрдВрдЬреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ
рдпрд╣ рдкрд╛рдпрдерди рдХреЙрд▓реЗрдмрд▓ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдорд╛рди рдХреЙрд▓реЗрдмрд▓ рд╣реИ, рддреЛ рдпрд╣
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВ subst-рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдкрд░рд┐рдгрд╛рдо
рдХреБрдВрдЬреА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = ['рдбрд┐рдлрд╝реЙрд▓реНрдЯ', 'рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд╛рдЗрд▓'])
env['рдЙрдкрд╕рд░реНрдЧ'] = '/ Usr / bin'
рд╕реНрдХреНрд░рд┐рдкреНрдЯ_рдбрд┐рдХреНрдЯ = {'@prefix@': '/ bin', @exec_prefix@: '$prefix'}
env.Substfile('script.in', SUBST_DICT = script_dict)
conf_dict = {'%VERSION%': '1.2.3', '%BASE%': 'MyProg'}
env.Substfile('config.h.in', conf_dict, SUBST_DICT = conf_dict)
# рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд - рдПрдХ рдХреБрдВрдЬреА рджреВрд╕рд░реА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИ
Bad_foo = {'$foo': '$foo', '$foobar': '$foobar'}
env.Substfile('foo.in', SUBST_DICT = bad_foo)
# PREDICTABLE - рд╕рдмрд╕реЗ рд▓рдВрдмреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ
рдЕрдЪреНрдЫрд╛_рдлреВ = [('$foobar', '$foobar'), ('$foo', '$foo')]
env.Substfile('foo.in', SUBST_DICT = good_foo)
# рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд - рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЦрд╝рд░рд╛рдм_рдмрд╛рд░ = {'@bar@': '@soap@', '@soap@': 'lye'}
env.Substfile('bar.in', SUBST_DICT = bad_bar)
# рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд - рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреНрд░рдо рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдЕрдЪреНрдЫрд╛_рдмрд╛рд░ = (('@bar@', '@soap@'), ('@soap@', 'lye'))
env.Substfile('bar.in', SUBST_DICT = good_bar)
# SUBST_DICT рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ)
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди = {}
subst = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = ['textfile'], SUBST_DICT = рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди)
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди['@foo@'] = 'foo'
рд╕рдмрд╕реНрдЯ['SUBST_DICT']['@bar@'] = 'рдмрд╛рд░'
subst.Substfile('pgm1.c', [рдорд╛рди('#рд╢рд╛рдорд┐рд▓ "@[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"'),
рдорд╛рди('#рд╢рд╛рдорд┐рд▓ "@[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"'),
"common.in",
"pgm1.in"
])
subst.Substfile('pgm2.c', [рдорд╛рди('#рд╢рд╛рдорд┐рд▓ "@[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"'),
рдорд╛рди('#рд╢рд╛рдорд┐рд▓ "@[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"'),
"common.in",
"pgm2.in"
])
рдЯрд╛рд░(), env.рдЯрд╛рд░()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░/рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд
рддрд░реАрдХреЗ, рдЯрд╛рд░ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдкреНрд░рддреНрдпреЗрдХ
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓ рдЙрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдСрди-рдбрд┐рд╕реНрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА
рдЪрд╛рд╣реЗ scons рдХреЛ рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВред
env.рдЯрд╛рд░('src.tar', 'src')
# stuff.tar рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ.
env.Tar('рд╕рд╛рдорд╛рди', ['subdir1', 'subdir2'])
# рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ stuff.tar рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "another" рдЬреЛрдбрд╝реЗрдВ.
env.Tar('рд╕рд╛рдорд╛рди', 'рдЕрдиреНрдп')
# gzip-рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП TARFLAGS рд╕реЗрдЯ рдХрд░реЗрдВред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(TARFLAGS = '-c -z')
env.Tar('foo.tar.gz', 'foo')
# рдкреНрд░рддреНрдпрдп рдХреЛ .tgz рдкрд░ рднреА рд╕реЗрдЯ рдХрд░реЗрдВ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(TARFLAGS = '-c -z',
TARSUFFIX = '.tgz')
env.рдЯрд╛рд░('foo')
рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд╛рдЗрд▓(), env.рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд╛рдЗрд▓()
RSI рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░ рдПрдХ рдПрдХрд▓ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЧрдарди
рдкрдВрдХреНрддрд┐рдпрд╛рдБ; рд╕реНрд░реЛрддреЛрдВ рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдБ рд╕рдорддрд▓ рдХрд░ рджреА рдЧрдИ рд╣реИрдВред $рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рддрд╛рд░ред
рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ, рддреЛ $SUBST_DICT рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╡реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ; рджреЗрдЦреЗрдВ рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдгред
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп $рдЯреЗрдХреНрд╕рдЯрд╛рдЗрд▓рдкреНрд░реАрдлрд┐рдХреНрд╕ рдФрд░ $рдЯреЗрдХреНрд╕реНрдЯрдлрд╛рдЗрд▓реНрд╕рдлрд╝рд┐рдХреНрд╕
рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рдХреНрд░рдорд╢рдГ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .txt) рд╣реИрдВ
рдпрджрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
# foo.txt рдмрдирд╛рддрд╛/рд▓рд┐рдЦрддрд╛ рд╣реИ
env.Textfile(рд▓рдХреНрд╖реНрдп = 'foo.txt', рд╕реНрд░реЛрдд = ['рдЧреЛрдПрдереЗ', 42, 'рд╢рд┐рд▓рд░'])
# bar.txt рдмрдирд╛рддрд╛/рд▓рд┐рдЦрддрд╛ рд╣реИ
env.Textfile(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░',
рд╕реНрд░реЛрдд = ['рд▓рд╛рд▓рд╛рд▓рд╛', 'рддрд╛рдВрдЯреЗрд░реЗрдЯреА'],
рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░='|*')
# рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорддрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ
env.Textfile(рд▓рдХреНрд╖реНрдп = 'рдмреНрд▓реЙрдм',
рд╕реНрд░реЛрдд = ['рд▓рд╛рд▓рд╛рд▓рд╛', ['рдЧреЛрдПрдереЗ', 42 'рд╢рд┐рд▓рд░'], 'рддрд╛рдВрдЯреЗрд░реЗрдЯреА'])
# рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ File() рдореЗрдВ рд▓рдкреЗрдЯрдХрд░ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
env.Textfile(target = 'concat', # рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
рд╕реНрд░реЛрдд = [рдлрд╝рд╛рдЗрд▓('concat1'), рдлрд╝рд╛рдЗрд▓('concat2')],
рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░ = '======================\n')
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
foo.txt
....рео<----
рдЧреЗрдЯреЗ
42
рд╢рд┐рд▓рд░
....8<---- (рдЕрдВрдд рдореЗрдВ рдХреЛрдИ рд▓рд╛рдЗрдирдлреАрдб рдирд╣реАрдВ)
рдмрд╛рд░.txt:
....рео<----
lalala|*tanteratei
....8<---- (рдЕрдВрдд рдореЗрдВ рдХреЛрдИ рд▓рд╛рдЗрдирдлреАрдб рдирд╣реАрдВ)
рдмреНрд▓реЙрдм.txt
....рео<----
Lalala
рдЧреЗрдЯреЗ
42
рд╢рд┐рд▓рд░
рдЯреЗрдВрдЯрд░реЗрдЯреА
....8<---- (рдЕрдВрдд рдореЗрдВ рдХреЛрдИ рд▓рд╛рдЗрдирдлреАрдб рдирд╣реАрдВ)
рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛(), env.рдЕрдиреБрд╡рд╛рдж()
рдпрд╣ рдЫрджреНрдо рдмрд┐рд▓реНрдбрд░ gettext рдЯреВрд▓рд╕реЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдмрд┐рд▓реНрдбрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕рдВрджреЗрд╢, POT рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ) рдФрд░ рдлрд┐рд░ PO рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдЕрдиреБрд╡рд╛рдж (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ)ред $POрдСрдЯреЛрдЗрдирд┐рдЯ рд╕реЗрдЯ рд╣реИ, рдЧреБрдо PO рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ (рдЕрд░реНрдерд╛рдд рдЕрдиреБрд╡рд╛рджрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛)ред
$рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓ рдФрд░ $POTDOMAIN рдЕрдиреНрдп рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ POTрдЕрдкрдбреЗрдЯ, рддрдерд╛ POрдЕрдкрдбреЗрдЯ рдпрд╣рд╛рдБ рднреА рдХрд╛рдо рдХрд░реЛ.
рдЙрджрд╛рд╣рд░рдг 1рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЗрдирд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛
SCons рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╕рдордп рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛
# SConscript 'po/' рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ["рдбрд┐рдлрд╝реЙрд▓реНрдЯ", "gettext"] )
env['POAUTOINIT'] = 1
env.Translate(['en','pl'], ['../a.cpp','../b.cpp'])
рдЙрджрд╛рд╣рд░рдг 2рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдСрдЯреЛрдЯреВрд▓реНрд╕ рд╕реЗ рдЬреНрдЮрд╛рдд рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╢реИрд▓реА рд╕реЗ рднреА рдЬреБрдбрд╝реЗ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ,
рдпрд╛рдиреА POTFILES.in рдФрд░ LINGUAS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
# рднрд╛рд╖рд╛рдПрдБ
en pl
#рд╕рдорд╛рдкреНрдд
# POTFILES.in
рдП.рд╕реАрдкреАрдкреА
рдмреА.рд╕реАрдкреАрдкреА
# рд╕рдорд╛рдкреНрдд
# рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ["рдбрд┐рдлрд╝реЙрд▓реНрдЯ", "gettext"] )
env['POAUTOINIT'] = 1
env['XGETTEXTPATH'] = ['../']
env.Translate(LINGUAS_FILE = 1, XGETTEXTFROM = 'POTFILES.in')
рдЕрдВрддрд┐рдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдпрдж рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЕрд▓рдЧ SCons рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг/рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, рдЬрд╣рд╛рдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдЕрдиреБрд╡рд╛рдж (рд╕реНрд░реЛрддреЛрдВ рд╕реЗ PO рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ) рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ
рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ PO рд╕реЗ MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ
MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ред рдЗрди рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ "рдЧреНрд▓реВрдЗрдВрдЧ рдлреИрдХреНрдЯрд░" рддрдм рд╣реЛрддрд╛ рд╣реИ
LINGUAS рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реАред рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ POT рдФрд░ PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЬрд╛ рд░рд╣реА рд╣реИрдВ
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕реНрд░реЛрдд рдХреЗ рднреАрддрд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдФрд░ рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ)ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, po/ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ LINGUAS рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреЛ рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ, рдФрд░
рд╡реЗ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг 3рдЖрдЗрдП рдиреАрдЪреЗ рджрд┐рдП рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд╡рд┐рдХрд╛рд╕ рд╡реГрдХреНрд╖ рддреИрдпрд╛рд░ рдХрд░реЗрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ /
+ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ
+ рдирд┐рд░реНрдорд╛рдг/
+ рд╕реНрд░реЛрдд/
+ рдкреЛ/
+ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ
+ SConscript.i18n
+ POTFILES.in
+ рднрд╛рд╖рд╛рдПрдБ
рдмрд┐рд▓реНрдб рд╡реИрд░рд┐рдПрдВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реИред рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦреЗрдВ
# рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ
env = рдкрд░реНрдпрд╛рд╡рд░рдг( рдЙрдкрдХрд░рдг = ["рдбрд┐рдлрд╝реЙрд▓реНрдЯ", "gettext"] )
VariantDir('рдмрд┐рд▓реНрдб', 'src', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ = 0)
env['POAUTOINIT'] = 1
SConscript('src/po/SConscript.i18n', рдирд┐рд░реНрдпрд╛рдд = 'env')
SConscript('build/po/SConscript', рдирд┐рд░реНрдпрд╛рдд = 'env')
src/po/SConscript.i18n рдХреЗ рд░реВрдк рдореЗрдВ
# src/po/SConscript.i18n
рдЖрдпрд╛рдд('env')
env.Translate(LINGUAS_FILE=1, XGETTEXTFROM='POTFILES.in', XGETTEXTPATH=['../'])
рдФрд░ src/po/SConscript
# src/po/SConscript
рдЖрдпрд╛рдд('env')
env.MOFiles(LINGUAS_FILE = 1)
рдЗрд╕ рддрд░рд╣ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ src/po/ рдФрд░ рдмрд╛рдЗрдирд░реА MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдЕрдВрддрд░реНрдЧрдд POT рдФрд░ PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ
build/po/ рдореЗрдВ рд╡реЗрд░рд┐рдПрдВрдЯ рдЯреНрд░реА рдХреЗ рдЕрдВрддрд░реНрдЧрддред рдЗрд╕ рддрд░рд╣ POT рдФрд░ PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ
рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрд░реЛрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ MO
рдлрд╝рд╛рдЗрд▓реЗрдВ)ред
рдиреЛрдЯ
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, PO рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рди рд╣реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рдЖрдк
рдореБрджреНрджрд╛ рд╕реНрдХреИрдиреНрд╕ '.' рдХрдорд╛рдВрдбред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рд╛рде рд╕реЗ рдЕрдкрдбреЗрдЯ (рдмрдирд╛рдпрд╛) рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрдХреИрдиреНрд╕
po-рдЕрдкрдбреЗрдЯ рдФрд░ рдлрд┐рд░ MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛рдХрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕ '.'.
рдкреНрд░рдХрд╛рд░рд▓рд╛рдЗрдмреНрд░реЗрд░реА(), env.рдЯрд╛рдЗрдкрд▓рд╛рдЗрдмреНрд░реЗрд░реА()
рдЗрдирдкреБрдЯ IDL рдлрд╝рд╛рдЗрд▓ (.idl) рд╕реЗ Windows рдЯрд╛рдЗрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА (.tlb) рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдЯрдм рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдирд╛рдо рджреЗрдЧрд╛
.idl рдлрд╝рд╛рдЗрд▓ рдХреЗ рдореВрд▓ рдирд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
env.TypeLibrary(рд╕реНрд░реЛрдд="foo.idl")
foo.tlb, foo.h, foo_i.c, foo_p.c рдФрд░ foo_data.c рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдЧрд╛ред
рдпреВрдЖрдИрд╕реА(), env.Uic()
рдПрдХ ui рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓, рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рддрдерд╛
рдЙрдкрд░реЛрдХреНрдд рдХреНрд░рдо рдореЗрдВ рд╕рдВрдЧрдд рдиреЛрдбреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдбрд░ рдХреЗрд╡рд▓ рдЙрдкрд▓рдмреНрдз рд╣реИ
'qt' рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдиреЛрдЯ: рдЖрдк .ui рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
la рдХрд╛рд░реНрдпрдХреНрд░рдо, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд┐рд▓реНрдбрд░реНрд╕ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдмрд┐рд▓реНрдбрд░ рдЖрдкрдХреЛ рдорд╛рдирдХ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ (рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдЙрдкрд╕рд░реНрдЧ
рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рдЖрдЧреЗ рд╣рдореЗрд╢рд╛ рдЙрдкрд╕рд░реНрдЧ рд▓рдЧрд╛рдПрдБ; рдпрджрд┐ рдЖрдк рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
``) рджреЗрдЦреЗрдВ $рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП variable рдкрд░ рдЬрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг:
env.Uic('foo.ui') # -> ['foo.h', 'uic_foo.cc', 'moc_foo.cc']
env.Uic(рд▓рдХреНрд╖реНрдп = рд╡рд┐рднрд╛рдЬрд┐рдд('рд╢рд╛рдорд┐рд▓/foo.h gen/uicfoo.cc gen/mocfoo.cc'),
рд╕реНрд░реЛрдд = 'foo.ui') # -> ['include/foo.h', 'gen/uicfoo.cc', 'gen/mocfoo.cc']
рдЬрд╝рд┐рдк(), env.рдЬрд╝рд┐рдк()
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░/рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд
рддрд░реАрдХреЗ, рдЬрд╝рд┐рдк рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдкреНрд░рддреНрдпреЗрдХ
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓ рдЙрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдСрди-рдбрд┐рд╕реНрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА
рдЪрд╛рд╣реЗ scons рдХреЛ рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВред
env.рдЬрд╝рд┐рдк('src.zip', 'src')
# stuff.zip рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ.
env.Zip('рд╕рд╛рдорд╛рди', ['subdir1', 'subdir2'])
# рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ stuff.tar рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "another" рдЬреЛрдбрд╝реЗрдВ.
env.Zip('рд╕рд╛рдорд╛рди', 'рдЕрдиреНрдп')
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд▓рдХреНрд╖реНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд╕реНрд░реЛрддреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╡рд┐рдзрд┐ (рджреЗрдЦреЗрдВ
рдиреАрдЪреЗ).
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреИрдиреНрд╕ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons C рд╕реНрд░реЛрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓реЗрдВ, C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ, Fortran рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ .F (рдХреЗрд╡рд▓ POSIX рд╕рд┐рд╕реНрдЯрдо), .рдПрдлрдкреАрдкреА, or рдПрдлрдкреАрдкреА
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ .S (рдХреЗрд╡рд▓ POSIX рд╕рд┐рд╕реНрдЯрдо), .рдПрд╕рдкреАрдкреА, or .рдПрд╕рдкреАрдкреА
рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред SCons рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдорд░реНрдерди рднреА рд╣реИ
D рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛, рдЖрдк рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреИрдирд░ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ред рдЗрдиреНрд╣реЗрдВ рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд╕реНрддреБ(), рд╕реНрдереИрддрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ(), рддрдерд╛ рд╕рд╛рдЭрд╛рдСрдмреНрдЬреЗрдХреНрдЯ() рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рдХрд░
рд╕реЛрд░реНрд╕рдлрд╝рд╛рдЗрд▓рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрд░реНрд╕рдлрд╝рд╛рдЗрд▓рд╕реНрдХреИрдирд░ рд╡рд╕реНрддреБред
рддрд░реАрдХреЗ рдФрд░ рдХрд╛рд░реНрдп рд╕реЗрд╡рд╛ рдореЗрд░реЗ Do рдЪреАрдЬрд╝реЗрдВ
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕реНрдХреИрдиреНрд╕ рдХрдИ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рдиред
рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдФрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рджреЛрдиреЛрдВ
рдореМрдЬреВрдж рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рди рд░рдЦрдирд╛ рдкрдбрд╝реЗ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ
рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрди рд╕реВрдЪреА рдореЗрдВ, рдпрджрд┐ рдЖрдк рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ
рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╕рдорд╛рд░реЛрд╣(рддрд░реНрдХ)
рдФрд░ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдХрд╣рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:
env.рдлрд╝рдВрдХреНрд╢рди(рддрд░реНрдХ)
рдпрджрд┐ рдЖрдк рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рд░реВрдк рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╕реНрдЯрдо рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХрд┐рд╕реА рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
SConscript рдлрд╝рд╛рдЗрд▓ рдХреЛ Python рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░:
SCons.Script рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ *
рд╕рд┐рд╡рд╛рдп рдЬрд╣рд╛рдВ рдЕрдиреНрдпрдерд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ
рдлрд╝рдВрдХреНрд╢рди рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐, рдЬрд╣рд╛рдБ
рдЙрдкрдпреБрдХреНрдд, рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдХрд┐рд╕реА рднреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(FOO = 'foo')
рдбрд┐рдлрд╝реЙрд▓реНрдЯ('$FOO')
env.рдбрд┐рдлрд╝реЙрд▓реНрдЯ('$FOO')
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХреЙрд▓ рдЧрд▓рддреА рдХрд░рдирд╛() рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝ рджреЗрдЧрд╛
рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд╛рдо $рдлреВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдЬрдмрдХрд┐ рджреВрд╕рд░реА рдХреЙрд▓
env.рдбрд┐рдлрд╝реЙрд▓реНрдЯ() рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдорд╛рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧреА рдФрд░ рдирд╛рдорд┐рдд рдПрдХ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝ рджреЗрдЧреА
foo рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкрд░ рдЕрдЧрд▓рд╛ рдЕрдиреБрднрд╛рдЧ.
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рд╕реНрдХреИрдиреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдХреНрд░рд┐рдпрд╛(рдХреНрд░рд┐рдпрд╛, [cmd/str/fun, [var, ...]] [option=value, ...]), env.Action(рдХреНрд░рд┐рдпрд╛,
[cmd/str/fun, [var, ...]] [рд╡рд┐рдХрд▓реНрдк=рдореВрд▓реНрдп, ...])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдХрд╛рд░реНрдп"рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ,
рддрд░реНрдХреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреВрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ env.рдХрд╛рд░реНрд░рд╡рд╛рдИ() рдЖрд╣реНрд╡рд╛рди рдХрд╛ рд╕реНрд╡рд░реВрдк рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛
рдХрд┐рд╕реА рднреА рддрд░реНрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд╛рд░реНрдп рддрд░реНрдХ, рдЙрд╕ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЪрд░ env рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
env.рдХрд╛рд░реНрд░рд╡рд╛рдИ() рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдп() рдлрд╝реЙрд░реНрдо рд╕рднреА рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рджреЗрд░реА рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ
рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред
AddMethod(рдСрдмреНрдЬреЗрдХреНрдЯ, рдлрд╝рдВрдХреНрд╢рди, [рдирд╛рдо]), env.AddMethod(рдлрд╝рдВрдХреНрд╢рди, [рдирд╛рдо])
рдЬрдм рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ() рдлрд╝реЙрд░реНрдо, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд╕рдорд╛рд░реЛрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╡рд╕реНрддреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо. рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ env.AddMethod() рдлреЙрд░реНрдо, рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рд╡рд┐рд╖реНрддреГрдд рд╕рдорд╛рд░реЛрд╣ рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП env рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ
рдирд╛рдорджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрджрд┐ рдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреЛрдИ рдирд╣реАрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛ рдирд╛рдо рд╕рдорд╛рд░реЛрд╣
рд╕реНрд╡рдпрдВ рдХреЛ рд╡рд┐рдзрд┐ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
# рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ
# рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
# рдЬрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдкрд╛рдпрдерди
# рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ 'рд╕реНрд╡' рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
def my_method(рд╕реНрд╡рдпрдВ, рдЖрд░реНрдЧ):
рдкреНрд░рд┐рдВрдЯ "my_method() рдорд┐рд▓рд╛", arg
# рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ AddMethod() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
# рдХреЛ Environmental рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
AddMethod(рдкрд░реНрдпрд╛рд╡рд░рдг, my_method)
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.my_method('arg')
# рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
# рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдирд╛рдо.
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.AddMethod(рдореЗрд░реА_рд╡рд┐рдзрд┐, 'рдЕрдиреНрдп_рд╡рд┐рдзрд┐_рдирд╛рдо')
env.other_method_name('рдЕрдиреНрдп рддрд░реНрдХ')
AddOption(рддрд░реНрдХ)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рдЪрд╛рдиреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИред рддрд░реНрдХ
рдорд╛рдирдХ рдкрд╛рдпрдерди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдорд╛рди рд╣реИрдВ рдСрдкреНрдЯрдкрд░реНрд╕.add_option() рд╡рд┐рдзрд┐ (рдПрдХ рдХреЗ рд╕рд╛рде
рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖рдорддрд╛рдПрдВ рдиреАрдЪреЗ рджреА рдЧрдИ рд╣реИрдВ); рдСрдкреНрдЯрдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рдЗрд╕рдХреЗ рд╡рд┐рдХрд▓реНрдк-рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИред
рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рддрд░реНрдХреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкреНрдЯрдкрд░реНрд╕.add_option() рддрд░реАрдХрд╛,
рдПрд╕рд╕реАрдУрдПрдирдПрд╕ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ nargs рдХреАрд╡рд░реНрдб рдорд╛рди рдХреЛ '?' рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдХреЗрд╡рд▓ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛ рд╡рд┐рдХрд▓реНрдк(рд╡рд┐рдХрд▓реНрдк)
рдПрдХ рд▓реЗ рд▓реЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ. рдЬрдм nargs = '?' рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ рд╕рдорд╛рд░реЛрд╣,
const рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡рд┐рдХрд▓реНрдк рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕реНрдкрд╖реНрдЯ рддрд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ default= рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ, рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди None рд╣реИ.
рдПрдХ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдирдпрд╛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ, рд╡рд┐рдХрд▓реНрдк рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╛рдПрдВ or env.рдЧреЗрдЯрдСрдкреНрд╢рди(). рдорд╛рди рдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реЗрдЯрдСрдкреНрд╢рди or env.рд╕реЗрдЯрдСрдкреНрд╢рди(), рдпрджрд┐ рдХрд┐рд╕реА SConscript рдореЗрдВ рд╢рд░реНрддреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╣рдореЗрд╢рд╛
рдХрд┐рд╕реА рднреА SConscript рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред
рдирдпреЗ рд╡рд┐рдХрд▓реНрдк(рдУрдВ) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ help= рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА -H or -h
рд╡рд┐рдХрд▓реНрдк (рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗрд╡рд▓ рддрднреА рдЬрдм SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ)ред
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ SCons рдХреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛
рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡рдпрдВ, рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд▓реНрдк рд╢реАрд░реНрд╖рдХ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ
рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ рдХреЙрд▓ рд╣реЛрддреЗ рд╣реИрдВ.
рдЙрджрд╛рд╣рд░рдг:
AddOption('--prefix',
dest='рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕',
nargs=1, рдкреНрд░рдХрд╛рд░='рд╕реНрдЯреНрд░рд┐рдВрдЧ',
рдХреНрд░рд┐рдпрд╛='рд╕реНрдЯреЛрд░',
рдореЗрдЯрд╛рд╡рд░='DIR',
рд╕рд╣рд╛рдпрддрд╛='рд╕реНрдерд╛рдкрдирд╛ рдЙрдкрд╕рд░реНрдЧ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(PREFIX = GetOption('prefix'))
AddPostAction(рд▓рдХреНрд╖реНрдп, рдХреНрд░рд┐рдпрд╛), env.AddPostAction(рд▓рдХреНрд╖реНрдп, рдХреНрд░рд┐рдпрд╛)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддрд╛ рд╣реИ рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд▓рдХреНрд╖реНрдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдирд┐рд░реНрдорд┐рддред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛(рдПрдБ) рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред
рдЬрдм рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдп рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдмрд╛рджред
AddPreAction(рд▓рдХреНрд╖реНрдп, рдХреНрд░рд┐рдпрд╛), env.AddPreAction(рд▓рдХреНрд╖реНрдп, рдХреНрд░рд┐рдпрд╛)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддрд╛ рд╣реИ рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд▓рдХреНрд╖реНрдп is
рдирд┐рд░реНрдорд┐рддред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛(рдПрдБ) рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред
рдЬрдм рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ.
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрдЧреА
"рдЕрдВрддрд┐рдо" рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп(рд▓рдХреНрд╖реНрдп)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддреЗ рд╕рдордп .c
рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓:
foo = рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo.c')
AddPreAction(foo, 'pre_action')
рдирд┐рд░реНрджрд┐рд╖реНрдЯ pre_action рдХреЛ scons рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрд╛рдЗрдирд░реА foo рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, foo.c рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓реЗрдВред
рдЙрдкрдирд╛рдо(рдЙрдкрдирд╛рдо, [рд▓рдХреНрд╖реНрдп, [рдХрд╛рд░реНрд░рд╡рд╛рдИ]]), env.рдЙрдкрдирд╛рдо(рдЙрдкрдирд╛рдо, [рд▓рдХреНрд╖реНрдп, [рдХрд╛рд░реНрд░рд╡рд╛рдИ]])
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдирдХрд▓реА рд▓рдХреНрд╖реНрдп рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдп (рдХрдорд╛рдВрдб) рдпрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЬрдм рднреА рдХреЛрдИ рдЙрдкрдирд╛рдо рд▓рдХреНрд╖реНрдп рдкреБрд░рд╛рдирд╛ рд╣реЛред рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЙрдкрдирд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд╣рд░ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛
рдЙрдкрдирд╛рдо рдирд╛рдо, рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдЙрдкрдирд╛рдоред рдЙрд░реНрдл рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЙрдкрдирд╛рдо рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрдкрдирд╛рдо рдореЗрдВ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рдирд╛, рдпрд╛ рдЗрд╕ рдЙрдкрдирд╛рдо рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛрдбрд╝рдирд╛ред
рдЙрджрд╛рд╣рд░рдг:
рдЙрдкрдирд╛рдо('рдЗрдВрд╕реНрдЯреЙрд▓')
рдЙрдкрдирд╛рдо('рдЗрдВрд╕реНрдЯреЙрд▓', '/ Usr / bin')
рдЙрдкрдирд╛рдо(['install', 'install-lib'], '/ Usr / рд╕реНрдерд╛рдиреАрдп / lib')
env.Alias('рдЗрдВрд╕реНрдЯреЙрд▓', ['/ Usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди''/ Usr / рд╕реНрдерд╛рдиреАрдп / lib'])
env.Alias('рдЗрдВрд╕реНрдЯреЙрд▓', ['/ usr / рд╕реНрдерд╛рдиреАрдп / рдЖрджрдореА'])
env.Alias('рдЕрдкрдбреЗрдЯ', ['рдлрд╝рд╛рдЗрд▓1', 'рдлрд╝рд╛рдЗрд▓2'], "рдЕрдкрдбреЗрдЯ_рдбреЗрдЯрд╛рдмреЗрд╕ $SOURCES")
AllowSubstExceptions([рдЕрдкрд╡рд╛рдж, ...])
рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдЕрдиреБрдордд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЛрдИ рднреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЬреЛ NameError рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
IndexError рдЕрдкрд╡рд╛рдж рдПрдХ '' (рдПрдХ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ scons рдХреЛ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЕрдкрд╡рд╛рдж рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред
If рд╕рдмреНрд╕рдЯрдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рджреЗрддреА рд╣реИ
рдЕрдиреБрдордд рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдкрд┐рдЫрд▓реА рд╕реВрдЪреА.
рдЙрджрд╛рд╣рд░рдг:
# рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╛рдо рдореМрдЬреВрдж рд╣реЛрдВ.
# (рдпрджрд┐ рдЖрдк рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)
# рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред)
рдЕрдиреБрдорддрд┐ рджреЗрдВрд╕рдмрд╕реНрдЯрдПрдХреНрд╕реЗрдкреНрд╢рди()
# рд╢реВрдиреНрдп-рд╡рд┐рднрд╛рдЬрди рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рднреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
# '${1 / 0}' рдХреЛ '' рдкрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░реЗрдВ.
AllowSubstExceptions(рдЗрдВрдбреЗрдХреНрд╕ рддреНрд░реБрдЯрд┐, рдирд╛рдо рддреНрд░реБрдЯрд┐, рд╢реВрдиреНрдп рд╡рд┐рднрд╛рдЬрди рддреНрд░реБрдЯрд┐)
рд╣рдореЗрд╢рд╛ рдмрд┐рд▓реНрдб (рд▓рдХреНрд╖реНрдп, ...), env.рд╣рдореЗрд╢рд╛ рдмрд┐рд▓реНрдб (рд▓рдХреНрд╖реНрдп, ...)
рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрдВрдХ рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдкреБрд░рд╛рдирд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рдореЗрд╢рд╛ рдкреБрдирдГ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдореЗрд╢рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЬреЛрдбрд╝ рдирд╣реАрдВ рд╣реИ
рд▓рдХреНрд╖реНрдп(рдУрдВ) рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рддрднреА рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬрдм рд╡реЗ рд╣реЛрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ, рдпрд╛ рдХрдорд╛рдВрдб рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ
рд▓рд╛рдЗрди--рд▓реЗрдХрд┐рди рд╡реЗ рдХрд░реЗрдВрдЧреЗ рд╣рдореЗрд╢рд╛ рдпрджрд┐ рдРрд╕рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рд╣реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ.
env.Append(рдХреБрдВрдЬреА=val, [...])
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣
рдмрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдФрд░ рдХреЗ рдорд╛рди
рдпрджрд┐ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рдорд╛рдиреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдиреНрдпрдерд╛, рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдФрд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдорд╛рди рджреЛрдиреЛрдВ рд╣реИрдВ
рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЬрдмрд░рди рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рдкреНрд░реАрдкреЗрдиреНрдб рд╡рд┐рдзрд┐ рднреА рджреЗрдЦреЗрдВ,
рдиреАрдЪреЗред)
рдЙрджрд╛рд╣рд░рдг:
env.Append(CCFLAGS = ' -g', FOO = ['foo.yyy'])
env.AppendENVPath(рдирд╛рдо, рдирдпрд╛рдкрде, [envname, sep, delete_existing])
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд╛рд╣реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджрд┐рдП рдЧрдП рдкрде рдореЗрдВ рдирдП рдкрде рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ENV)ред рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрде рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЬреЛрдбрд╝реЗрдЧрд╛ (рдЕрдВрддрд┐рдо рдкрде рдХреЛ рдЫреЛрдбрд╝рдХрд░)
рдореБрдарднреЗрдбрд╝реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмрд╛рдХреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛, рддрд╛рдХрд┐ рдкрде рдХреНрд░рдо рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ), рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕рднреА рдкрдереЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛ (рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдУрдПрд╕.рдкрде.рдиреЙрд░реНрдордкрде рдФрд░ рдУрдПрд╕.рдкрде.рдиреЙрд░реНрдордХреЗрд╕) рдХрд╛ рд╣реИред рдпрд╣ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ рдЬрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкреБрд░рд╛рдирд╛ рдкрде рдЪрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реВрдЪреА рд╣реИ,
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╕реВрдЪреА рд▓реМрдЯрд╛рдИ рдЬрд╛рдПрдЧреАред
If рдореМрдЬреВрджрд╛_рд╣рдЯрд╛рдирд╛ 0 рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдкрде рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡рд╣ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝реЗрдЧрд╛
рдЕрдВрдд рдореЗрдВ; рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рдЬрд╣рд╛рдВ рд╣реИ рд╡рд╣реАрдВ рд░рд╣реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рд┐рдВрдЯ 'рдкрд╣рд▓реЗ:', env['ENV']['рд╢рд╛рдорд┐рд▓']
include_path = '/foo/bar:/foo'
env.AppendENVPath('INCLUDE', include_path)
рдкреНрд░рд┐рдВрдЯ 'рдмрд╛рдж рдореЗрдВ:', env['ENV']['рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ']
рдкреИрджрд╛рд╡рд╛рд░:
рдкрд╣рд▓реЗ: /foo:/biz
рдмрд╛рдж рдореЗрдВ: /biz:/foo/bar:/foo
env.AppendUnique(рдХреБрдВрдЬреА=val, [...], delete_existing=0)
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣
рдмрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдПрдХ рд╕реВрдЪреА, рдлрд┐рд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдХреЛрдИ рднреА рдорд╛рди рдирд╣реАрдВ be
рд╕реВрдЪреА рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ delete_existing 1 рд╣реИ, рддреЛ рдореМрдЬреВрджрд╛ рдорд┐рд▓рд╛рди рдорд╛рди
рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрд░реНрдЧ рд╕реВрдЪреА рдореЗрдВ рдореМрдЬреВрджрд╛ рдорд╛рди рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
env.AppendUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])
env.рдмрд┐рдЯрдХреАрдкрд░()
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдмрд┐рдЯрдХреАрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рд▓реМрдЯрд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ рд╕реЛрд░реНрд╕ рдХреЛрдб
рд╕рдорд╛рд░реЛрд╣.
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдЙрджрд╛рд╣рд░рдг:
env.SourceCode('.', env.BitKeeper())
рдмрд┐рд▓реНрдбрдбрд╛рдпрд░(build_dir, src_dir, [рдбреБрдкреНрд▓рд┐рдХреЗрдЯ]), env.рдмрд┐рд▓реНрдбрдбрд╛рдпрд░(build_dir, src_dir, [рдбреБрдкреНрд▓рд┐рдХреЗрдЯ])
рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕рдорд╛рдирд╛рд░реНрдереА рд╢рдмреНрдж рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдФрд░ env.рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░()ред NS рдмрд┐рд▓реНрдб_рджрд┐рд░ рддрд░реНрдХ
рдмрди рдЬрд╛рддрд╛ рд╣реИ variant_dir рдХрд╛ рддрд░реНрдХ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ or env.рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░()ред
рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ, [рддрд░реНрдХ]), env.Builder(рдХрд╛рд░реНрд░рд╡рд╛рдИ, [рддрд░реНрдХ])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдХрд╛рд░реНрдп"рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ,
рддрд░реНрдХреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреВрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ env.рдмрд┐рд▓реНрдбрд░() рдЖрд╣реНрд╡рд╛рди рдХрд╛ рд╕реНрд╡рд░реВрдк рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛
рдХрд┐рд╕реА рднреА рддрд░реНрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд╛рд░реНрдп рддрд░реНрдХ, рдЙрд╕ рд╕рдордп рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ env рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
env.рдмрд┐рд▓реНрдбрд░() рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред рдирд┐рд░реНрдорд╛рддрд╛ рд╕рднреА рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рджреЗрд░реА рддрдм рддрдХ рд╣реЛрддреА рд╣реИ рдЬрдм рддрдХ
рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреИрд╢рдбрд╛рдпрд░(cache_dir), env.CacheDir(cache_dir)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ scons рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдХреИрд╢ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛ рдХреИрд╢реЗ_рджрд┐рд░рд╡реНрдпреБрддреНрдкрдиреНрди
рдХреИрд╢ рдореЗрдВ рдореМрдЬреВрдж рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдмрд┐рд▓реНрдб рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХреА рдЬрд╛рдПрдВрдЧреА рдХреИрд╢рдбрд┐рд░ рдкреБ рдХрд╛ рд░ рдирд╛ред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдХреИрд╢реЗ_рджрд┐рд░ None рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрд▓рд┐рдВрдЧ env.рдХреИрд╢рдбрд╛рдпрд░() рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЧрдП рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг. рдХреИрд╢рдбрд┐рд░ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╕рднреА рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдПрдХ рд╣реИ env.рдХреИрд╢рдбрд╛рдпрд░()
рдирд┐рд░реНрджрд┐рд╖реНрдЯред
рдЬрдм рдХреИрд╢рдбрд┐рд░() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ scons рдПрдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдкрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рдореЗрдВ рджреЗрдЦреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдИ рдЧрдИ рд╣реИ
рд╕рдорд╛рди рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕рдорд╛рди рдмрд┐рд▓реНрдб рдПрдХреНрд╢рди рд╕реЗ рдирд┐рд░реНрдорд┐рдд (рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
MD5 рдмрд┐рд▓реНрдб рд╕рд┐рдЧреНрдиреЗрдЪрд░)ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ scons рдХреИрд╢ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐
рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, scons рдЗрд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд░рдЦреЗрдЧрд╛
рдХреИрд╢ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ (рдЗрд╕рдХреЗ MD5 рдмрд┐рд▓реНрдб рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛), рддрд╛рдХрд┐ рдпрд╣
рдЕрдиреНрдп рдмрд┐рд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рди рд╕реЗ рд╕рдорд╛рди рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдЖрджрд╛рдиреЛрдВред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╢рдбрд┐рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдЖрд╣реНрд╡рд╛рди рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
--рдХреИрд╢-рдЕрдХреНрд╖рдо рд╡рд┐рдХрд▓реНрдк.
рдЕрдЧрд░ --рдХреИрд╢-рдмрд▓ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, scons рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд░рдЦреЗрдЧрд╛ рд╕рдм рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЗрдВ
рдХреИрд╢, рднрд▓реЗ рд╣реА рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдВ рдФрд░ рдЗрд╕ рдЖрд╣реНрд╡рд╛рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рди рд╣реЛрдВред рдпрд╣ рд╣реИ
рдкрд╣рд▓реА рдмрд╛рд░ рдХреИрд╢ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдХреИрд╢рдбрд┐рд░ рдХрд┐рд╕реА рдмрд┐рд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
la --рдХреИрд╢-рдЕрдХреНрд╖рдо рд╡рд┐рдХрд▓реНрдк.
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреИрд╢рдбрд┐рд░, scons рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, "рдХреИрд╢ рд╕реЗ `рдлрд╝рд╛рдЗрд▓' рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ," рдЬрдм рддрдХ рдХрд┐
--рдХреИрд╢-рд╢реЛ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЬрдм --рдХреИрд╢-рд╢реЛ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, scons рд╣реЛрдЧрд╛
рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рд╣реЛрдЧрд╛ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрдХреЗрдд рдХреЗ
рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╢ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереАред рдпрд╣ рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ
рд▓реЙрдЧ рдЬреЛ рд╕рдорддреБрд▓реНрдп рд╣реИрдВ, рднрд▓реЗ рд╣реА рджреА рдЧрдИ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реЛ рдпрд╛ рдирд╣реАрдВ
рд╕реНрдерд╛рди рдкрд░ рдпрд╛ рдХреИрд╢ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддред
RSI рдиреЛ рдХреИрд╢ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдХрд┐рд╕реА рдЙрдкрдХрд░рдг рдХреЗ рдЗрдирдкреБрдЯ рдФрд░/рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдпрд╛
рдЕрддреНрдпрдзрд┐рдХ рдмрдбрд╝рд╛.
рд╕реНрд╡рдЪреНрдЫ(рд▓рдХреНрд╖реНрдп, рдлрд╝рд╛рдЗрд▓реЗрдВ_рдпрд╛_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ), env.Clean(рд▓рдХреНрд╖реНрдп, рдлрд╝рд╛рдЗрд▓реЗрдВ_рдпрд╛_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ)
рдпрд╣ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рднреА
рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ -c рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдПрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рдХреНрд╖реНрдпред рд╕реНрд╡рдЪреНрдЫ рдХрд╛рдиреВрдиреА рд╣реИрдВ, рдФрд░ рдирдП рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪреНрдЫ рд╕реВрдЪреА рдореЗрдВ рд▓рдХреНрд╖реНрдп рдпрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВред
рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕реНрд╡рдЪреНрдЫ рд╡рд┐рдзрд┐, рдпрд╛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВред рд╕реНрд╡рдЪреНрдЫ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рд░рд┐рдЯрд░реНрди рдорд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБред рдЙрджрд╛рд╣рд░рдг:
рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдХреНрд▓реАрди рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓рд┐рдВрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рд╕реНрд╡рдЪреНрдЫ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП, рдФрд░ рдХрд┐рд╕реА рднреА
рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ -c рд╡рд┐рдХрд▓реНрдк.
рдЙрджрд╛рд╣рд░рдг:
рдХреНрд▓реАрди('foo', ['bar', 'baz'])
рдХреНрд▓реАрди('dist', env.Program('hello', 'hello.c'))
рд╕рд╛рдлрд╝ рдХрд░реЗрдВ(['foo', 'bar'], 'something_else_to_clean')
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирддреА рд╣реИред
рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрдерди рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдХреНрд▓реАрди(docdir, os.path.join(docdir, projectname))
env.рдХреНрд▓реЛрди([рдХреБрдВрдЬреА=val, ...])
рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдХреА рдПрдХ рдЕрд▓рдЧ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдХреАрд╡рд░реНрдб рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдерд╛ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рддрд░реНрдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреАрд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдорд╛рди.
рдЙрджрд╛рд╣рд░рдг:
env2 = env.рдХреНрд▓реЛрди()
env3 = env.рдХреНрд▓реЛрди(CCFLAGS = '-g')
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдкрдХрд░рдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рд╣реИ
рдирд┐рд░реНрдорд╛рддрд╛:
def MyTool(env): env['FOO'] = 'рдмрд╛рд░'
env4 = env.Clone(рдЯреВрд▓реНрд╕ = ['msvc', MyTool])
RSI рдкрд╛рд░реНрд╕_рдлрд╝реНрд▓реИрдЧ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИ:
# wxWidgets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдБ
wx_env = env.Clone(parse_flags = '!wx-config --cflags --cxxflags')
рдХрдорд╛рдВрдб(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, рдХреНрд░рд┐рдпрд╛, [рдХреБрдВрдЬреА=val, ...]), env.Command(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, рдХреНрд░рд┐рдпрд╛,
[рдХреБрдВрдЬреА=рд╡реИрд▓, ...])
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛ (рдпрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХрд┐рд╕реА рдПрдХрд▓ рд╡рд┐рд╢реЗрд╖-рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ
рдирд┐рд░реНрдорд╛рдгред
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрд░реЛрдд_рд╕реНрдХреИрдирд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред (рд╡реИрд╢реНрд╡рд┐рдХ DirScanner рдСрдмреНрдЬреЗрдХреНрдЯ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рднреА рд╕реНрд░реЛрдд рдРрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рдЕрдиреНрдп рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд┐рд╕реА рднреА рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдореМрдЬреВрджрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ
рдЪрд░ред
рдПрдХ рдХреНрд░рд┐рдпрд╛ рдПрдХ рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддреА рд╣реИред
рдСрдмреНрдЬреЗрдХреНрдЯ; рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рджреЗрдЦреЗрдВред рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐
рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП @ (рдПрдЯ-рд╕рд╛рдЗрди) рд╕реЗ рдкрд╣рд▓реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛, рдпрд╛ - (рд╣рд╛рдЗрдлрд╝рди) рджреНрд╡рд╛рд░рд╛ рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛
рдмрд╛рд╣рд░реА рдЖрджреЗрд╢ред
рдЙрджрд╛рд╣рд░рдг:
env.Command('foo.out', 'foo.in',
"$FOO_BUILD < $SOURCES > $TARGET")
env.Command('рдмрд╛рд░.рдЖрдЙрдЯ', 'рдмрд╛рд░.рдЗрди',
["рдЖрд░рдПрдо -рдПрдл $TARGET",
"$BAR_BUILD < $SOURCES > $TARGET"],
ENV = {'рдкрде' : '/ Usr / рд╕реНрдерд╛рдиреАрдп / bin /'})
def рдирд╛рдо рдмрджрд▓реЗрдВ(env, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд):
рдЖрдпрд╛рдд os
рдУрдПрд╕.рд░реАрдиреЗрдо('.tmp', str(рд▓рдХреНрд╖реНрдп[0]))
env.Command('baz.out', 'baz.in',
["$BAZ_BUILD < $SOURCES > .tmp",
рдирд╛рдо рдмрджрд▓реЗрдВ ])
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрджреЗрд╢ рдлрд╝рдВрдХреНрд╢рди рдЖрдорддреМрд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рди рд▓реЗрдЧрд╛ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рд▓рдХреНрд╖реНрдп рдФрд░/рдпрд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рднрд╛рдЧ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рдХреНрд╖реНрдп рдпрд╛
рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдбрд┐рд░ or env.рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛()
рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ.
рдЙрджрд╛рд╣рд░рдг:
env.Command('ddd.list', Dir('ddd'), 'ls -l $SOURCE > $TARGET')
env['DISTDIR'] = 'рдЧрдВрддрд╡реНрдп/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛'
env.Command(env.Dir('$DISTDIR')), рдХреЛрдИ рдирд╣реАрдВ, make_distdir)
(рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ SCons рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдмрдирд╛ рджреЗрдЧрд╛
(рдПрдХ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рд░рдЦреЗрдВ, рддрд╛рдХрд┐ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╣рд╛рде рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рдкрдбрд╝реЗред)
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░(env, [custom_tests, conf_dir, log_file, config_h]), env.Configure([custom_tests,
conf_dir, рд▓реЙрдЧ_рдлрд╝рд╛рдЗрд▓, config_h])
GNU autoconf рдХреЗ рд╕рдорд╛рди рдПрдХреАрдХреГрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ Configure рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред рджреЗрдЦреЗрдВ
рддрд░реНрдХреЛрдВ рдХреА рдкреВрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ред
env.рдХреЙрдкреА([рдХреБрдВрдЬреА=val, ...])
рдЕрдм рдЕрдкреНрд░рдЪрд▓рд┐рдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╢рдмреНрдж env.рдХреНрд▓реЛрди()ред
env.CVS(рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдореЙрдбреНрдпреВрд▓)
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реА.рд╡реА.рдПрд╕. рдХреЛрд╖рд▓реМрдЯрд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ
рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рд╕рднреА рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкрде рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рдирд╛рдо; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрде рдирд╛рдо, рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдирд╛рдиреА рдкрдбрд╝реЗ
рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо.
рдЙрджрд╛рд╣рд░рдг:
# foo/bar/src.c рд▓рд╛рдПрдЧрд╛
# /usr/local/CVSROOT/foo/bar/src.c рд╕реЗ.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT'))
# bar/src.c рд▓рд╛рдПрдЧрд╛
# /usr/local/CVSROOT/foo/bar/src.c рд╕реЗ.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT', 'foo'))
# src.c рд▓рд╛рдПрдЧрд╛
# /usr/local/CVSROOT/foo/bar/src.c рд╕реЗ.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT', 'foo/bar'))
рдирд┐рд░реНрдгрд╛рдпрдХ(рдлрд╝рдВрдХреНрд╢рди), env.Decider(рдлрд╝рдВрдХреНрд╢рди)
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрджреНрдпрддрди рдирд┐рд░реНрдгрдп
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд╕рдорд╛рд░реЛрд╣ред рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрдгрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк-рдирдпрд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдкреБрд░рд╛рдирд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реЗ рдирдпрд╛ рд╣реИред рдпрд╣ рд╣реИ
рдХреНрд▓рд╛рд╕рд┐рдХ рдореЗрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░, рдФрд░ рдореЗрдХ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк-рдирдпрд╛.
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк-рдореИрдЪ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдкреБрд░рд╛рдирд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ
рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкрд┐рдЫрд▓реА рдмрд╛рд░ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИ
target рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдореЗрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
(рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХреЗ)
рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд▓рдХреНрд╖реНрдп рдХреЛ рднреА рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрд╡ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рдЬреИрд╕рд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдмреИрдХрдЕрдк рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рд╕реЗ.
MD5
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдкреБрд░рд╛рдирд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ
рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ MD5 рдЪреЗрдХрд╕рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд▓рдХреНрд╖реНрдп рдмрдирд╛рддреЗ рд╕рдордп рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЪреЗрдХрд╕рдо рд╕реЗ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред
MD5 рдХреЗ рдкрд░реНрдпрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
MD5-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдкреБрд░рд╛рдирд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ
рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд▓рдХреНрд╖реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИ, рд╕рд┐рд╡рд╛рдп
рд╡рд╣ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рде рдЬреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ
рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрджреНрдпрддрди рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирд╣реАрдВ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд╣рдореЗрд╢рд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ MD5 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдорд╛рди,
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рди рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдЬрд┐рдирдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ
рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ SCons рдирд╣реАрдВ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдХреЛрдИ рдЧрдбрд╝рдмрдбрд╝реА рд╣реИ
рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╣реА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдмрд┐рд▓реНрдб рдЪрд▓рд╛рддрд╛ рд╣реИ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ, рд╕рднреА рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВред
рджреВрд╕рд░рд╛ред
рдЙрджрд╛рд╣рд░рдг:
# рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдорд┐рд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ.
рдирд┐рд░реНрдгрд╛рдпрдХ('рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк-рдореИрдЪ')
# рдирд┐рд░реНрдорд┐рдд рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП MD5 рд╕рд╛рдордЧреНрд░реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
# рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде.
env.Decider('рд╕рд╛рдордЧреНрд░реА')
рдЙрдкрд░реЛрдХреНрдд рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕рдорд╛рд░реЛрд╣ рддрд░реНрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ:
рдирд┐рд░реНрднрд░рддрд╛
рдиреЛрдб (рдлрд╝рд╛рдЗрд▓) рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓рдХреНрд╖реНрдп рдпрджрд┐ рдЗрд╕рдореЗрдВ "рдкрд░рд┐рд╡рд░реНрддрди" рд╣реЛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдЗрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд┐рдЫрд▓реЗ рд╕рдордп рд╕реЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд▓рдХреНрд╖реНрдп
рдиреЛрдб (рдлрд╝рд╛рдЗрд▓) рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдЧрд░ рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред"
рдкрд┐рдЫрд▓рд╛_рдирд╣реАрдВ
рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рд▓рдХреНрд╖реНрдп рдерд╛
рдирд┐рд░реНрдорд┐рддред рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдЬреИрд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░рд╛рдорд░реНрд╢ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рдЖрдХрд╛рд░, рдпрд╛ рд╕рд╛рдордЧреНрд░реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░.
RSI рд╕рдорд╛рд░реЛрд╣ рдпрджрд┐ рд╕рддреНрдп (рдЧреИрд░-рд╢реВрдиреНрдп) рдорд╛рди рд▓реМрдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ"
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╕реЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдЪрд╛рд╣рд┐рдП be
рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг), рдФрд░ рдЕрдиреНрдпрдерд╛ рдЧрд▓рдд (рд╢реВрдиреНрдп) (рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ be
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рд░реНрдгрдп рдХрд┐рд╕реА рднреА рдЙрдкрдпреБрдХреНрдд рдорд╛рдирджрдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдЫ рдпрд╛ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
def my_decider(рдирд┐рд░реНрднрд░рддрд╛, рд▓рдХреНрд╖реНрдп, prev_ni):
os.path.exists(str(target)) рд╡рд╛рдкрд╕ рди рдХрд░реЗрдВ
env.рдирд┐рд░реНрдгрд╛рдпрдХ(рдореЗрд░рд╛_рдирд┐рд░реНрдгрд╛рдпрдХ)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ(рд▓рдХреНрд╖реНрдп), env.Default(рд▓рдХреНрд╖реНрдп)
рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ scons рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рдХреНрд╖реНрдп рджрд┐рдП рдЧрдП рд╣реИрдВред рдЪреВрдХ рдХрд╛рдиреВрдиреА рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА.
рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЪреВрдХ рд╡рд┐рдзрд┐, рдпрд╛
рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ. рдЪреВрдХ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдг рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдиреЛрдб рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд┐рд▓реНрдбрд░ рддрд░реАрдХреЛрдВ.
рдЙрджрд╛рд╣рд░рдг:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ('foo', 'bar', 'baz')
env.рдбрд┐рдлрд╝реЙрд▓реНрдЯ(['a', 'b', 'c'])
рд╣реИрд▓реЛ = env.Program('рд╣реИрд▓реЛ', 'рд╣реИрд▓реЛ.c')
env.рдбрд┐рдлрд╝реЙрд▓реНрдЯ(рд╣реИрд▓реЛ)
рдПрдХ рддрд░реНрдХ рдЪреВрдХ рдСрдлрд╝ None рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреВрдХ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ (рдЕрдм рд░рд┐рдХреНрдд) рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реВрдЪреА рдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЪреВрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ рдЙрдкрд▓рдмреНрдз рд╣реИ
DEFAULT_TARGETS рд╕реВрдЪреА; рдиреАрдЪреЗ рджреЗрдЦреЗрдВ.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг([рдЖрд░реНрдЧреНрд╕])
рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд╛рдг
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ SCons рджреНрд╡рд╛рд░рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди, рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реАред
рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ(рд▓рдХреНрд╖реНрдп, рдирд┐рд░реНрднрд░рддрд╛), env.Depends(рд▓рдХреНрд╖реНрдп, рдирд┐рд░реНрднрд░рддрд╛)
рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ; рд▓рдХреНрд╖реНрдп рдЬрдм рднреА рдкреБрдирдГ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдирд┐рд░реНрднрд░рддрд╛
рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рджреЛрдиреЛрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЖрдорддреМрд░ рдкрд░
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрде рдирд╛рдо) рдпрд╛ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рдиреЛрдб рдХреА рд╕реВрдЪреА
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЬреИрд╕реЗ рдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП)ред рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЬрд╣рд╛рдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
env.Depends('foo', 'рдЕрдиреНрдп-рдЗрдирдкреБрдЯ-рдлрд╝рд╛рдЗрд▓-for-foo')
mylib = env.рд▓рд╛рдЗрдмреНрд░реЗрд░реА('mylib.c')
рдЗрдВрд╕реНрдЯреЙрд▓_рд▓рд┐рдм = env.Install('lib', mylib)
рдмрд╛рд░ = env.Program('bar.c')
# рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░реЗрдВ
"рдмрд╛рд░" рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ # рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдБред
# (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИред рдПрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд▓рд╛рдЗрдмреНрд░реЗрд░реА
# рдирд┐рд░реНрднрд░рддрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ $LIBS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рдПрдЧреА
# рдФрд░ $LIBPATH рдЪрд░, env.Depends() рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдПред)
env.Depends(рдмрд╛рд░, рд╕реНрдерд╛рдкрд┐рдд_lib)
env.рд╢рдмреНрджрдХреЛрд╢([vars])
рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рдХреЛрдИ рдЪрд░ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рдмреНрджрдХреЛрд╖ рдореЗрдВ рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
рдбрд┐рдХреНрдЯ = env.рд╢рдмреНрджрдХреЛрд╢()
cc_dict = env.Dictionary('CC', 'CCFLAGS', 'CCCOM')
Dir(рдирд╛рдо, [рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛]), env.Dir(рдирд╛рдо, [рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛])
рдпрд╣ рдПрдХ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдирд╛рдо.
рдирд╛рдо рдпрд╣ рд╕рд╛рдкреЗрдХреНрд╖ рдпрд╛ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬреЛ
рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдирд╣реАрдВ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
If рдирд╛рдо рдПрдХ рд╕реВрдЪреА рд╣реИ, SCons Dir рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реИрдВ
рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╛рдо.
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ
рдПрдХ рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдиред рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдиреЛрдбреНрд╕ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ
рдХрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА; рдиреАрдЪреЗ "рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕" рджреЗрдЦреЗрдВред
env.рдбрдВрдк([рдХреБрдВрдЬреА])
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдХреБрдВрдЬреА, рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдХреЛрдИ рдирд╣реАрдВ,
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд░реБрдЪрд┐ рдХреЗ рдЪрд░ рдХрд╛ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛред
рдпрд╣ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env=рдкрд░реНрдпрд╛рд╡рд░рдг()
рдкреНрд░рд┐рдВрдЯ env.Dump('CCCOM')
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛:
'$CC -c -o $TARGET $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS $SOURCES'
рдЬрдмрдХрд┐ рдпрд╣ SConstruct:
env=рдкрд░реНрдпрд╛рд╡рд░рдг()
рдкреНрд░рд┐рдВрдЯ env.Dump()
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛:
{ 'рдПрдЖрд░': 'рдПрдЖрд░',
'ARCOM': '$AR $ARFLAGS $TARGET $Sources\n$RANLIB $RANLIBFLAGS $TARGET',
'рдПрдЖрд░рдлреНрд▓реИрдЧреНрд╕': ['рдЖрд░'],
'рдХреЗ рд░реВрдк рдореЗрдВ',
'ASCOM': '$AS $ASFLAGS -o $TARGET $SOURCES',
'рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕': [],
...
EnsurePythonVersion(рдкреНрд░рдореБрдЦ, рд▓рдШреБ), env.EnsurePythonVersion(рдкреНрд░рдореБрдЦ, рд▓рдШреБ)
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдореБрдЦ.рдирд╛рдмрд╛рд▓рд┐рдЧ. рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛
рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдЧреИрд░-рд╢реВрдиреНрдп рдирд┐рдХрд╛рд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде SCons рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ
рдЕрднреА рдХрд╛рдлреА рджреЗрд░ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ.
рдЙрджрд╛рд╣рд░рдг:
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВPythonVersion(2,2)
EnsureSConsVersion(рдкреНрд░рдореБрдЦ, рд▓рдШреБ, [рд╕рдВрд╢реЛрдзрди]), env.EnsureSConsVersion(рдкреНрд░рдореБрдЦ, рд▓рдШреБ,
[рджреЛрд╣рд░рд╛рд╡])
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ SCons рд╕рдВрд╕реНрдХрд░рдг рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдореБрдЦ рдЕрдкреНрд░рдзрд╛рдирдпрд╛, рдкреНрд░рдореБрдЦ.рд▓рдШреБ.рд╕рдВрд╢реЛрдзрдиред рдЕрдЧрд░
рд╕рдВрд╢реЛрдзрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ SCons рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдЧрд╛
рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ SCons рд╕рдВрд╕реНрдХрд░рдг рдкрд░реНрдпрд╛рдкреНрдд рджреЗрд░ рд╕реЗ рдирд╣реАрдВ рд╣реИ рддреЛ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдирд┐рдХрд╛рд╕ рдХреЛрдб рдХреЗ рд╕рд╛рдеред
рдЙрджрд╛рд╣рд░рдг:
EnsureSConsрд╕рдВрд╕реНрдХрд░рдг(0,14)
EnsureSConsрд╕рдВрд╕реНрдХрд░рдг(0,96,90)
рдкрд░реНрдпрд╛рд╡рд░рдг([рдХреБрдВрдЬреА=рдореВрд▓реНрдп, ...]), env.рдкрд░реНрдпрд╛рд╡рд░рдг([рдХреБрдВрдЬреА=рдореВрд▓реНрдп, ...])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рд▓реМрдЯрд╛рдПрдБ рдХреБрдВрдЬреА=рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗред
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рдХрд╛рд░реНрд░рд╡рд╛рдИ, [рд╕реНрдЯреНрд░рдлрд╝рдВрдХреНрд╢рди, varlist]), env.Execute(рдХрд╛рд░реНрд░рд╡рд╛рдИ, [рд╕реНрдЯреНрд░рдлрд╝рдВрдХреНрд╢рди, varlist])
рдПрдХ Action рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ
рддрд░реНрдХреЛрдВ рдФрд░ рддрд░реНрдХреЛрдВ рдХреА рдкреВрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЕрдиреБрднрд╛рдЧ "рдХрд╛рд░реНрд░рд╡рд╛рдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рджреЗрдЦреЗрдВ
рд╡реНрдпрд╡рд╣рд╛рд░), рдпрд╛ рдпрд╣ рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдХрдорд╛рдВрдб рдХреА рд╕реВрдЪреА, рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХрдорд╛рдВрдб рдХрд╛ exit value рдпрд╛ Python рдлрд╝рдВрдХреНрд╢рди рдХрд╛ return value рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ scons рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд,
рд╢реВрдиреНрдпреЗрддрд░ рдорд╛рди рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред scons рд╣реЛрдЧрд╛ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ
рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛ рддреЛ рдмрд┐рд▓реНрдб рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рд▓реНрдб рдмрдВрдж рд╣реЛ рдЬрд╛рдП
рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧреИрд░-рд╢реВрдиреНрдп рд░рд┐рдЯрд░реНрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдореВрд▓реНрдп:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ('file.out', 'file.in' рдХреЙрдкреА рдХрд░реЗрдВ))
рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ("mkdir sub/dir/ectory"):
# mkdir рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛, рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВ.
рдирд┐рдХрд╛рд╕(1)
рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ([рдореВрд▓реНрдп]), env.рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ([рдореВрд▓реНрдп])
рдпрд╣ рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдореВрд▓реНрдп. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдХрд╛рд╕ рдорд╛рди
рдпрджрд┐ рдХреЛрдИ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ 0 (рд╢реВрдиреНрдп) рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рд░реНрдпрд╛рдд(vars), env.рдирд┐рд░реНрдпрд╛рдд(vars)
рдпрд╣ scons рдХреЛ рд╡рд░реНрддрдорд╛рди SConscript рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рднреА рдЪрд░реЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ
рдЕрдиреНрдп SConscript рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдЪрд░ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
рдмрд╛рдж рдореЗрдВ рдХреА рдЧрдИ рдХреЙрд▓ рдирд┐рд░реНрдпрд╛рдд рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдпрд╛рддреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдЧрд╛.
рдПрдХрд╛рдзрд┐рдХ рдЪрд░ рдирд╛рдо рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдирд┐рд░реНрдпрд╛рдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВред
рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдЪрд░ рдХреЛ рдХрд┐рд╕реА рднрд┐рдиреНрди рдирд╛рдо рд╕реЗ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдФрд░
рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ.
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
# рд╕рднреА SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП import() рдкрд░ env рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБред
рдирд┐рд░реНрдпрд╛рдд("env")
рдкреИрдХреЗрдЬ = 'my_name'
# рд╕рднреА SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП env рдФрд░ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБ:.
рдирд┐рд░реНрдпрд╛рдд("env", "рдкреИрдХреЗрдЬ")
# рд╕рднреА SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП env рдФрд░ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБ:
рдирд┐рд░реНрдпрд╛рдд(["env", "рдкреИрдХреЗрдЬ"])
# debug рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ env рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБ:
рдирд┐рд░реНрдпрд╛рдд(рдбреАрдмрдЧ = env)
# debug рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ env рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБ:
рдирд┐рд░реНрдпрд╛рдд({"debug":env})
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдирд┐рд░реНрдпрд╛рдд рддрд░реНрдХ рдЬреЛ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ
рдХрд┐рд╕реА рдЪрд░ рдпрд╛ рдЪрд░реЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдПрдХрд▓ SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рджреЗрдЦреЗрдВ
рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди, рдиреАрдЪреЗ.
рдлрд╝рд╛рдЗрд▓(рдирд╛рдо, [рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛]), env.File(рдирд╛рдо, [рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛])
рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдирд╛рдо. рдирд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рд╛рдкреЗрдХреНрд╖ рдпрд╛ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рд╣реЛред рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ.
If рдирд╛рдо рдПрдХ рд╕реВрдЪреА рд╣реИ, SCons рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реИрдВ
рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╛рдо.
рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдмрд┐рд▓реНрдбрд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ
рд╡рд┐рдзрд┐ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдиред рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИрдВ
рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕" рджреЗрдЦреЗрдВред
FindFile(рдлрд╝рд╛рдЗрд▓, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ), env.FindFile(рдлрд╝рд╛рдЗрд▓, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ)
рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ рдкрдЯреНрдЯрд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдореЗрдВ dirs. dirs рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИ
рдпрд╛ рдПрдХрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдоред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрди рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рдЦреЛрдЬрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рдЙрджрд╛рд╣рд░рдг:
foo = env.FindFile('foo', ['dir1', 'dir2'])
FindInstalledFiles(), env.FindInstalledFiles()
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ or рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдмрд┐рд▓реНрдбрд░реЛрдВред
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдкреИрдХреЗрдЬ.
рдЙрджрд╛рд╣рд░рдг:
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛( '/ bin', [ 'рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп_рдП', 'рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп_рдмреА' ] )
# рдлрд╝рд╛рдЗрд▓ рдиреЛрдб рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧрд╛
# [ '/bin/executable_a', '/bin/executable_b' ]
рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдвреВрдВрдвреЗрдВ()
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛( '/ рджрд╛рдпрд┐рддреНрд╡', [ 'рдХреБрдЫ_рд▓рд╛рдЗрдмреНрд░реЗрд░реА' ] )
# рдлрд╝рд╛рдЗрд▓ рдиреЛрдб рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧрд╛
# [ '/bin/executable_a', '/bin/executable_b', '/lib/some_library' ]
рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдвреВрдВрдвреЗрдВ()
FindPathDirs(рдЪрд░)
рдПрдХ рдлрд╝рдВрдХреНрд╢рди (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ
рдкрде_рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ред рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдорд╛рди рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдорд╛рдиреЗрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрдереЛрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ $CPPPATH, $рд▓рд┐рдмрдкрд╛рде, рдЖрджрд┐).
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдлрд╛рдЗрдВрдбрдкрд╛рдердбрд╛рдпрд░реНрд╕ рдЖрдо рддреМрд░ рдкрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ
рдкрде_рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ: 1) рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖реЛрдВ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдкрд╛рдИ рдЧрдИрдВ (рдЬрдм рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдпрд╛ рдХреЛрдб рдореЗрдВ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдЬрдм рдХреЛрд╖ рдпрд╛ -Y рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред 2) рд╕реНрдХреЛрди рдкрд╣рдЪрд╛рди рдХрд░реЗрдЧрд╛
рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЙрд╕реА рд╕реВрдЪреА рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВ,
рдПрдХ рд╣реА рд╕реВрдЪреА рдореЗрдВ рд░рдЦреЗрдВ, рдФрд░ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреБрдирдГ рд╕реНрдХреИрди рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред
рдЙрджрд╛рд╣рд░рдг:
def my_scan(рдиреЛрдб, env, рдкрде, рдЖрд░реНрдЧ):
# рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИ...
include_files рд▓реМрдЯрд╛рдПрдВ
рд╕реНрдХреИрдирд░ = рд╕реНрдХреИрдирд░(рдирд╛рдо = 'myscanner',
рдлрд╝рдВрдХреНрд╢рди = my_scan,
рдкрде_рдлрд╝рдВрдХреНрд╢рди = FindPathDirs('MYPATH'))
FindSourceFiles(рдиреЛрдб='"."'), env.FindSourceFiles(рдиреЛрдб='"."')
рдЙрди рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдРрд╕рд╛ рдХрд░рдХреЗ рдХрд░рддрд╛ рд╣реИ
рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╡реГрдХреНрд╖ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдиреЛрдб рдХреМрди рд╕рд╛ рдЪреВрдХ
'"."'-рдиреЛрдб рдкрд░ред рдпрд╣ рддрдм рд╕рднреА рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ рдиреЛрдбрдпреЗ рд╕рднреА рдмрдЪреНрдЪреЗ рд╣реИрдВ
рдЬрд┐рдирдХреЗ рдХреЛрдИ рдФрд░ рдмрдЪреНрдЪреЗ рдирд╣реАрдВ рд╣реИрдВред
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдзрд┐ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░реЛрдЧреНрд░рд╛рдо( 'src/main_a.c' )
рдкреНрд░реЛрдЧреНрд░рд╛рдо( 'src/main_b.c' )
рдкреНрд░реЛрдЧреНрд░рд╛рдо( 'main_c.c' )
# рд░рд┐рдЯрд░реНрди ['main_c.c', 'src/main_a.c', 'SConstruct', 'src/main_b.c']
рдлрд╛рдЗрдВрдбрд╕реЛрд░реНрд╕рдлрд╛рдЗрд▓реНрд╕()
# ['src/main_b.c', 'src/main_a.c'] рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдлрд╛рдЗрдВрдбрд╕реЛрд░реНрд╕рдлрд╛рдЗрд▓реНрд╕( 'src' )
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рд▓реНрдб рд╕рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ (рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ SConstruct) рднреА рд╣реЛрдВрдЧреА
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛.
рд╕рдорддрд▓(рдЕрдиреБрдХреНрд░рдо), env.Flatten(рдЕрдиреБрдХреНрд░рдо)
рдПрдХ рдЕрдиреБрдХреНрд░рдо (рдпрд╛рдиреА, рдПрдХ рдкрд╛рдпрдерди рд╕реВрдЪреА рдпрд╛ рдЯрдкрд▓) рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдЕрдиреБрдХреНрд░рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдФрд░ рдХрд┐рд╕реА рднреА рдореЗрдВ рд╕рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕рдорддрд▓ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЕрдиреБрдХреНрд░рдоред рдпрд╣ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;
рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░реНрд╕ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорддрд▓ рдХрд░ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд╛рдпрдерди
рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╣реЗрд░-рдлреЗрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред
рдЙрджрд╛рд╣рд░рдг:
foo = рдСрдмреНрдЬреЗрдХреНрдЯ('foo.c')
рдмрд╛рд░ = рдСрдмреНрдЬреЗрдХреНрдЯ('bar.c')
# рдХреНрдпреЛрдВрдХрд┐ `foo' рдФрд░ `bar' Object() рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪрд┐рдпрд╛рдБ рд╣реИрдВ,
# `рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕' рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреА:
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ = ['f1.o', foo, 'f2.o', рдмрд╛рд░, 'f3.o']
# рдРрд╕реА рд╕реВрдЪреА рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рдХреЛ рднреЗрдЬрдирд╛ рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐
# рдмрд┐рд▓реНрдбрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реВрдЪреА рдХреЛ рд╕рдорддрд▓ рдХрд░ рджреЗрдЧрд╛:
рдХрд╛рд░реНрдпрдХреНрд░рдо(рд╕реНрд░реЛрдд = рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕)
# рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рд╕реВрдЪреА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ
# Flatten() рдХреЛ рд╕реНрд╡рдпрдВ рдХреЙрд▓ рдХрд░реЗрдВ, рдпрд╛ рдЕрдиреНрдпрдерд╛ рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ:
рдлрд╝реНрд▓реИрдЯрди(рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП:
рдкреНрд░рд┐рдВрдЯ str(рдСрдмреНрдЬреЗрдХреНрдЯ)
рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ()
рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдлрд▓ рд╣реБрдИ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдпред рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ BuildError рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреА рд╣реИрдВ:
.node рд╡рд╣ рдиреЛрдб рдЬреЛ рдЙрд╕ рд╕рдордп рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬрдм рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдлрд▓рддрд╛ рдШрдЯрд┐рдд рд╣реБрдИред
.status рдЕрд╕рдлрд▓ рдХрдорд╛рдВрдб рдпрд╛ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЛрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп.
.errstr SCons рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред (рдпрд╣ рдЕрдХреНрд╕рд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ
"рддреНрд░реБрдЯрд┐ 2" рдЬреИрд╕рд╛ рд╕рдВрджреЗрд╢ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдИ
2).
.filename рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
.node рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд╛рдорд┐рдд рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рд▓рдХреНрд╖реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХреА, рдлрд┐рд░
.node рд╡рд┐рд╢реЗрд╖рддрд╛ sub/dir/target рд╣реЛрдЧреА рд▓реЗрдХрд┐рди .filename рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА
рдЙрдк/рдирд┐рд░реНрджреЗрд╢рдХ.
.executor рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд▓рдХреНрд╖реНрдп рдиреЛрдб рдХреЗ рд▓рд┐рдП SCons Executor рдСрдмреНрдЬреЗрдХреНрдЯред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрд╕рдлрд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
.action рд╡рд╛рд╕реНрддрд╡рд┐рдХ SCons рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдХреНрд╢рди рд╣реЛрдЧрд╛
рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реВрдЪреА рдореЗрдВ рд╕реЗред
.command рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдорд╛рдВрдб рдЬреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реБрдИ рдФрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдИ
$рдЯрд╛рд░рдЧреЗрдЯ, $рд╕реНрд░реЛрдд, рдФрд░ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рдЪрд░ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рднреА
рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдлрд▓рддрд╛ рд╣реБрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рд╣рдореЗрд╢рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛
SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдЦрд╛рд▓реА рд╕реВрдЪреАред рдЗрд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЗрдЪреНрдЫрд┐рдд рдЙрдкрдпреЛрдЧ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рдЬреЛ SCons рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдирдХ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рдЕрдЬрдЧрд░ atexit.рд░рдЬрд┐рд╕реНрдЯрд░() рдлрд╝рдВрдХреНрд╢рди. рдЙрджрд╛рд╣рд░рдг:
рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдбрд┐рдлрд╝ рдкреНрд░рд┐рдВрдЯ_рдмрд┐рд▓реНрдб_рд╡рд┐рдлрд▓рддрд╛рдПрдБ():
SCons.Script рд╕реЗ GetBuildFailures рдЖрдпрд╛рдд рдХрд░реЗрдВ
GetBuildFailures() рдореЗрдВ bf рдХреЗ рд▓рд┐рдП:
рдкреНрд░рд┐рдВрдЯ "%s рд╡рд┐рдлрд▓: %s" % (bf.node, bf.errstr)
atexit.register(рдкреНрд░рд┐рдВрдЯ_рдмрд┐рд▓реНрдб_рд╡рд┐рдлрд▓рддрд╛рдПрдВ)
GetBuildPath(рдлрд╝рд╛рдЗрд▓, [...]), env.GetBuildPath(рдлрд╝рд╛рдЗрд▓, [...])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП scons рдкрде рдирд╛рдо (рдпрд╛ рдирд╛рдо) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдкрдЯреНрдЯрд┐рдХрд╛ (рдпрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ).
рд╡рд┐рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрдЯреНрдЯрд┐рдХрд╛ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрде рдирд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдХреЛрдиреНрд╕ рдиреЛрдбреНрд╕ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
GetLaunchDir(), env.GetLaunchDir()
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкреВрд░реНрдг рдкрде рдирд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ scons рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдерд╛
рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ -u, -U or -D рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓реЗрдВ рдЬрд┐рд╕рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИред
GetOption(рдирд╛рдо), env.GetOption(рдирд╛рдо)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди scons рдХрдорд╛рдВрдб рдкрд░ рд╕реЗрдЯ SCons рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдорд╛рди рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд▓рд╛рдЗрди (рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд░реЗрдВ рд╕реЗрдЯрдСрдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди) рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
рдХреИрд╢_рдбреАрдмрдЧ
рдЬреЛ --cache-debug рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдХреИрд╢_рдЕрдХреНрд╖рдо
рдЬреЛ --cache-disable рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдХреИрд╢_рдлреЛрд░реНрд╕
рдЬреЛ --cache-force рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдХреИрд╢_рд╢реЛ
рдЬреЛ --cache-show рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рд╕реНрд╡рдЪреНрдЫ
рдЬреЛ -c, --clean рдФрд░ --remove рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рд╡рд┐рдиреНрдпрд╛рд╕
рдЬреЛ --config рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
рдЬреЛ -C рдФрд░ --directory рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдбрд┐рд╕реНрдХрдЪреЗрдХ
рдЬреЛ --diskcheck рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рдирдХрд╝рд▓
рдЬреЛ --duplicate рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдкрдЯреНрдЯрд┐рдХрд╛
рдЬреЛ -f, --file, --makefile рдФрд░ --sconstruct рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдорджрдж
рдЬреЛ -h рдФрд░ --help рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдирджреЗрдЦрд╛_рддреНрд░реБрдЯрд┐рдпрд╛рдБ
рдЬреЛ --ignore-errors рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреИрд╢
рдЬреЛ --implicit-cache рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд_рдирд┐рд░реНрднрд░рддрд╛_рдкрд░рд┐рд╡рд░реНрддрд┐рдд
рдЬреЛ --implicit-deps-changed рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд_рдирд┐рд░реНрднрд░рддрд╛_рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд
рдЬреЛ --implicit-deps-unchanged рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡
рдЬреЛ --interact рдФрд░ --interactive рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЬрд╛рддрд╛ рд░рд╣рдирд╛
рдЬреЛ -k рдФрд░ --keep-going рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдзрд┐рдХрддрдо_рдмрд╣рд╛рд╡
рдЬреЛ --max-drift рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдиреЛ_рдПрдХреНрд╕реЗрдХ
рдЬреЛ -n, --no-exec, --just-print, --dry-run рдФрд░ --recon рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
no_site_dir
рдЬреЛ --no-site-dir рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдЬреЛ -j рдФрд░ --jobs рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓_рдлрд╝рд╛рдЗрд▓
рдЬреЛ --profile рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдкреНрд░рд╢реНрди
рдЬреЛ -q рдФрд░ --question рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ
рдЬреЛ --random рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдХреЛрд╖
рдЬреЛ -Y, --repository рдФрд░ --srcdir рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдореВрдХ
рдЬреЛ -s, --silent рдФрд░ --quiet рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рд╕рд╛рдЗрдЯ_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдЬреЛ --site-dir рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рд╕реНрдЯреИрдХ_рд╕рд╛рдЗрдЬрд╝
рдЬреЛ --stack-size рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЯрд╛рд╕реНрдХрдорд╛рд╕реНрдЯрд░рдЯреНрд░реЗрд╕_рдлрд╝рд╛рдЗрд▓
рдЬреЛ --taskmastertrace рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ; рддрдерд╛
рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛
рдЬреЛ --warn рдФрд░ --warning рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ.
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк.
рдЧреНрд▓реЛрдм(рдкреИрдЯрд░реНрди, [рдСрдирдбрд┐рд╕реНрдХ, рд╕реНрд░реЛрдд, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдмрд╛рд╣рд░ рдХрд░реЗрдВ]), env.Glob(рдкреИрдЯрд░реНрди, [рдСрдирдбрд┐рд╕реНрдХ, рд╕реНрд░реЛрдд,
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдмрд╣рд┐рд╖реНрдХреГрдд])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ (рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕) рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдкреИрдЯрд░реНрди, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖
рд╡рд░реНрддрдорд╛рди SConscript рдлрд╝рд╛рдЗрд▓ рдХрд╛ред env.рдЧреНрд▓реЛрдм() рдлреЙрд░реНрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддрд╛ рд╣реИ
рдкреИрдЯрд░реНрди рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╡рд┐рд╖реНрддреГрдд рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕ рд╢реИрд▓ рд╢реИрд▓реА рдореЗрдЯрд╛рдХреИрд░реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
* рд╕рдм рдХреБрдЫ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
? рдХрд┐рд╕реА рднреА рдПрдХрд▓ рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
[seq] seq рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
[!seq] seq рдореЗрдВ рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдмрд┐рдВрджреБ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рд╕реНрдкрд╖реНрдЯ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд░реНрдг рдорд┐рд▓рд╛рди рдХрд░реЗрдВ рдирд╣реАрдВ span рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд┐рднрд╛рдЬрдХ.
RSI рдЧреНрд▓реЛрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рдХреЛрд╖ рдлрд╝рдВрдХреНрд╢рди) рдФрд░ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ
(рджреЗрдЦреЗрдВ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдлрд╝рдВрдХреНрд╢рди) рдФрд░ рдиреЛрдб (рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╕реНрдерд╛рдиреАрдп (SConscript) рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрджрд┐ рдорд┐рд▓рд╛рди рдиреЛрдб рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдд рдореЗрдВ рдХрд╣реАрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдпрд╛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛.
RSI рдСрдирдбрд┐рд╕реНрдХ рддрд░реНрдХ рдХреЛ рдЕрд╕рддреНрдп (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧреИрд░-рд╕рддреНрдп рдорд╛рди) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдбрд┐рд╕реНрдХ рдкрд░ рдорд┐рд▓рд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдорд┐рд▓рд╛рди рд╣реА рд╡рд╛рдкрд╕ рдЖрдПрдВ
рдлрд╝рд╛рдЗрд▓ рдпрд╛ Dir рдиреЛрдбреНрд╕ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдпрд╛ Dir рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрдд рдиреЛрдбреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИред
рдСрди-рдбрд┐рд╕реНрдХ рдорд┐рд▓рд╛рди рдкрд╛рдпрд╛ рдЧрдпрд╛.
RSI рд╕реНрд░реЛрдд рддрд░реНрдХ рдХреЛ рд╕рддреНрдп (рдпрд╛ рдХрд┐рд╕реА рд╕рдорддреБрд▓реНрдп рдорд╛рди) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐, рдЬрдм
рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдПрдХ рд╣реИ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░, рд▓реМрдЯрд╛рдП рдЧрдП рдиреЛрдбреНрд╕ рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ.
RSI рддрд╛рд░ рддрд░реНрдХ рдХреЛ рд╕рддреНрдп (рдпрд╛ рдХрд┐рд╕реА рд╕рдорддреБрд▓реНрдп рдорд╛рди) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЧреНрд▓реЛрдм
рдлрд╝рдВрдХреНрд╢рди рдиреЛрдбреНрд╕ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред
рд▓реМрдЯрд╛рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд╛рдиреАрдп (SConscript) рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдВрдЧреЗред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдЗрд╕рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдореЗрдВ рдордирдорд╛рдирд╛ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐
рд▓реМрдЯрд╛рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдИ рднреА рдиреЛрдб рдЕрдиреБрд╡рд╛рдж рд╣реЛрдЧрд╛
рдЕрдиреНрдп SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛ, рди рдХрд┐ рдореВрд▓ SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред)
RSI рдирд┐рдХрд╛рд▓рдирд╛ рддрд░реНрдХ рдХреЛ рдПрдХ рдкреИрдЯрд░реНрди рдпрд╛ рдкреИрдЯрд░реНрди рдХреА рд╕реВрдЪреА (рдЙрд╕реА рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпреВрдирд┐рдХреНрд╕ рд╢реИрд▓ рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕) рдЬрд┐рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрддреНрд╡
рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo', рдЧреНрд▓реЛрдм('*.c'))
рдЬрд╝рд┐рдк('/tmp/рд╕рдмрдХреБрдЫ', рдЧреНрд▓реЛрдм('.??*') + рдЧреНрд▓реЛрдм('*'))
рд╕реНрд░реЛрдд = рдЧреНрд▓реЛрдм('*.cpp', рдмрд╛рд╣рд░ рдХрд░реЗрдВ=['os_*_specific_*.cpp']) + рдЧреНрд▓реЛрдм('os_%s_specific_*.cpp'%currentOS)
рд╕рд╣рд╛рдпрддрд╛(рдкрд╛рда, рд╕рдВрд▓рдЧреНрди=рдЭреВрда), env.Help(рдкрд╛рда, рд╕рдВрд▓рдЧреНрди=рдЭреВрда)
рдпрд╣ рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ -h рддрд░реНрдХ рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдорджрдж
рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдорджрдж is
рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдкреЗрдВрдб рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░, рдХреЛрдИ рднреА рдорджрдж рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдкрд╛рда рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ рдкреАрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ.
рдпрджрд┐ append рд╕рддреНрдп рд╣реИ, рддреЛ AddOption рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рд╕рд╣рд╛рдпрддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la -h рд╕рдВрджреЗрд╢ред
рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ(рд▓рдХреНрд╖реНрдп, рдирд┐рд░реНрднрд░рддрд╛), env. рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ(рд▓рдХреНрд╖реНрдп, рдирд┐рд░реНрднрд░рддрд╛)
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдкреБрдирдГ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдк рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрдкреЗрдХреНрд╖рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд┐рд▓реНрдб рд╕реЗ рд▓рдХреНрд╖реНрдп рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЖрдкрдХреЛ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд▓рдХреНрд╖реНрдп рдХреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлрд╝рд╛рдЗрд▓
рдЖрдк рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯред рдпрд╣ рддрдм рднреА рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЙрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдирд┐рд░реНрдорд┐рддред рдиреАрдЪреЗ рддреАрд╕рд░рд╛ рдФрд░ рдЪреМрдерд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг:
env.рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ('foo', 'foo.c')
env.Ignore('рдмрд╛рд░', ['bar1.h', 'bar2.h'])
env.рдЕрдирджреЗрдЦрд╛('.','foobar.obj')
env.Ignore('рдмрд╛рд░','рдмрд╛рд░/foobar.obj')
рдЖрдпрд╛рдд(vars), env.Import(vars)
рдпрд╣ scons рдХреЛ рд╡рд░реНрддрдорд╛рди SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд░реЛрдВ рдХреА рд╕реВрдЪреА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред
рдЙрди рдЪрд░реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдирд┐рд░реНрдпрд╛рдд рдпрд╛ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ
рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ. рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдЪрд░ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЪрд░ рдирд╛рдо
рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЖрдпрд╛рдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВред рдЪрд░ "*" рдХреЛ
рд╕рднреА рдЪрд░реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.
рдЙрджрд╛рд╣рд░рдг:
рдЖрдпрд╛рдд("env")
рдЖрдпрд╛рдд("env", "рдЪрд░")
рдЖрдпрд╛рдд(["env", "рдЪрд░"])
рдЖрдпрд╛рдд рдХрд░рдирд╛("*")
рд▓рд┐рдЯрд░рд▓(рд╕реНрдЯреНрд░рд┐рдВрдЧ), env.Literal(рд╕реНрдЯреНрд░рд┐рдВрдЧ)
рд╡рд┐рд╖реНрддреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рд╕рдВрдмрдВрдзреА рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдЧрд╛
рд╡рд┐рд╕реНрддрд╛рд░рд┐рддред
рд╕реНрдерд╛рдиреАрдп(рд▓рдХреНрд╖реНрдп), env.Local(рд▓рдХреНрд╖реНрдп)
рд╡рд┐рд╖реНрддреГрдд рд▓рдХреНрд╖реНрдп рд╕реНрдерд╛рдиреАрдп рд╡реГрдХреНрд╖ рдореЗрдВ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреА, рднрд▓реЗ рд╣реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдЕрдк-рдЯреВ-рдбреЗрдЯ рдХреЙрдкреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рд▓рдХреНрд╖реНрдп рдиреЛрдб рдпрд╛ рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред
env.MergeFlags(рдЖрд░реНрдЧ, [рдЕрджреНрд╡рд┐рддреАрдп])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИ arg рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп
рдЪрд░ред рдпрджрд┐ arg рддрд░реНрдХ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
env.рдкрд╛рд░реНрд╕рдлрд╝реНрд▓реИрдЧреНрд╕ рдорд╛рдиреЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдкрд░ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ arg рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдПрдХ
рдПрдХрд▓ рдорд╛рди, рдЗрд╕рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╣реАрдВ
рддрд░реНрдХ env.рдорд░реНрдЬрдлрд╝реНрд▓реИрдЧреНрд╕.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк unique=0 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп, рдХреЛрдИ рднреА
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ PATH рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рд░рдЦрддреЗ рд╣реИрдВред
рдЕрдиреНрдп рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕рдмрд╕реЗ рджрд╛рд╣рд┐рдиреА рдУрд░ рдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рд░рдЦрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
# $CCFLAGS рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдзреНрд╡рдЬ рдЬреЛрдбрд╝реЗрдВ.
env.MergeFlags('-O3')
# pkg-config рдЪрд▓рд╛рдиреЗ рд╕реЗ рд▓реМрдЯреЗ рдЭрдВрдбреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
# рдзреНрд╡рдЬ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░реЗрдВред
env.MergeFlags(['!pkg-config gtk+-2.0 --cflags', '-O3'])
# pkg-config рдЪрд▓рд╛рдиреЗ рд╕реЗ рд▓реМрдЯреЗ рдЭрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рди рдзреНрд╡рдЬ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
# рджреЛ рдмрд╛рд░ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░реЗрдВред
env.MergeFlags(['-O3',
'!pkg-config gtk+-2.0 --cflags --libs',
'!pkg-config libpng12 --cflags --libs'])
NoCache(рд▓рдХреНрд╖реНрдп,...), env.NoCache(рд▓рдХреНрд╖реНрдп,...)
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдирд╣реАрдВ рдЬрдм рднреА рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреИрд╢рдбрд┐рд░ рд╡рд┐рдзрд┐ рд╣реИ
рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рдХреНрд╖реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдиреЛ рдХреИрд╢ рд╡рд┐рдзрд┐,
рдпрд╛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ. рдиреЛ рдХреИрд╢ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд░рд┐рдЯрд░реНрди рдореВрд▓реНрдп рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛
рдкрд░реНрдпрд╛рд╡рд░рдг рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ.
рдХреЙрд▓рд┐рдВрдЧ рдиреЛ рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рдЧреИрд░-рдлрд╝рд╛рдЗрд▓ рдиреЛрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХреНрдпреЛрдВрдХрд┐
рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХреИрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ.
рдЙрджрд╛рд╣рд░рдг:
рдиреЛ рдХреИрд╢('foo.elf')
рдиреЛ рдХреИрд╢(env.Program('hello', 'hello.c'))
NoClean(рд▓рдХреНрд╖реНрдп, ...), env.NoClean(рд▓рдХреНрд╖реНрдп, ...)
рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдирд╣реАрдВ рдЬрдм рднреА рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд▓рдХреНрд╖реНрдп (рдпрд╛ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ -c рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкред NS
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рдХреНрд╖реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдиреЛрдХреНрд▓реАрди рд░рд╣реЗ
рдХрд╛рдиреВрдиреА, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдХреЛ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВ -c рд╡рд┐рдХрд▓реНрдк.
рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдиреЛрдХреНрд▓реАрди рд╡рд┐рдзрд┐, рдпрд╛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВред рдиреЛрдХреНрд▓реАрди рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рд░рд┐рдЯрд░реНрди рдорд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ.
рдХреЙрд▓рд┐рдВрдЧ рдиреЛрдХреНрд▓реАрди рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдХреЙрд▓рд┐рдВрдЧ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рд╕реНрд╡рдЪреНрдЫ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП, рдФрд░ рдХрд┐рд╕реА рднреА
рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ -c рд╡рд┐рдХрд▓реНрдк.
рдЙрджрд╛рд╣рд░рдг:
рдиреЛрдХреНрд▓реАрди('foo.elf')
рдиреЛрдХреНрд▓реАрди(env.Program('hello', 'hello.c'))
env.ParseConfig(рдХрдорд╛рдВрдб, [рдлрд╝рдВрдХреНрд╢рди, рдЕрджреНрд╡рд┐рддреАрдп])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рд╕рдорд╛рд░реЛрд╣ рдЖрдЙрдЯрдкреБрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЖрджреЗрд╢ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдорд╛рд░реЛрд╣ is env.рдорд░реНрдЬрдлрд╝реНрд▓реИрдЧреНрд╕, рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ
*-config рдХрдорд╛рдВрдб (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, gtk-config) рдФрд░ рдЙрдкрдпреБрдХреНрдд рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рдирд╣реАрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ
рдЪрд░; рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк unique=0 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╡реЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрд┐рди рдкрд░ рд╡реЗ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рд╡реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ
la env.рдкрд╛рд░реНрд╕рдлрд╝реНрд▓реИрдЧреНрд╕ рд╡рд┐рдзрд┐ (рдЬрд┐рд╕реЗ рдпрд╣ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХрд░рддреА рд╣реИ)ред рдЙрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ,
рдиреАрдЪреЗ, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред
ParseDepends(рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, [рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, only_one]), env.ParseDepends(рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, [рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП,
рдХреЗрд╡рд▓ рдПрдХ])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╢реИрд▓реА рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ
Make рдпрд╛ mkdep рдХрд╛, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ
рдЕрд╡рд╢реНрдп_рдореМрдЬреВрдж_рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдФрд░ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рддреЛ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рддреЛ рдЕрдкрд╡рд╛рдж рдФрд░ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдпред рдпрд╣ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдордЭрджрд╛рд░реА рдЬрд╛рдБрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, gcc -M рдзреНрд╡рдЬ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди, рдЬрд┐рд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рд╕рдВрдЧрдд .d рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред
RSI рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдЗрд╕рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рдПрдЧреА
SConscript рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдкрд╛рд░реНрд╕рдбрд┐рдкреЗрдВрдбреНрд╕ рд╕рдорд╛рд░реЛрд╣.
env.ParseFlags(рдЭрдВрдбреЗ, ...)
GCC рдЯреВрд▓ рдЪреЗрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдлрд╝реНрд▓реИрдЧ рд╡рд╛рд▓реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
рдФрд░ рдзреНрд╡рдЬ рдорд╛рдиреЛрдВ рдХреЛ рдЙрдЪрд┐рдд SCons рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рдпрд╣ рдПрдХ рд╕рд╛рдереА рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд░рд╛рджрд╛ рд╣реИ env.рдорд░реНрдЬрдлрд╝реНрд▓реИрдЧреНрд╕ рд╡рд┐рдзрд┐,
рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд▓реМрдЯрд╛рдП рдЧрдП рд╢рдмреНрджрдХреЛрд╖ рдореЗрдВ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ,
рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ env.рдорд░реНрдЬрдлрд╝реНрд▓реИрдЧреНрд╕ рдорд░реНрдЬреА
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдпрджрд┐ рдЗрд╕рдХрд╛ рддрд░реНрдХ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
рдмреБрд▓рд╛рдирд╛ env.рдкрд╛рд░реНрд╕рдлрд╝реНрд▓реИрдЧреНрд╕ (рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗред)
рдпрджрд┐ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рд╣реНрди (!) рд╣реИ, рддреЛ рд╢реЗрд╖ рдЕрдХреНрд╖рд░ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рд╣реНрди (!) рд╣реЛрдВрдЧреЗред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдорд╛рдВрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ GCC рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЭрдВрдбреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдИ рдЧрдИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рдзреНрд╡рдЬ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдЪрд░:
-рдЖрд░реНрдХ рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-рдбреА рд╕реАрдкреАрдкреАрдбрд┐рдлрд╛рдЗрдиреНрд╕
-рдлреНрд░реЗрдорд╡рд░реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ
-рдлреНрд░реЗрдорд╡рд░реНрдХрдбрд╛рдпрд░= рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде
-рд╕реАрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
-isysroot CCFLAGS, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-рдореИрдВ рд╕реАрдкреАрдкреАрдкреИрде
-рдПрд▓ рд▓рд┐рдмреНрд╕
-рдПрд▓ рд▓рд┐рдмрдкрд╛рде
-mno-cygwin CCFLAGS, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-mwindows рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-pthread рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-std= рд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
-рд╡рд╛, рдПрдПрд╕рдПрдлрдПрд▓рдПрдЬреАрдПрд╕, рд╕реАрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
-Wl,-rpath= RPATH
-Wl,-рдЖрд░, рдЖрд░рдкрде
-Wl,-рдЖрд░ рдЖрд░рдкрд╛рде
-Wl, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
-рдбрдмреНрд▓реНрдпреВрдкреА, рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
- рд╕реАрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
+ рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рд╕рдВрдмрджреНрдз рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рдФрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ $рд▓рд┐рдмреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдЙрджрд╛рд╣рд░рдг (рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ):
рддрд╛рдирд╛рд╢рд╛рд╣реА = env.ParseFlags('-O2 -Dfoo -Dbar=1')
dict = env.ParseFlags('-O2', '-Dfoo', '-Dbar=1')
dict = env.ParseFlags(['-O2', '-Dfoo -Dbar=1'])
dict = env.ParseFlags('-O2', '!echo -Dfoo -Dbar=1')
env.рдкрд░рдлреЛрд░реНрд╕()
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкрд░рдлреЛрд░реНрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реАред рд▓реМрдЯрд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ
рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдЙрджрд╛рд╣рд░рдг:
env.SourceCode('.', env.Perforce())
рдкрд░рдлреЛрд░реНрд╕ рдЕрдкрдиреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЕрдиреЗрдХ рдмрд╛рд╣реНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд╣рд░реА рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ ENV рд╢рдмреНрджрдХреЛрд╖ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ: P4CHARSET, P4CLIENT,
P4LANGUAGE, P4PASSWD, P4PORT, P4USER, рд╕рд┐рд╕реНрдЯрдорд░реВрдЯ, USER, рдФрд░ USERNAME.
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо(рд╕реНрдЯреНрд░рд┐рдВрдЧ)
RSI рдордВрдЪ рдлрд╝реЙрд░реНрдо рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдлрд╝реЙрд░реНрдо рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдорд╛рд░реЛрд╣.
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо('win32'))
RSI env.рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рд╡рд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛.
env.рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо('posix')
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ win32 рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо SystemDrive рдФрд░ SystemRoot рдЪрд░ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд╣рд░реА рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рд▓реЗрдХрд░ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рддрдХ $рдИрдПрдирд╡реА рд╢рдмреНрджрдХреЛрд╢. рдпрд╣ рд╣реИ
рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ (рдЬреИрд╕реЗ
рдмрд╛рд╣рд░реА CVS рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬреИрд╕реЗ
:рдкреАрд╕рд░реНрд╡рд░:[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]:/cvsroot/scons) рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдХреАрдорддреА(рд▓рдХреНрд╖реНрдп, ...), env.Precious(рд▓рдХреНрд╖реНрдп, ...)
рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрдВрдХ рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдпрд╣ рдЗрддрдирд╛ рдХреАрдорддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рджреЛрдмрд╛рд░рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред
рдЖрдо рддреМрд░ рдкрд░ scons рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЗрд╕рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рд╣реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреАрдорддреА.
env.Prepend(рдХреБрдВрдЬреА=val, [...])
рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ,
рдЗрд╕реЗ рдмрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдФрд░ рдХреЗ рдорд╛рди
рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рддреЛ рджреЛ рдорд╛рди рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рдПрдХ рд╕рд╛рдеред рдЕрдиреНрдпрдерд╛, рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдФрд░ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдорд╛рди
рджреЛрдиреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рднреА рджреЗрдЦреЗрдВ
рд╡рд┐рдзрд┐, рдКрдкрд░.)
рдЙрджрд╛рд╣рд░рдг:
env.Prepend(CCFLAGS = '-g ', FOO = ['foo.yyy'])
env.PrependENVPath(рдирд╛рдо, рдирдпрд╛рдкрде, [envname, sep, delete_existing])
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд╛рд╣реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджрд┐рдП рдЧрдП рдкрде рдореЗрдВ рдирдП рдкрде рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
($рдИрдПрдирд╡реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ)ред рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрде рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЬреЛрдбрд╝реЗрдЧрд╛ (рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░)
рдпрд╣ рдмрд╛рдХреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ, рдкрде рдХреНрд░рдо рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП), рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕рднреА рдкрдереЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛ (os.path.normpath рдФрд░ os.path.normcase рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдпрд╣ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ рдЬрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкреБрд░рд╛рдирд╛ рдкрде рдЪрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реВрдЪреА рд╣реИ,
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╕реВрдЪреА рд▓реМрдЯрд╛рдИ рдЬрд╛рдПрдЧреАред
If рдореМрдЬреВрджрд╛_рд╣рдЯрд╛рдирд╛ 0 рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдкрде рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡рд╣ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝реЗрдЧрд╛
рдЖрд░рдВрдн рдореЗрдВ; рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рдЬрд╣рд╛рдВ рд╣реИ рд╡рд╣реАрдВ рд░рд╣реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рд┐рдВрдЯ 'рдкрд╣рд▓реЗ:', env['ENV']['рд╢рд╛рдорд┐рд▓']
include_path = '/foo/bar:/foo'
env.PrependENVPath('INCLUDE', include_path)
рдкреНрд░рд┐рдВрдЯ 'рдмрд╛рдж рдореЗрдВ:', env['ENV']['рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ']
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛:
рдкрд╣рд▓реЗ: /biz:/foo
рдмрд╛рдж рдореЗрдВ: /foo/bar:/foo:/biz
env.PrependUnique(рдХреБрдВрдЬреА=val, delete_existing=0, [...])
рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ,
рдЗрд╕реЗ рдмрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдХреЛрдИ рднреА рдорд╛рди рдирд╣реАрдВ
рд╕реВрдЪреА рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ delete_existing 1 рд╣реИ, рддреЛ рдореМрдЬреВрджрд╛ рдорд┐рд▓рд╛рди рдорд╛рди
рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрд░реНрдЧ рд╕реВрдЪреА рдореЗрдВ рдореМрдЬреВрджрд╛ рдорд╛рди рд╕реВрдЪреА рдХреЗ рд╕рд╛рдордиреЗ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
env.PrependUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])
рдкреНрд░рдЧрддрд┐(рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, [рдЕрдВрддрд░рд╛рд▓]), рдкреНрд░рдЧрддрд┐(рд╕реНрдЯреНрд░рд┐рдВрдЧ, [рдЕрдВрддрд░рд╛рд▓, рдлрд╝рд╛рдЗрд▓, рдЕрдзрд┐рд▓реЗрдЦрд┐рдд]),
рдкреНрд░рдЧрддрд┐(list_of_strings, [рдЕрдВрддрд░рд╛рд▓, рдлрд╝рд╛рдЗрд▓, рдЕрдзрд┐рд▓реЗрдЦрд┐рдд])
SCons рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ рдпрд╛ рдХреЙрд▓ рдХрд░рдХреЗ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдХреА рдЧрдИ рдкреНрд░рдЧрддрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдиреЛрдбреНрд╕ (рдЬреИрд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдлрд╝рдВрдХреНрд╢рдиред
рдпрджрд┐ рдкрд╣рд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХ рдПрдХ рдкрд╛рдпрдерди рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп (рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ) рд╣реИ
a __call__() рд╡рд┐рдзрд┐) рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЕрдВрддрд░рд╛рд▓ рдПрдХ рдиреЛрдб рдХрд┐рддрдиреА рдмрд╛рд░
рдореВрд▓реНрдпрд╛рдВрдХрд┐рддред рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреЛ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдиреЛрдб рдХреЛ рдЙрд╕рдХреЗ рдПрдХрдорд╛рддреНрд░ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред (рдХреЗ рд▓рд┐рдП
рднрд╡рд┐рд╖реНрдп рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдореЗрдВ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ *args рдФрд░ **kw рдЬреЛрдбрд╝рдирд╛ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ред рдпрд╣ рдХреЛрдб рдХреЛ рдЯреВрдЯрдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ рдпрджрд┐ SCons рдХрднреА рднреА рдмрджрд▓рддрд╛ рд╣реИ
(рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕.)
рдПрдХ рд╕рд░рд▓ рдХрд╕реНрдЯрдо рдкреНрд░рдЧрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ 10 рдиреЛрдбреНрд╕ рдкрд░ рдиреЛрдб рдирд╛рдо:
def my_progress_function(рдиреЛрдб, *рдЖрд░реНрдЧреНрд╕, **kw):
рдкреНрд░рд┐рдВрдЯ 'рдиреЛрдб %s рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ!' % рдиреЛрдб
рдкреНрд░рдЧрддрд┐(my_progress_function, рдЕрдВрддрд░рд╛рд▓=10)
рдХрд╕реНрдЯрдо рдкреНрд░рдЧрддрд┐ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ 100 рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдиреЛрдбреНрд╕ рдХреА рдЧрд┐рдирддреА рд╢рд╛рдорд┐рд▓ рд╣реИред \r (рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди) рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
рдЕрдВрдд рдореЗрдВ рддрд╛рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЦреБрдж рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗ:
рдЖрдпрд╛рдд sys
рдХреНрд▓рд╛рд╕ рдкреНрд░реЛрдЧреНрд░реЗрд╕ рдХрд╛рдЙрдВрдЯрд░ (рдСрдмреНрдЬреЗрдХреНрдЯ):
рдЧрд┐рдирддреА = 0
def __call__(рд╕реНрд╡рдпрдВ, рдиреЛрдб, *рдЖрд░реНрдЧреНрд╕, **kw):
рд╕реНрд╡рдпрдВ.рдЧрдгрдирд╛ += резрежреж
sys.stderr.write('рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд %s рдиреЛрдбреНрд╕\r' % self.count)
рдкреНрд░рдЧрддрд┐(рдкреНрд░рдЧрддрд┐ рдХрд╛рдЙрдВрдЯрд░(), рдЕрдВрддрд░рд╛рд▓=100)
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкреНрд░рдЧрддрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣рд░ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЕрдВрддрд░рд╛рд▓ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдиреЛрдбреНрд╕ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реИ;
рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдлрд╝рд╛рдЗрд▓ = рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛
рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореБрджреНрд░рд┐рдд рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ 100 рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдВрджреБ:
рдЖрдпрд╛рдд sys
рдкреНрд░рдЧрддрд┐('.', рдЕрдВрддрд░рд╛рд▓=100, рдлрд╝рд╛рдЗрд▓=sys.stderr)
рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдмреЗрдЯрд┐рдо рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ $рдЯрд╛рд░рдЧреЗрдЯ, рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдиреЛрдб. рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐, рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдпрд╣ рдирд╣реАрдВ рдПрдХ рдирд┐рдпрдорд┐рдд SCons рдЪрд░
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдиреНрдп рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \r (рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдиреЛрдб рдХрд╛ рдирд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ overwrite= рдХреАрд╡рд░реНрдб рддрд░реНрдХ
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореБрджреНрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд░рд┐рдХреНрдд рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ:
рдЖрдпрд╛рдд sys
рдкреНрд░рдЧрддрд┐('$TARGET\r', рдЕрдзрд┐рд▓реЗрдЦрд┐рдд=рд╕рддреНрдп)
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкреНрд░рдЧрддрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╣рд░ рдмрд╛рд░ рдШреВрдорддреЗ рд╣реБрдП рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЕрдВрддрд░рд╛рд▓ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдП рдЧрдП рдиреЛрдбреНрд╕ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ "рд╕реНрдкрд┐рдирд░" рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ:
рдкреНрд░рдЧрддрд┐(['-\r', '\\\r', '|\r', '/\r'], рдЕрдВрддрд░рд╛рд▓=5)
рдЫрджреНрдо(рд▓рдХреНрд╖реНрдп, ...), env.рдЫрджреНрдо(рд▓рдХреНрд╖реНрдп, ...)
рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдХреНрд╖реНрдп рдмрд┐рд▓реНрдб рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐
рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдпрд╣ gnu make рдХреЗ рд╕рдорд╛рди рд╣реИ
.PHONY рд▓рдХреНрд╖реНрдпред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдЙрд░реНрдл рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдХреЙрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЙрдкрдирд╛рдо.
env.рдЖрд░рд╕реАрдПрд╕()
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░рд╕реАрдПрд╕ред рд▓реМрдЯрд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣:
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдЙрджрд╛рд╣рд░рдг:
env.SourceCode('.', env.RCS())
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ scons рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ RCS рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ RCS рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ RCS,v рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП RCS рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
env.Replace(рдХреБрдВрдЬреА=val, [...])
рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреАрд╡рд░реНрдб рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
рддрд░реНрдХред
рдЙрджрд╛рд╣рд░рдг:
env.Replace(CCFLAGS = '-g', FOO = 'foo.xxx')
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА(рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛), env.Repository(рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╣реИред
рдХреЛрд╖ рдХрд╛рдиреВрдиреА рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реИрдз рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдЦреЛрдЬрд╛ред
рд╕реНрдХреЛрдВрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИ, рдЬреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ
рдбрд╛рдЙрди, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЗрдВ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдерд╛рдиреАрдп рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдореЗрдВ рд▓рдХреНрд╖реНрдпред рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрд░реЛрдд рд╣реЛрдЧрд╛
рдЗрдВрдЯреАрдЧреНрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рдкреЗрдбрд╝ред рдпрджрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рддреЛ
рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ scons рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ
рдЖрд╡рд╢реНрдпрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдХрдм рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ
рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреА рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрджреНрдпрддрди рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ, рддреЛ scons рдирд╣реАрдВ
рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реЛрдЧреА
рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдзрд┐.
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ(рд▓рдХреНрд╖реНрдп, рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛), env.Requires(рд▓рдХреНрд╖реНрдп, рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдФрд░ рдХреЗ рдмреАрдЪ рдХреЗрд╡рд▓-рдСрд░реНрдбрд░ рд╕рдВрдмрдВрдз рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ)ред рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХреЛ (рдкреБрдирдГ) рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрджрд┐
рдЬрд╝рд░реВрд░реА, рд╕реЗ рдкрд╣рд▓реЗ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ), рд▓реЗрдХрд┐рди рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ
рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ рдФрд░ рдХреЗрд╡рд▓ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЗ рдХрд╛рд░рдг рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ.
рдЙрджрд╛рд╣рд░рдг:
env.Requires('foo', 'рдлрд╝рд╛рдЗрд▓-рдЬреЛ-foo-рд╕реЗ-рдкрд╣рд▓реЗ-рдмрдирд╛рдИ-рдЬрд╛рдиреА-рдЪрд╛рд╣рд┐рдП')
рд░рд┐рдЯрд░реНрди([vars..., stop=])
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд░реНрддрдорд╛рди SConscript рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯ рдЬрд╛рддрд╛ рд╣реИ
SConscript рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рдирд╛рдорд┐рдд рдЪрд░реЛрдВ рдХреЗ рдорд╛рди рд╡рд╛рд░реНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ
рддрд░реНрдХред рдЪрд░ рдирд╛рдо рд╡рд╛рд▓реЗ рдХрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╛рдкрд╕реАред рдХреЛрдИ
рд╡реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЬрд┐рдирдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ stop= рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреЛ рдЧрд▓рдд рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
SConscript рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╢реЗрд╖ рднрд╛рдЧ рд╡рд╛рдкрд╕реА рдХреЙрд▓ рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдерд╛
SCons 0.98 рд╕реЗ рдкрд╣рд▓реЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди рдЕрднреА рднреА рдХреЗ рдорд╛рди рд╣реИрдВ
рдирд╛рдорд┐рдд рдЪрд░ рд╡рд╛рд░реНрд╕ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдкрд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
# рдмрд┐рдирд╛ рдХреЛрдИ рдорд╛рди рд▓реМрдЯрд╛рдП рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ.
рд╡рд╛рдкрд╕ рдХрд░рдирд╛()
# 'foo' рдкрд╛рдпрдерди рдЪрд░ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ.
рд░рд┐рдЯрд░реНрди("foo")
# рдкрд╛рдпрдерди рдЪрд░ 'foo' рдФрд░ 'bar' рдХреЗ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд░рд┐рдЯрд░реНрди("foo", "bar")
# рдкрд╛рдпрдерди рдЪрд░ 'val1' рдФрд░ 'val2' рдХреЗ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд░рд┐рдЯрд░реНрди('val1 val2')
рд╕реНрдХреИрдирд░(рдлрд╝рдВрдХреНрд╢рди, [рддрд░реНрдХ, рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдкрде_рдлрд╝рдВрдХреНрд╢рди, рдиреЛрдб_рдХреНрд▓рд╛рд╕, рдиреЛрдб_рдлрд╝реИрдХреНрдЯрд░реА, рд╕реНрдХреИрди_рдЪреЗрдХ,
рдкреБрдирд░рд╛рд╡рд░реНрддреА]), env.Scanner(рдлрд╝рдВрдХреНрд╢рди, [рддрд░реНрдХ, рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдкрде_рдлрд╝рдВрдХреНрд╢рди, рдиреЛрдб_рдХреНрд▓рд╛рд╕,
рдиреЛрдб_рдлреИрдХреНрдЯреНрд░реА, рд╕реНрдХреИрди_рдЪреЗрдХ, рд░рд┐рдХрд░реНрд╕рд┐рд╡])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рд╕рдорд╛рд░реЛрд╣. "рд╕реНрдХреИрдирд░" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рддрд░реНрдХреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреВрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рджреЗрдЦреЗрдВред
env.рдПрд╕рд╕реАрд╕реАрдПрд╕()
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдПрд╕рд╕реАрд╕реАрдПрд╕ред рд▓реМрдЯрд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕рдорд╛рд░реЛрд╣.
рдЙрджрд╛рд╣рд░рдг:
env.SourceCode('.', env.SCCS())
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ scons SCCS рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ SCCS рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ s.SCCS рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП SCCS рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
SConscript(рд╕реНрдХреНрд░рд┐рдкреНрдЯ, [рдирд┐рд░реНрдпрд╛рдд, variant_dir, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ]), env.SConscript(рд╕реНрдХреНрд░рд┐рдкреНрдЯ, [рдирд┐рд░реНрдпрд╛рдд,
variant_dir, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ]), SConscript(dirs=subdirs, [name=рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдирд┐рд░реНрдпрд╛рдд, variant_dir,
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ]), env.SConscript(dirs=subdirs, [name=рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдирд┐рд░реНрдпрд╛рдд, variant_dir, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ])
рдпрд╣ scons рдХреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрдХ SConscript (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред
рдХрд┐рд╕реА рдХреЙрд▓ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдХреЛрдИ рднреА рдЪрд░ рд╡рд╛рдкрд╕реА рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рд░реЛрд╣.
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИ рд▓рд┐рдкрд┐рдпреЛрдВ as
рдкрд╣рд▓рд╛ рддрд░реНрдХред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдПрдХрд╛рдзрд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЬреИрд╕реЗ
рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ) рдЙрджрд╛рд╣рд░рдг:
SConscript('SConscript') # рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript рдЪрд▓рд╛рдПрдБ
SConscript('src/SConscript') # src рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript рдЪрд▓рд╛рдПрдБ
рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ(['src/SConscript', 'doc/SConscript'])
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди = SConscript('MyConfig.py')
рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрдк)рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИ
рдПрдХ dirs=рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреАрд╡рд░реНрдб рддрд░реНрдХред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, scons рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript рдирд╛рдордХ рд╕рд╣рд╛рдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ред
рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░рдХреЗ SConscript рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдЕрдиреНрдп рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ=рд▓рд┐рдкрд┐
рдХреАрд╡рд░реНрдб рддрд░реНрдХред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рддреАрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИ
рдЙрдкрд░реЛрдХреНрдд рддреАрди рдЙрджрд╛рд╣рд░рдг:
SConscript(dirs='.') # рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript рдЪрд▓рд╛рдПрдБ
SConscript(dirs='src') # src рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ SConscript рдЪрд▓рд╛рдПрдБ
SConscript(dirs=['src', 'doc'])
SConscript(dirs=['sub1', 'sub2'], рдирд╛рдо='MySConscript')
рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрдпрд╛рдд рддрд░реНрдХ рдЪрд░ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯрдпреЗ рдЪрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рд╡рд┐рд╖реНрддреГрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдФрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдкреВрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рд░реНрдпрд╛рдд рд╕рд╣рд╛рдпрдХ рдХрдВрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЖрдпрд╛рдд рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди
рдЪрд░. рдЙрджрд╛рд╣рд░рдг:
foo = SConscript('sub/SConscript', рдирд┐рд░реНрдпрд╛рдд='env')
SConscript('dir/SConscript', рдирд┐рд░реНрдпрд╛рдд=['env', 'variable'])
SConscript(dirs='subdir', exports='env variable')
SConscript(dirs=['one', 'two', 'three'], exports='shared_info')
рдпрджрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ variant_dir рддрд░реНрдХ рдореМрдЬреВрдж рд╣реИ, рдпрд╣ рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ред (рдпрджрд┐ variant_dir рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ,
рдирдХрд╝рд▓ рддрд░реНрдХ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред) variant_dir рддрд░реНрдХ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ
рдХреЙрд▓рд┐рдВрдЧ SConscript рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░
рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдФрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдБред
If variant_dir рдореМрдЬреВрдж рд╣реИ, рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
SConscript рдлрд╝рд╛рдЗрд▓ рд░рд╣рддреА рд╣реИ рдФрд░ SConscript рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдорд╛рдиреЛ рд╡рд╣
variant_dir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛:
SConscript('src/SConscript', variant_dir = 'build')
рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
VariantDir('рдмрд┐рд▓реНрдб', 'src')
SConscript('рдмрд┐рд▓реНрдб/SConscript')
рдЗрд╕ рдмрд╛рдж рдХреЗ рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЕрдХреНрд╕рд░ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕реНрд░реЛрдд рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
SConscript('SConscript', variant_dir = 'build')
рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
VariantDir('рдмрд┐рд▓реНрдб', '.')
SConscript('рдмрд┐рд▓реНрдб/SConscript')
рдпрд╣рд╛рдВ рдХреБрдЫ рдорд┐рд╢реНрд░рд┐рдд рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ src рдФрд░ doc рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ
рд╕рд╛рдЭрд╛_рд╕реВрдЪрдирд╛ = SConscript('MyConfig.py')
SConscript('src/SConscript', рдирд┐рд░реНрдпрд╛рдд='shared_info')
SConscript('doc/SConscript', рдирд┐рд░реНрдпрд╛рдд='shared_info')
# рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдБред SConscript
# рд╡реЗрд░рд┐рдПрдВрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Dir('.').path рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ.
SConscript('SConscript', variant_dir='debug', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscript('SConscript', variant_dir='prod', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
# рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдБред SConscript
# рдХреЛ рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ рдзреНрд╡рдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдСрдкреНрдЯреНрд╕ = { 'CPPDEFINES' : ['DEBUG'], 'CCFLAGS' : '-pgdb' }
SConscript('SConscript', variant_dir='debug', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0, рдирд┐рд░реНрдпрд╛рдд=opts)
рдСрдкреНрдЯреНрд╕ = { 'CPPDEFINES' : ['NODEBUG'], 'CCFLAGS' : '-O' }
SConscript('SConscript', variant_dir='prod', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0, рдирд┐рд░реНрдпрд╛рдд=opts)
# рд╕рд╛рдорд╛рдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░реЗрдВ
SConscript('doc/SConscript', variant_dir='build/doc', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscript('src/SConscript', variant_dir='build/x86', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscript('src/SConscript', variant_dir='build/ppc', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscriptChdir(рдорд╛рди), env.SConscriptChdir(рдорд╛рди)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, scons рдЕрдкрдиреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ
рд╕рд╣рд╛рдпрдХ SConscript рдлрд╝рд╛рдЗрд▓ рд░рд╣рддреА рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
SConscriptChdir(0)
env.SConscriptChdir(0)
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ scons рд╕рднреА SConscript рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рд╣реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред (рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рд╕рднреА
рдЬрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ SConscript рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддреАрдВред)
рдЖрдк SConscriptChdir() рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдХреЗ рдЗрд╕ рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
SConscriptChdir(0)
SConscript('foo/SConscript') # foo рдХреЛ chdir рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
env.SConscriptChdir(1)
SConscript('bar/SConscript') # рдмрд╛рд░ рдХреЛ chdir рдХрд░реЗрдЧрд╛
SConsignFile([рдлрд╝рд╛рдЗрд▓, dbm_module]), env.SConsignFile([рдлрд╝рд╛рдЗрд▓, dbm_module])
рдпрд╣ scons рдХреЛ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдкрдЯреНрдЯрд┐рдХрд╛ред рдЕрдЧрд░
рдкрдЯреНрдЯрд┐рдХрд╛ рдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, .sconsign рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо(рдирд╛рдо) рд╕рдВрдЧреНрд░рд╣реАрдд
рдбрд┐рд╕реНрдХ рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдбреАрдмреАрдПрдо_рдореЙрдбреНрдпреВрд▓ред) рдЕрдЧрд░ рдкрдЯреНрдЯрд┐рдХрд╛ рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдЙрд╕реА рдореЗрдВ рд░рдЦреА рдЧрдИ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдПрдБред
If рдкрдЯреНрдЯрд┐рдХрд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рддреЛ scons рдлрд╝рд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ .sconsign рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВред (рдпрд╣ рдкрд╣рд▓реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдерд╛
(рдПрд╕рд╕реАрдУрдПрдирдПрд╕ 0.96.91 рдФрд░ 0.97 рддрдХ)
рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреАрдмреАрдПрдо_рдореЙрдбреНрдпреВрд▓ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдкрд╛рдпрдерди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо SCons.dblite рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрд┐рдХрд▓реНрдб рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд░рдЪрдирд╛рдПрдВ, рдФрд░ рдЬреЛ рд╕рднреА рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
# рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ ".sconsign.dblite" рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
# рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (
# рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░).
рдПрд╕рдХреЙрдирд╕рд╛рдЗрдирдлрд╛рдЗрд▓()
# рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ "etc/scons-signatures" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
# рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖.
SConsignFile('etc/scons-signatures')
# рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░рдкреЗрдХреНрд╖ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ.
SConsignFile("/home/me/SCons/рд╣рд╕реНрддрд╛рдХреНрд╖рд░")
# рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ .sconsign рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
# рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ.
SConsignFile(рдХреЛрдИ рдирд╣реАрдВ)
env.SetDefault(рдХреБрдВрдЬреА=val, [...])
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐
(рдФрд░ рдХреЗрд╡рд▓ рддрднреА) рдЬрдм рдЪрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╕реЗрдЯ рди рд╣реЛрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рд╣реИрдВ
рд╕рдордХрдХреНрд╖:
env.SetDefault(FOO = 'foo')
рдпрджрд┐ 'FOO' env рдореЗрдВ рдирд╣реАрдВ рд╣реИ: env['FOO'] = 'foo'
SetOption(рдирд╛рдо, рдорд╛рди), env.SetOption(рдирд╛рдо, рдорд╛рди)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди scons рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рдЙрдкрд╕рдореВрд╣ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
SConscript рдлрд╝рд╛рдЗрд▓ рд╕реЗред рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдХрд▓реНрдк рдирд┐рдореНрди рд╣реИрдВ:
рд╕реНрд╡рдЪреНрдЫ
рдЬреЛ -c, --clean рдФрд░ --remove рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдирдХрд╝рд▓
рдЬреЛ --duplicate рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдорджрдж
рдЬреЛ -h рдФрд░ --help рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреИрд╢
рдЬреЛ --implicit-cache рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдЕрдзрд┐рдХрддрдо_рдмрд╣рд╛рд╡
рдЬреЛ --max-drift рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдиреЛ_рдПрдХреНрд╕реЗрдХ
рдЬреЛ -n, --no-exec, --just-print, --dry-run рдФрд░ --recon рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдЬреЛ -j рдФрд░ --jobs рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ
рдЬреЛ --random рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ; рддрдерд╛
рд╕реНрдЯреИрдХ_рд╕рд╛рдЗрдЬрд╝
рдЬреЛ --stack-size рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ.
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк.
рдЙрджрд╛рд╣рд░рдг:
рд╕реЗрдЯрдСрдкреНрд╢рди('max_drift', 1)
рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ(рд╕рд╛рдЗрдб_рдЗрдлрд╝реЗрдХреНрдЯ, рд▓рдХреНрд╖реНрдп), env.рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ(рд╕рд╛рдЗрдб_рдЗрдлрд╝реЗрдХреНрдЯ, рд▓рдХреНрд╖реНрдп)
рд╡рд╛рдгреА рдЦрд░рд╛рдм рдЕрд╕рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдХреНрд╖реНрдп. рджреЛрдиреЛрдВ рдЦрд░рд╛рдм рдЕрд╕рд░ рдФрд░ рд▓рдХреНрд╖реНрдп
рдПрдХ рд╕реВрдЪреА, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдпрд╛ рдПрдХ рдиреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ рдПрдХ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ
рдпрд╛ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреАрдбреАрдмреА рдлрд╝рд╛рдЗрд▓
рдПрдХ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП .obj рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░
рд╡рд┐рднрд┐рдиреНрди TeX рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рдЗрдб рдЗрдлрд╝реЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдФрд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред
target рдХрдИ build commands рдХрд╛ рдПрдХ side effect рд╣реИ, scons рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА build commands рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдПрдХ рд╕рдордп рдореЗрдВ рдХрдИ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рд╛рдЗрдб-рдЗрдлрд╝реЗрдХреНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХрд╛рдзрд┐рдХ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХреНрдпреЛрдВрдХрд┐ рдПрдХрд╛рдзрд┐рдХ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдПрдХ рд╣реА рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдЦрд░рд╛рдм рдЕрд╕рд░ рд▓рдХреНрд╖реНрдп рд╣реИ рдирд╣реАрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд▓рдХреНрд╖реНрдп рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -c
рд╡рд┐рдХрд▓реНрдкред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЦрд░рд╛рдм рдЕрд╕рд░ рд╕рдлрд╛рдИ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд░рд╣рддрд╛ рд╣реИред) рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЦрд░рд╛рдм рдЕрд╕рд░ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрдм рднреА рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рд╕реНрд╡рдЪреНрдЫ
or env.рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рд░реЛрд╣.
рд╕реЛрд░реНрд╕рдХреЛрдб(рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ, рдмрд┐рд▓реНрдбрд░), env.рд╕реЛрд░реНрд╕рдХреЛрдб(рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ, рдмрд┐рд▓реНрдбрд░)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЗрд╕рдХреЗ рд╕рд╣рдпреЛрдЧреА рдлрд╝реИрдХреНрдЯрд░реА рдлрд╝рдВрдХреНрд╢рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИрдВред
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реНрдерд╛рдиреАрдп рд╡реГрдХреНрд╖ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд░рдЦрдирд╛ рдерд╛, рд▓реЗрдХрд┐рди
рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдкрд░ рд╣реА рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдкреБрд░рд╛рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрди рдХрд╛ рдХрд╛рд░реНрдп SCons рдХреЗ рдмрд╛рд╣рд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдмрдВрдзрди рд╕реЗ рдЧреИрд░-рдореМрдЬреВрдж рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░реЗрдВ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреНрд░рдгрд╛рд▓реА рдирд┐рд░реНрдорд╛рддрд╛ред рд╡рд┐рд╖реНрддреГрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдПрдХ рдиреЛрдб, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рджреЛрдиреЛрдВ рдХреА рд╕реВрдЪреА, рдФрд░ рдпрд╛ рддреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ.
рдХрд┐рд╕реА рднреА рдЧреИрд░-рдореМрдЬреВрдж рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, scons рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА рдХреЛ рдЦреЛрдЬреЗрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛
рдкреНрд░рдердо рд╕реЛрд░реНрд╕ рдХреЛрдб рдмрд┐рд▓реНрдбрд░ рдЗрд╕реЗ рдкрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
scons рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ, рднрд▓реЗ рд╣реА
a рд╕реЛрд░реНрд╕ рдХреЛрдб builder рдХреЛ рд╡реГрдХреНрд╖ рдХреЗ рдКрдкрд░ рд╕реНрдерд┐рдд рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
scons, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCCS рдпрд╛ RCS рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реВрдЪрдирд╛ рдХреЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ
рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдмрдВрдзрди рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдк рдЗрди рдЕрддрд┐рд░рд┐рдХреНрдд рдЦреЛрдЬреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрддрд┐ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрди рдЦреЛрдЬреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдЖрдк рдЕрдкрдирд╛ рдирд┐рд░реНрдорд╛рдг рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
env.SourceCode('.', рдХреЛрдИ рдирд╣реАрдВ)
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рд╣рд╛рде рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ рд╕рдВрдмрджреНрдз рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг.
scons рдбрд┐рдмреНрдмрд╛рдмрдВрдж рдлрд╝реИрдХреНрдЯрд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреБрдХреНрдд рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБред рдЖрд╣реНрд╡рд╛рди рдХреЗ рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг
рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
env.SourceCode('.', env.BitKeeper('/usr/local/BKsources'))
env.SourceCode('src', env.CVS('/usr/local/CVSROOT'))
env.SourceCode('/', env.RCS())
env.SourceCode(['f1.c', 'f2.c'], env.SCCS())
env.SourceCode('no_source.c', рдХреЛрдИ рдирд╣реАрдВ)
SourceSignatures(рдкреНрд░рдХрд╛рд░), env.SourceSignatures(рдкреНрд░рдХрд╛рд░)
рдиреЛрдЯ: рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд. рджреЗрдЦреЗрдВ рдирд┐рд░реНрдгрд╛рдпрдХ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдФрд░ рд╕реАрдзреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
SCons рдХреЗ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
RSI рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдлрд╝рдВрдХреНрд╢рди scons рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ (рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛ
рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рд╣реИ) рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрдм рд╕реЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ
рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рд╡реИрдз рдорд╛рди MD5 рдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИрдВред
рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрд░реЛрдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╕рдордп рдХрд┐ рдХреНрдпрд╛ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд▓рдХреНрд╖реНрдп рдЕрджреНрдпрддрд┐рдд рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкреБрдирдГ рдирд┐рд░реНрдорд┐рддред рдпрджрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрд░реЛрдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░
рд▓рдХреНрд╖реНрдп рдЕрджреНрдпрддрди рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
MD5 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ scons рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ рд╣реИ, рдпрджрд┐ рдЗрд╕рдХрд╛ MD5 рдЪреЗрдХрд╕рдо
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖реНрдп рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрдм рд╕реЗ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдмрджрд▓ рдЧрдИ рд╣реИ
рдлрд╝рд╛рдЗрд▓.
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ scons рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ рдпрджрд┐ рдЙрд╕рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк
(рд╕рдВрд╢реЛрдзрди рд╕рдордп) рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрдм рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ
рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ,
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рднреА рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рдмрдбрд╝реЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирдГ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред)
рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ рд╡реИрд▓реНрдпреВ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕.
MD5 рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрддреЗ рд╣реИрдВ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди MD5 рд╣реИ.
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд╛рд░рдЧреЗрдЯрд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реЗрдЯрд┐рдВрдЧ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирддреАрдЬрддрди, рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛
рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдк-рдЯреВ-рдбреЗрдЯ рдирд┐рд░реНрдгрдп (рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ)
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдЬрдм env.рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рд╕реНрдкреНрд▓рд┐рдЯ(рдЖрд░реНрдЧ), env.рд╕реНрдкреНрд▓рд┐рдЯ(рдЖрд░реНрдЧ)
рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдпрд╛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ arg рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднреАрддрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЬрд┐рд╕рд╕реЗ рд▓рдВрдмреЗ рдЕрдХреНрд╖рд░ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪрд┐рдпрд╛рдБред рдЕрдЧрд░ arg рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рд╕реВрдЪреА рдХреЛ рдмрд┐рдирд╛ рдЫреБрдП рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░
arg рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рд╣реИ, рддреЛ рдЙрд╕реЗ рдХреЗрд╡рд▓ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╡рд╕реНрддреБред
рдЙрджрд╛рд╣рд░рдг:
рдлрд╝рд╛рдЗрд▓реЗрдВ = рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ("f1.c f2.c f3.c")
рдлрд╝рд╛рдЗрд▓реЗрдВ = env.Split("f4.c f5.c f6.c")
рдлрд╝рд╛рдЗрд▓реЗрдВ = рд╡рд┐рднрд╛рдЬрд┐рдд("""
f7.рд╕реА
f8.рд╕реА
f9.рд╕реА
""")
env.subst(рдЗрдирдкреБрдЯ, [рдХрдЪреНрдЪрд╛, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, рд░реВрдкрд╛рдВрддрд░рдг])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкреНрд░рдХреНрд╖реЗрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ
рддрд░реНрдХ рдирд┐рд╡реЗрд╢.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЖрд░рдВрднрд┐рдХ рдпрд╛ рдЕрдВрддрд┐рдо рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.
рд╕рдлрд╝реЗрдж рд╕реНрдкреЗрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рд╕рд┐рдВрдЧрд▓ рд╕реНрдкреЗрд╕ рдХреИрд░реЗрдХреНрдЯрд░ рддрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд,
рдХрд┐рд╕реА рднреА $( рдФрд░ $) рд╡рд░реНрдг рдЕрдиреБрдХреНрд░рдо рдХреЛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛,
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдЪреНрдЪрд╛ рдпрджрд┐ рдЖрдк рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ $(-$) рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рддрд░реНрдХ рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреНрд░рдо NS рдХрдЪреНрдЪрд╛ рдпрджрд┐ рдЖрдк рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рддрд░реНрдХ рдХреЛ 2 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХрд┐рд╕реА рднреА $( рдФрд░ $) рдЬреЛрдбрд╝реЗ рдХреЗ рдмреАрдЪ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдпрджрд┐ рдЗрдирдкреБрдЯ рдПрдХ рдЕрдиреБрдХреНрд░рдо (рд╕реВрдЪреА рдпрд╛ рдЯрдкрд▓) рд╣реИ, рддреЛ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдП рдЬрд╛рдПрдВрдЧреЗред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЛ рд▓рдХреНрд╖реНрдп рдФрд░ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕, рдХреНрд░рдорд╢рдГ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ $рдЯрд╛рд░рдЧреЗрдЯ, $рд▓рдХреНрд╖реНрдп, $рд╕реНрд░реЛрдд рдФрд░ $рд╕реНрд░реЛрдд рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд╣реЗрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ env.subst
рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╕реЗ рдЬрд┐рд╕реЗ SCons рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реМрдЯрд╛рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдпрд╛ рдЕрдиреБрдХреНрд░рдо рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдирдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрд╛ рддрд░реНрдХ рдПрдХ рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (SCons рдиреЛрдбреНрд╕ рд╕рд╣рд┐рдд) рдХреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкрд╛рдпрдерди ╬Ы рдореБрд╣рд╛рд╡рд░рд╛ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ
рддрд░реНрдХред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рд┐рдВрдЯ env.subst("C рд╕рдВрдХрд▓рдХ рд╣реИ: $CC")
def рд╕рдВрдХрд▓рди (рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
sourceDir = env.subst("${SOURCE.srcdir}",
рд▓рдХреНрд╖реНрдп=рд▓рдХреНрд╖реНрдп,
рд╕реНрд░реЛрдд=рд╕реНрд░реЛрдд)
рд╕реНрд░реЛрдд_рдиреЛрдбреНрд╕ = env.subst('$EXPAND_TO_NODELIST',
рд░реВрдкрд╛рдВрддрд░рдг=рд▓реИрдореНрдмреНрдбрд╛ x: x)
рдЯреИрдЧ(рдиреЛрдб, рдЯреИрдЧ)
рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдкреИрдХреЗрдЬ рдирд┐рд░реНрдорд╛рддрд╛
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рдЯреИрдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
# рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА 0644 рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рдПрдЧреА
# рдПрдХреНрд╕реЗрд╕ рдореЛрдб
рдЯреИрдЧ( рд▓рд╛рдЗрдмреНрд░реЗрд░реА( 'lib.c' ), UNIX_ATTR="0644" )
# file2.txt рдХреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЯреИрдЧ( 'file2.txt', DOC )
TargetSignatures(рдкреНрд░рдХрд╛рд░), env.TargetSignatures(рдкреНрд░рдХрд╛рд░)
рдиреЛрдЯ: рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд. рджреЗрдЦреЗрдВ рдирд┐рд░реНрдгрд╛рдпрдХ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдФрд░ рд╕реАрдзреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
SCons рдХреЗ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
RSI рдЯрд╛рд░рдЧреЗрдЯрд╕рд┐рдЧреНрдиреЗрдЪрд░ рдлрд╝рдВрдХреНрд╢рди scons рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ (рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛ
is рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрдорд┐рдд) рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ
рдХреБрдЫ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ред рд╡реИрдзрд╛рдирд┐рдХ рдорд╛рди рд╣реИрдВ "build"; "content" (рдпрд╛ рдЗрд╕рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА "MD5");
"рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк"; рдпрд╛ "рд╕реНрд░реЛрдд".
рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рдХреНрд╖реНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЙрди рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдХреЛрдИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЙрдирдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдкрд╖реНрдЯ рд▓рдХреНрд╖реНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдХрд╛рд░ред
"рд╕рд╛рдордЧреНрд░реА" (рдпрд╛ рдЗрд╕рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА "MD5") рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ scons рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ рдпрджрд┐
рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ MD5 рдЪреЗрдХрд╕рдо рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ
рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдХреЛрдВрд╕ MD5 рдпреЛрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЦреЛрд▓ рджреЗрдЧрд╛
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдирд┐рд░реНрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
"рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо" рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдЙрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдкрд┐рдЫрд▓реА рдмрд╛рд░ред
"рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдХреЛрдВрд╕ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ рдпрджрд┐ рдЙрд╕рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк
(рд╕рдВрд╢реЛрдзрди рд╕рдордп) рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрдм рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рднреА рдХрд░реЗрдЧрд╛ рдмрдбрд╝реЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ.)
"рд╕реНрд░реЛрдд" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдХреЛрдВрд╕ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЕрдиреБрд░реВрдк рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗрдЯрд┐рдВрдЧ ("MD5" рдпрд╛ "рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк")ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдХреЛрдиреНрд╕
рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕рднреА рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛, рдЪрд╛рд╣реЗ рд╡реЗ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдпрд╛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
"рдмрд┐рд▓реНрдб" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдХреЛрдВрд╕ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирдГ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд╡рд╣ рдмрджрд▓ рдЧрдИ рд╣реИред
рдЗрд╕ рдЖрд╣реНрд╡рд╛рди рдпрд╛ рдпрджрд┐ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЕрдиреБрд░реВрдк рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗрдЯрд┐рдВрдЧред рдпрд╣ рдПрдХ рдкреБрдирдГ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ "рдкреНрд░рд╕рд╛рд░рд┐рдд" рдХрд░рддрд╛ рд╣реИ
рддрд╛рдХрд┐ рдЕрдиреНрдп "рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо" рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рднрд▓реЗ рд╣реА рд╕рд╛рдордЧреНрд░реА
рдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ.
"рдмрд┐рд▓реНрдб" рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ "рд╕рд╛рдордЧреНрд░реА" (рдпрд╛ "MD5") рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдмрдирдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ
рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди "рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк" рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрдм рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рд░реВрдк рдореЗрдВ рдкреБрдирдГ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ "рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо" рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ
рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордЧреНрд░реАред "рд╕реНрд░реЛрдд" рд╕реЗрдЯрд┐рдВрдЧ рд╕рдмрд╕реЗ рд╕реБрд╕рдВрдЧрдд рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ
рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрдм рдЕрдиреНрдп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рдЗрдирдкреБрдЯ рджреЛрдиреЛрдВ рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓реЗрдВ. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди "рд╕реНрд░реЛрдд" рд╣реИ.
рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ "рд╕реНрд░реЛрдд" рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реНрд░реЛрддрд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЖрдо рддреМрд░ рдкрд░
рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рдЯрд╛рд░рдЧреЗрдЯрд╕рд┐рдЧреНрдиреЗрдЪрд░, рддрд╛рдХрд┐ рдирд╡реАрдирддрдо рдирд┐рд░реНрдгрдп рд╕реБрд╕рдВрдЧрдд рд╣реЛ
рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ (рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ)ред
рдЯрд╛рд░рдЧреЗрдЯрд╕рд┐рдЧреНрдиреЗрдЪрд░ рдирд┐рд░реНрдорд┐рдд рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдЙрдирдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
"рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо" рдирд┐рд░реНрднрд░рддрд╛рдПрдБ.
рдЯреВрд▓(рд╕реНрдЯреНрд░рд┐рдВрдЧ, [рдЯреВрд▓рдкрд╛рде, **kw]), env.Tool(рд╕реНрдЯреНрд░рд┐рдВрдЧ, [рдЯреВрд▓рдкрд╛рде, **kw])
RSI рдЙрдкрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдлрд╝реЙрд░реНрдо рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
Environment() рд╡рд┐рдзрд┐ рдХреЗ tools рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдгред
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдирд╛рдо рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рдЬреЛрдбрд╝ рджреЗрдЧрд╛
рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $рдЯреВрд▓реНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЙрддреНрдкрдиреНрди() рддрд░реАрдХрд╛ред
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = [рдЙрдкрдХрд░рдг('msvc')])
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
t = рдЯреВрд▓('msvc')
t(env) # TOOLS рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ 'msvc' рдЬреЛрдбрд╝рддрд╛ рд╣реИ
u = рдЯреВрд▓('opengl', рдЯреВрд▓рдкрд╛рде = ['рдЯреВрд▓реНрд╕'])
u(env) # TOOLS рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ 'opengl' рдЬреЛрдбрд╝рддрд╛ рд╣реИ
RSI env.рдЯреВрд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЙрддреНрдкрдиреНрди() рддрд░реАрдХрд╛ред
env.рдЯреВрд▓('gcc')
env.Tool('opengl', toolpath = ['build/tools'])
рдорд╛рди(рдорд╛рди, [built_value]), env.Value(рдорд╛рди, [built_value])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╛рдпрдерди рдорд╛рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╡реИрд▓реНрдпреВ рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред рдпрджрд┐ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо str(рдореВрд▓реНрдп) SCons рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди
рд░рди, рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рд╡реИрд▓реНрдпреВ (рдореВрд▓реНрдп) рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред (рдпрд╣ рддрдм рднреА рд╕рддреНрдп рд╣реИ рдЬрдм
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рддрдп рдХрд░рдирд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрджреНрдпрддрд┐рдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред) рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдореВрд▓реНрдп рдиреЛрдбреНрд╕ рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдиреЛрдб рд╣реЛрддрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рд▓реМрдЯрд╛рдП рдЧрдП Value Nod рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд▓рд┐рдЦрдирд╛() рд╡рд┐рдзрд┐ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ "рдирд┐рд░реНрдорд╛рдг" рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдирдпрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдХреЗ Value Nod рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрдорд┐рдд_рдореВрд▓реНрдп рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЬрдм рдорд╛рди рдиреЛрдб рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
"рдирд┐рд░реНрдорд┐рдд." рдПрдХ рд╕рдВрдЧрдд рд╣реИ рдкрдврд╝рдирд╛() рд╡рд┐рдзрд┐ рдЬреЛ рдирд┐рд░реНрдорд┐рдд рдорд╛рди рд▓реМрдЯрд╛рдПрдЧреА
рдиреЛрдб.
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
def create(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
# рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ 'prefix=$SOURCE' рд▓рд┐рдЦреЗрдЧрд╛
# рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
# $рд▓рдХреНрд╖реНрдп.
f = open(str(target[0]), 'wb')
f.write('prefix=' + рд╕реНрд░реЛрдд[0].get_contents())
# рдпрджрд┐ рдХреЛрдИ рд╣реЛ рддреЛ рдХрдорд╛рдВрдб рд╕реЗ prefix= рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
# рдкрдВрдХреНрддрд┐, рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ / Usr / рд╕реНрдерд╛рдиреАрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВред
рдЙрдкрд╕рд░реНрдЧ = рддрд░реНрдХ.get('рдЙрдкрд╕рд░реНрдЧ', '/ Usr / рд╕реНрдерд╛рдиреАрдп')
# рдЙрдкрд░реЛрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП .Config() рдмрд┐рд▓реНрдбрд░ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ
# рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП.
env['BUILDERS']['рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди'] = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ = рдмрдирд╛рдПрдБ)
env.Config(рд▓рдХреНрд╖реНрдп = 'рдкреИрдХреЗрдЬ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди', рд╕реНрд░реЛрдд = рдорд╛рди(рдЙрдкрд╕рд░реНрдЧ))
def build_value(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
# рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдорд╛рди "рдмрдирд╛рддрд╛" рд╣реИ
# рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдорд╛рди
# рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ ($SOURCE).
рд▓рдХреНрд╖реНрдп[0].write(рд╕реНрд░реЛрдд[0].get_contents())
рдЖрдЙрдЯрдкреБрдЯ = env.Value('before')
рдЗрдирдкреБрдЯ = env.Value('рдмрд╛рдж')
# рдЙрдкрд░реЛрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП .UpdateValue() рдмрд┐рд▓реНрдбрд░ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ
# рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ.
env['BUILDERS']['UpdateValue'] = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ = build_value)
env.UpdateValue(рд▓рдХреНрд╖реНрдп = рдорд╛рди(рдЖрдЙрдЯрдкреБрдЯ), рд╕реНрд░реЛрдд = рдорд╛рди(рдЗрдирдкреБрдЯ))
VariantDir(variant_dir, src_dir, [рдбреБрдкреНрд▓рд┐рдХреЗрдЯ]), env.VariantDir(variant_dir, src_dir,
[рдбреБрдкреНрд▓рд┐рдХреЗрдЯ])
рдЙрдкрдпреЛрдЧ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдЕрдкрдиреЗ рд╕реНрд░реЛрддреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди: рдпрджрд┐ рдХреЛрдИ
рдирд╛рдо рдХреЗ рдЕрдВрддрд░реНрдЧрдд variant_dir рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдореМрдЬреВрдж рд╣реИ src_dir, рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ
рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ variant_dirрд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡реИрд░рд┐рдПрдВрдЯ рдХреЗ рднреАрддрд░ рд╕реНрд░реЛрддреЛрдВ (рдФрд░ рд▓рдХреНрд╖реНрдпреЛрдВ) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдореВрд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛
рдкреЗрдбрд╝.
рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдПрдХ рд╣реА рдХреЗ рд╕рд╛рде рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ src_dir рдПрдХрд╛рдзрд┐рдХ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИ (рд╡реЗрд░рд┐рдПрдВрдЯ). src_dir рд╕реНрдерд╛рди рдпрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
SConstruct рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдиреАрдЪреЗ, рдФрд░ variant_dir рдиреАрдЪреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛
src_dir.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреЙрдиреНрд╕ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ.
рд╡реИрд░рд┐рдПрдВрдЯ рдЯреНрд░реАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡реИрд░рд┐рдПрдВрдЯ рдЯреНрд░реА рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдлрд▓ рд╣реЛрдЧрд╛
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдорд╛рди, рднрд▓реЗ рд╣реА рдордзреНрдпрд╡рд░реНрддреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрдВ
рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдпрд╛ рдЕрдиреНрдп рд╕реНрдХреИрдирд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ, рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдХрд▓рдХ рдпрд╛ рдЕрдиреНрдп рдЖрд╣реНрд╡рд╛рди рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдг
рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдбреБрдкреНрд▓реАрдХреЗрд╢рди рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирдХрд▓ рдХрд░рдирд╛; рдпрд╣ рднреА рджреЗрдЦреЗрдВ --рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ
рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИрдВ; рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ
in variant_dir.
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрд░реНрдХ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(рд╢реВрдиреНрдп)ред рдпрд╣ рд╕реНрдХреЛрдВрд╕ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкрде рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛
in src_dir рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкрде рдирд╛рдо variant_dir. рдпрд╣ рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=1 рд╕реЗ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ (рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджреЗрдЦреЗрдВ)
(рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░ рдПрдХ рд╕рд╣рд╛рдпрдХ SConscript рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐,
рдлрд┐рд░ рдЖрдк рд╕рд╣рд╛рдпрдХ SConscript рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ
la variant_dir, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдЗрд╕ рддрд░рд╣ рдЖрдк scons рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ рд╣реИ:
# src/SConscript рдХреЛ рджреЛ рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЪрд▓рд╛рдПрдБ
VariantDir('build/variant1', 'src')
SConscript('рдмрд┐рд▓реНрдб/рд╡реИрд░рд┐рдПрдВрдЯ1/SConscript')
VariantDir('build/variant2', 'src')
SConscript('рдмрд┐рд▓реНрдб/рд╡реИрд░рд┐рдПрдВрдЯ2/SConscript')
рдпрд╣ рднреА рджреЗрдЦреЗрдВ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ
рдПрдХ рд╕рд╣рд╛рдпрдХ SConscript рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде variant рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
рдЙрджрд╛рд╣рд░рдг:
# рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрд░реЗрдВ, рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ
VariantDir('рдмрд┐рд▓реНрдб', 'src', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
рдкреНрд░реЛрдЧреНрд░рд╛рдо('рдмрд┐рд▓реНрдб/рдкреНрд░реЛрдЧ', 'рдмрд┐рд▓реНрдб/рд╕реЛрд░реНрд╕.рд╕реА')
# рдпрд╣ рд╕реНрд░реЛрдд рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЙрдкрд╡реГрдХреНрд╖ рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИ
VariantDir('рдмрд┐рд▓реНрдб', '.', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscript(dirs=['build/src','build/doc'])
# рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ SConscript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
SConscript(dirs='src', variant_dir='build/src', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
SConscript(dirs='doc', variant_dir='build/doc', рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=0)
WhereIs(рдХрд╛рд░реНрдпрдХреНрд░рдо, [рдкрде, pathext, рдЕрд╕реНрд╡реАрдХрд╛рд░]), env.WhereIs(рдХрд╛рд░реНрдпрдХреНрд░рдо, [рдкрде, pathext, рдЕрд╕реНрд╡реАрдХрд╛рд░])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдкреВрд░реНрдг рдкрде рдирд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рдП рддреЛ None рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдкрде,
рдХреЙрд▓рд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ PATH (env['ENV']['PATH']) рдХрд╛ рдорд╛рди, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА PATH (os.environ['PATH'])ред Windows рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдирд┐рдореНрди рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрдереЗрдХреНрд╕реНрдЯ,
рдХреЙрд▓рд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ PATHEXT (env['ENV']['PATHEXT']) рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди
PATHEXT (os.environ['PATHEXT']) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗред рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкрде рдирд╛рдо рдпрд╛ рдирд╛рдо рдирд╣реАрдВ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛
рд╡рд┐рд╖реНрддреГрдд рдЕрд╕реНрд╡реАрдХрд╛рд░ рд╕реВрдЪреА, рдпрджрд┐ рдХреЛрдИ рд╣реЛред
рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░
рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕реНрдХреИрдиреНрд╕ рдХрдИ рдкрд╛рдпрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рд╡реЗ рдЪрд░ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рд▓реНрдб рдХреЛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред рдЗрди рдЪрд░реЛрдВ рдХреЛ рдХрд╕реНрдЯрдо рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ SConscript рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
SCons.Script рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ *
рдЕрд░реНрдЧрд▓рд┐рд╕реНрдЯ
рдПрдХ рд╕реВрдЪрд┐ рдХреАрд╡рд░реНрдб=рдореВрд▓реНрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХред рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡
рдПрдХ рдЯрдкрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ (рдХреАрд╡рд░реНрдб,рдореВрд▓реНрдп) рддрд░реНрдХ рдХрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рдЧред рдХреАрд╡рд░реНрдб рдФрд░
рдореВрд▓реНрдп рдЯреНрдпреВрдкрд▓ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ [0] рдФрд░ [1] of
рдХреНрд░рдорд╢рдГ рдЯрдкрд▓.
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рд┐рдВрдЯ "рдкрд╣рд▓рд╛ рдХреАрд╡рд░реНрдб, рдорд╛рди =", ARGLIST[0][0], ARGLIST[0][1]
рдкреНрд░рд┐рдВрдЯ "рджреВрд╕рд░рд╛ рдХреАрд╡рд░реНрдб, рдорд╛рди =", ARGLIST[1][0], ARGLIST[1][1]
third_tuple = ARGLIST[2]
рдкреНрд░рд┐рдВрдЯ "рддреАрд╕рд░рд╛ рдХреАрд╡рд░реНрдб, рдорд╛рди =", рддреАрд╕рд░рд╛_рдЯрдкрд▓[0], рддреАрд╕рд░рд╛_рдЯрдкрд▓[1]
ARGLIST рдореЗрдВ рдХреБрдВрдЬреА, рдорд╛рди рдХреЗ рд▓рд┐рдП:
# рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдВрдЬреА рдФрд░ рдорд╛рди
рдмрд╣рд╕
рд╕рднреА рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рдХреАрд╡рд░реНрдб=рдореВрд▓реНрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХред
рд╢рдмреНрджрдХреЛрд╢ рдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреАрд╡рд░реНрдб рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░, рдЕрдВрддрд┐рдо (рд╕рдмрд╕реЗ рджрд╛рдпрд╛рдБ) рдорд╛рди рд╡рд╣ рд╣реИ рдмрд╣рд╕
рд╢рдмреНрджрдХреЛрд╢ред
рдЙрджрд╛рд╣рд░рдг:
рдпрджрд┐ ARGUMENTS.get('debug', 0):
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CCFLAGS = '-g')
рдЕрдиреНрдп:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
рдирд┐рд░реНрдорд╛рдг_рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реНрдХреИрдиреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЪрд╛рд╣реЗ рдХреБрдЫ рднреА рд╣реЛ
рд╡реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рдереЗ рдЪреВрдХ() рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ред
рдЗрд╕ рд╕реВрдЪреА рдХреЗ рддрддреНрд╡ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ or рдиреЛрдбреНрд╕, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реВрдЪреА рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдЬрдЧрд░ str рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рднреА рдиреЛрдб рдкрде рдирд╛рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЪреВрдХ()
рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐, рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рдорд┐рдХ рдХреЙрд▓ рдкрд░ рдмрджрд▓ рд╕рдХрддреА рд╣реИ
рдЪреВрдХ().рджреЗрдЦреЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ_рд▓рдХреНрд╖реНрдп рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реВрдЪреА рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг:
рдпрджрд┐ 'foo' BUILD_TARGETS рдореЗрдВ рд╣реИ:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "`foo' рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ!"
рдпрджрд┐ 'special/program' BUILD_TARGETS рдореЗрдВ рд╣реИ:
SConscript('рд╡рд┐рд╢реЗрд╖')
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рд░реНрдорд╛рдг_рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓рдХреНрд╖реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдпрд╛ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреВрдХ() рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ред рдпрд╣ рдХрд░рддрд╛ рд╣реИ рдирд╣реАрдВ рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рд▓рдХреНрд╖реНрдп рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ
рдЕрджреНрдпрддрди рд╣реИрдВ.
рдХрдорд╛рдВрдб_рд▓рд╛рдЗрди_рд▓рдХреНрд╖реНрдп
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреАред рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп, рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдпрд╛ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рдкрд░ рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдирд╛
рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
рдпрджрд┐ 'foo' COMMAND_LINE_TARGETS рдореЗрдВ рд╣реИ:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "`foo' рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ!"
рдпрджрд┐ COMMAND_LINE_TARGETS рдореЗрдВ 'special/program' рд╣реИ:
SConscript('рд╡рд┐рд╢реЗрд╖')
рдбрд┐рдлрд╝реЙрд▓реНрдЯ_рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп рдХреА рд╕реВрдЪреА рдиреЛрдбреНрд╕ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЪреВрдХ() рдлрд╝рдВрдХреНрд╢рди рдпрд╛
рд╡рд┐рдзрд┐ред рд╕реВрдЪреА рдХреЗ рддрддреНрд╡ рдиреЛрдбреНрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдпрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
str рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкрде рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рдиред
рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░рд┐рдВрдЯ str(DEFAULT_TARGETS[0])
рдпрджрд┐ 'foo' рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд╣реИ(str, DEFAULT_TARGETS):
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "`foo' рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ!"
рдХреА рд╕рд╛рдордЧреНрд░реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ_рд▓рдХреНрд╖реНрдп рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рдорд┐рдХ рдХреЙрд▓ рдкрд░ рд╕реВрдЪреА рдкрд░рд┐рд╡рд░реНрддрди
рдЪреВрдХ() рд╕рдорд╛рд░реЛрд╣:
рдкреНрд░рд┐рдВрдЯ рдореИрдк (рд╕реНрдЯреНрд░, DEFAULT_TARGETS) # рдореВрд▓ рд░реВрдк рд╕реЗ []
рдбрд┐рдлрд╝реЙрд▓реНрдЯ('foo')
рдкреНрд░рд┐рдВрдЯ рдореИрдк (рд╕реНрдЯреНрд░, DEFAULT_TARGETS) # рдЕрдм рдПрдХ рдиреЛрдб ['foo']
рдбрд┐рдлрд╝реЙрд▓реНрдЯ('рдмрд╛рд░')
рдкреНрд░рд┐рдВрдЯ рдореИрдк (рд╕реНрдЯреНрд░, DEFAULT_TARGETS) # рдЕрдм рдПрдХ рдиреЛрдб ['foo', 'bar']
рдбрд┐рдлрд╝реЙрд▓реНрдЯ(рдХреЛрдИ рдирд╣реАрдВ)
рдкреНрд░рд┐рдВрдЯ рдореИрдк (рд╕реНрдЯреНрд░, DEFAULT_TARGETS) # рд╡рд╛рдкрд╕ []
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╡рд╢реНрдп рдХрд░реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ_рд▓рдХреНрд╖реНрдп рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░ рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЪреВрдХ()
рдХреЙрд▓, рдпрд╛ рдлрд┐рд░ рдЕрдкрдиреА SConscript рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрди рдХрдердиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЗ рдкреНрд░рддрд┐ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ
рддрд╛рдХрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп рдХреА рддрд▓рд╛рд╢ рди рдХрд░реЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ
рд╕реВрдЪрд┐ред
рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдПрдХ рд╕рдВрдмрджреНрдз рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдпрд╣реА рд╣реИ
рдмрд┐рд▓реНрдЯ-рдЗрди рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдЙрд╕реА рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд╛рдпрдерди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо: рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд░реНрдг рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдпрд╛ рдЕрдХреНрд╖рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП,
рдЗрд╕рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрдбрд░рд╕реНрдХреЛрд░, рдЕрдХреНрд╖рд░ рдпрд╛ рдЕрдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП scons рджреНрд╡рд╛рд░рд╛ рдХрдИ рдЙрдкрдпреЛрдЧреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
__LDMODULEVERSIONFLAGS
рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ $_LDMODULEVERSIONFLAGS $_LDMODULEVERSIONFLAGS if
$LDMODULEVERSION ... рд╕реЗрдЯ рд╣реИред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред
__SHLIBрд╕рдВрд╕реНрдХрд░рдгрдЭрдВрдбреЗ
рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ $_SHLIBVERSIONFLAGS if
$SHLIBрд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рд╣реИред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред
AR
рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛.
рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рд╡рд╣ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
рдЙрд╕ рдорд╢реАрди рдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЬрд┐рд╕ рдкрд░ SCons рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ: Ipkg рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб, рдФрд░ рдирд╛рдо рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ
RPM рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди.
рдЖрд░рдХреЙрдо
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдЖрд░реНрдХреЛрдорд╕реНрдЯреНрд░
рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдПрдЖрд░рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (ARCOMSTR = "рд╕рдВрдЧреНрд░рд╣реАрдд $TARGET")
рдЕрд░рдлреНрд▓реИрдЧреНрд╕
рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
AS
рд╕рдВрдпреЛрдЬрдирдХрд░реНрддрд╛.
рдПрдПрд╕рд╕реАрдУрдПрдо
рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓.
рдПрдПрд╕рд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдПрдПрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (ASCOMSTR = "рдЕрд╕реЗрдореНрдмрд▓рд┐рдВрдЧ $TARGET")
рдП.рдПрд╕.рдПрдл.рдПрд▓.рдЬреА.рдПрд╕.
рдЕрд╕реЗрдореНрдмрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдПрдПрд╕рдкреАрдкреАрдХреЙрдо
рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред
$рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдПрдПрд╕рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдПрдПрд╕рдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (ASPPCOMSTR = "рдЕрд╕реЗрдореНрдмрд▓рд┐рдВрдЧ $TARGET")
рдПрдПрд╕рдкреАрдкреАрдПрдлрдлреНрд▓реИрдЧреНрд╕
рдЕрд╕реЗрдВрдмрд▓реА-рднрд╛рд╖рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рддреЗ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ
рдХреЗ рдореВрд▓реНрдп $рдПрдПрд╕рдлреНрд▓реИрдЧреНрд╕.
рдмрд┐рдмрдЯреЗрдХреНрд╕
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ LaTeX рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдерд╕реВрдЪреА рдЬрдирд░реЗрдЯрд░
рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░.
BIBTEXCOM
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдерд╕реВрдЪреА рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдФрд░
рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ рд▓реЗрдЯреЗрдХреНрд╕ рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ред
BIBTEXCOMSTR
TeX рдпрд╛ LaTeX рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдерд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $BIBTEXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (BIBTEXCOMSTR = "рдЧреНрд░рдВрде рд╕реВрдЪреА $TARGET рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛")
BIBTEXFLAGS
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдерд╕реВрдЪреА рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдФрд░
рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ рд▓реЗрдЯреЗрдХреНрд╕ рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ред
рдмрд┐рдЯрдХреАрдкрд░
рдмрд┐рдЯрдХреАрдкрд░ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп.
рдмрд┐рдЯрдХреАрдкрд░рдХреЙрдо
рдмрд┐рдЯрдХреАрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдмрд┐рдЯрдХреАрдкрд░рдХреЙрдорд╕реНрдЯреНрд░
рдмрд┐рдЯрдХреАрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $рдмрд┐рдЯрдХреАрдкрд░рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдмрд┐рдЯрдХреАрдкрд░рдЧреЗрдЯ
рдЖрджреЗрд╢ ($рдмрд┐рдЯрдХреАрдкрд░) рдФрд░ рдмрд┐рдЯрдХреАрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрдорд╛рдВрдбред
рдмрд┐рдЯрдХреАрдкрд░рдЧреЗрдЯрдлреНрд▓реИрдЧреНрд╕
рдмрд┐рдЯрдХреАрдкрд░ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓ рдЙрдкрдХрдорд╛рдВрдбред
рдмрд┐рд▓реНрдбрд░реЛрдВ
рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ред рдмрд┐рд▓реНрдбрд░реНрд╕ рдХрд╛ рдирд╛рдо рдЙрдкрдирд╛рдо, CFile, CXXFile, DVI, рд▓рд╛рдЗрдмреНрд░реЗрд░реА,
рдСрдмреНрдЬреЗрдХреНрдЯ, рдкреАрдбреАрдПрдл, рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ
рдЬрдм рдХреЛрдИ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЪрд░:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'рдиреНрдпреВрдмрд┐рд▓реНрдбрд░' : foo})
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд┐рд▓реНрдбрд░реНрд╕ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдирдП рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдкрдирд╛ рдирдпрд╛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Append(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'рдиреНрдпреВрдмрд┐рд▓реНрдбрд░' : foo})
рдпрд╛ рдпрд╣:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env['BUILDERS]['рдиреНрдпреВрдмрд┐рд▓реНрдбрд░'] = foo
CC
рд╕реА рд╕рдВрдХрд▓рдХред
рд╕реАрд╕реАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк $рд╕реАрдлреНрд▓реИрдЧреНрд╕, $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реИрдВ
рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ.
рд╕реАрд╕реАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рд╕реАрд╕реАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (CCCOMSTR = "рд╕реНрдерд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ $TARGET рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛")
рд╕реАрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ C рдФрд░ C++ рдХрдореНрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реАрд╕реАрдкреАрд╕реАрдПрдЪрдлреНрд▓реИрдЧреНрд╕
рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЧрдП
рд╣реЗрдбрд░ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЙрдЪрд┐рдд Microsoft Visual C++ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬрдм $рдкреАрд╕реАрдПрдЪ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рд╣реИ.
рд╕реАрд╕реАрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕
рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЧрдП
Microsoft Visual C++ PDB рдлрд╝рд╛рдЗрд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЙрдкрдпреБрдХреНрдд рдорд╛рди рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИ
Microsoft Visual C++ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬрдм $рдкреАрдбреАрдмреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рд╣реИ.
рд╡рд┐рдЬреБрдЕрд▓ C++ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдЬрд┐рд╕реЗ SCons рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ PDB рдЬрд╛рдирдХрд╛рд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
is /Z7рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ (-j) рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рдмрдЧ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИ
рдПрдХрд▓ PDB рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдордзреНрдпрд╡рд░реНрддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА
рдПрдХрд╛рдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪред рдпрд╣ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рднреА рд╣реИ
рдПрдХ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ред /рдЬрд╝реА рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмреЗрд╣рддрд░ рд▓рд┐рдВрдХ-рдЯрд╛рдЗрдо рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд┐рд▓реНрдб рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред
рдЖрдк PDB рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ /рдЬрд╝реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ $рд╕реАрд╕реАрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕
рдЪрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
env['CCPDBFLAGS'] = ['${(PDB рдФрд░ "/Zi /Fd%s" % рдлрд╝рд╛рдЗрд▓(PDB)) рдпрд╛ ""}']
рдПрдХ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП /рдЬрд╝реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛
рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП .pdb рдлрд╝рд╛рдЗрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ $рд╕реАрд╕реАрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕ рдЪрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
env['CCPDBFLAGS'] = '/Zi /Fd${TARGET}.pdb'
рд╕реАрд╕реАрд╕рдВрд╕реНрдХрд░рдг
рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░рдорд╛рдВрдХред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрдЯ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреАред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реА рдХрдореНрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╕реАрдлрд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдпред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдВрддрд░рд┐рдХ CFile рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм
Lex (.l) рдпрд╛ YACC (.y) рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ C рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддреНрдпрдп,
рдмреЗрд╢рдХ, .c (рд▓реЛрдЕрд░ рдХреЗрд╕) рд╣реИред рдХреЗрд╕-рдЗрдирд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╕рд┐рд╕реНрдЯрдо (рдЬреИрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ) рдкрд░, SCons рднреА
.C (рдЕрдкрд░ рдХреЗрд╕) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ C рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИред
рд╕реАрдПрдлрдПрд▓рдЬреАрдПрд╕
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ C; C++ рдирд╣реАрдВ).
рдкрд░рд┐рд╡рд░реНрддрди_рд╡рд┐рд╢реЗрд╖рдлрд╝рд╛рдЗрд▓
рдкреИрдХреЗрдЬрд┐рдВрдЧ рдмрд┐рд▓реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реБрдХ (RPM рдХреЗ рд▓рд┐рдП .spec,
Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг, MSI рдХреЗ рд▓рд┐рдП .wxs)ред рдпрджрд┐ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП SCons рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ. XXX
рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рдЪреИрдВрдЬ
рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдкрд╛рда рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред рдпрд╣
RPM .spec рдлрд╝рд╛рдЗрд▓ рдХреЗ %changelog рдЕрдиреБрднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
_рд╕рдВрдпреЛрдЬрд┐рдд
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ $_CPPINCFLAGS. рдЗрд╕рдореЗрдВ рдЪрд╛рд░ рдпрд╛ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ
рддрд░реНрдХ: рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╕рд░реНрдЧ, рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдПрдХ рдкреНрд░рддреНрдпрдп
рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ, рдЪрд░ рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг, рдФрд░ рдПрдХ
рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдкрд╣рд▓реЗ рд╕реВрдЪреА рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
env['_CPPINCFLAGS'] = '$( ${_concat(INCPREFIX, CPPPATH, INCSUFFIX, __env__, RDirs)} $)',
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░рдбрд╛рдпрд░
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .sconf_temp рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ SConstruct рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░рд▓реЙрдЧ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ config.log рд╣реИ
SConstruct рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛.
_рд╕реАрдкреАрдкреАрдбреАрдПрдлрдлреНрд▓реИрдЧреНрд╕
C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкред $_CPPDEFFLAGS рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЬреЛрдбрд╝рдХрд░ $CPPDEFPREFIX рдФрд░ $CPPDEFSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ
in $CPPDEFINES.
рд╕реАрдкреАрдкреАрдбрд┐рдлрд╛рдЗрдиреНрд╕
рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ред рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $_CPPDEFFLAGS
рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рдКрдкрд░ рджреЗрдЦреЗрдВ), рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдореВрд▓реНрдп рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
of $CPPDEFINES:
If $CPPDEFINES рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдХреЗ рдорд╛рди $CPPDEFPREFIX рдФрд░ $CPPDEFSUFFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
# POSIX рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ -Dxyz рдЬреЛрдбрд╝ рджреЗрдЧрд╛,
# рдФрд░ /Dxyz рдХреЛ Microsoft Visual C++ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдмрджрд▓реЗрдВред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPDEFINES='xyz')
If $CPPDEFINES рдПрдХ рд╕реВрдЪреА рд╣реИ, рдХреЗ рдорд╛рди $CPPDEFPREFIX рдФрд░ $CPPDEFSUFFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ
рд╕реВрдЪреАред рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рд╕реВрдЪреА рдпрд╛ рдЯрдкрд▓ рд╣реИ, рддреЛ рдкрд╣рд▓рд╛ рдЖрдЗрдЯрдо рдирд╛рдо рд╣реИ
рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЖрдЗрдЯрдо рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд╣реИ:
# POSIX рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ -DB=2 -DA рдЬреЛрдбрд╝ рджреЗрдЧрд╛,
# рдФрд░ /DB=2 /DA рдХреЛ Microsoft Visual C++ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPDEFINES=[('B', 2), 'A'])
If $CPPDEFINES рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ, рдХреЗ рдореВрд▓реНрдпреЛрдВ $CPPDEFPREFIX рдФрд░ $CPPDEFSUFFIX
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рд╢рдмреНрджрдХреЛрд╢ред рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрдХреЛрд╢ рдЖрдЗрдЯрдо рдХреА рдХреБрдВрдЬреА рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдПрдХ рдирд╛рдо рд╣реИ
рдЖрдЗрдЯрдо рдХрд╛ рд╕рдВрдЧрдд рдорд╛рди; рдпрджрд┐ рдорд╛рди None рд╣реИ, рддреЛ рдирд╛рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдорд╛рди рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕реНрдкрд╖реНрдЯ рдореВрд▓реНрдпред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдЭрдВрдбреЗ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐
рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ scons рдЪрд▓рд╛рдиреЗ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕реБрд╕рдВрдЧрдд рд╣реЛрддрд╛ рд╣реИред
# POSIX рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ -DA -DB=2 рдЬреЛрдбрд╝ рджреЗрдЧрд╛,
# рдФрд░ /DA /DB=2 рдХреЛ Microsoft Visual C++ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдмрджрд▓реЗрдВред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPDEFINES={'B':2, 'A':рдХреЛрдИ рдирд╣реАрдВ})
рд╕реАрдкреАрдкреАрдбреАрдПрдлрдкреНрд░реАрдлрд┐рдХреНрд╕
рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧред
рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $CPPDEFINES
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_CPPDEFFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд╕реАрдкреАрдкреАрдбреАрдПрдлрд╕рдлрд╝рд┐рдХреНрд╕
рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред
рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $CPPDEFINES рдирд┐рд░реНрдорд╛рдг
рдЪрд░ рдЬрдм $_CPPDEFFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд┐рдХрд▓реНрдкред рдЗрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░, рдЬрд┐рд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕реА рдФрд░ рд╕реА++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИ
$рд╕реАрд╕реАрдХреЙрдо, $SHCCCOM, $CXXCOM рдФрд░ $SHCXXCOM рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреНрд╕, рд▓реЗрдХрд┐рди рдпрд╣ рднреА $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо,
$SHFORTRANPPCOM, $F77рдкреАрдкреАрдХреЙрдо рдФрд░ $SHF77PPCOM рдлреЛрд░рдЯреНрд░рд╛рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЗрдВ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓, рдФрд░ $рдПрдПрд╕рдкреАрдкреАрдХреЙрдо рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓, рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣
рдЪрд░ рдХрд░рддрд╛ рд╣реИ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $CPPPATH. рджреЗрдЦрдирд╛ $_CPPINCFLAGS, рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
_рд╕реАрдкреАрдкреАрдЖрдИрдПрдирд╕реАрдлреНрд▓реИрдЧреНрд╕
C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_CPPINCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $CPPPATH.
рд╕реАрдкреАрдкреАрдкреАрдПрде
рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЬрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЙрдирдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред
C/C++ рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред
CCFLAGS рдпрд╛ CXXFLAGS рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░ред рдиреЛрдЯ: CPPPATH рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо SConscript рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦреЗ рдЬрд╛рдПрдВрдЧреЗ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдЖрджреЗрд╢ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдХреЛрдВрд╕ рдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPPATH='#/рд╢рд╛рдорд┐рд▓')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPPATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_CPPINCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $CPPPATH. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП CPPPATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_CPPINCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (CCCOM="my_compiler $_CPPINCFLAGS -c -o $TARGET $SOURCE")
рд╕реАрдкреАрдкреАрдкреНрд░рддреНрдпрдп
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ (#include рдкрдВрдХреНрддрд┐рдпрд╛рдБ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рд╣реИ:
[".рд╕реА", ".рд╕реА", ".cxx", ".рд╕реАрдкреАрдкреА", ".рд╕реА++", ".рд╕реАрд╕реА",
".h", ".H", ".hxx", ".hpp", ".hh",
".рдПрдл", ".fpp", ".FPP",
".рдПрдо", ".рдорд┐рдореА",
".рдПрд╕", ".spp", ".SPP"]
CVS
рд╕реАрд╡реАрдПрд╕ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп.
CVSCOFLAGS
рд╡реЗ рд╡рд┐рдХрд▓реНрдк рдЬреЛ CVS рдЪреЗрдХрдЖрдЙрдЯ рдЙрдкрдХрдорд╛рдВрдб рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реАрд╡реАрдПрд╕рдХреЙрдо
рд╕реАрд╡реАрдПрд╕ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рд╕реА.рд╡реА.рдПрд╕.рд╕реА.рдУ.рдПрдо.рдПрд╕.рдЯреА.рдЖрд░.
CVS рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $рд╕реАрд╡реАрдПрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рд╕реАрд╡реАрдПрд╕рдлреНрд▓реИрдЧреНрд╕
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ CVS рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ -d $CVSREPOSITORY рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рд╕реАрд╡реАрдПрд╕рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА
CVS рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХрд╛ рдкрдеред рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $CVSFLAGS рдореВрд▓реНрдп.
рд╕реАрдПрдХреНрд╕рдПрдХреНрд╕
рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░ред
CXXCOM
C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ $CXXFLAGS рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
CXXCOMSTR
рдЬрдм C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ (рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $CXXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(CXXCOMSTR = "рд╕реНрдерд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ $TARGET рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ")
CXXрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдпред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдВрддрд░рд┐рдХ CXXFile рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм
Lex (.ll) рдпрд╛ YACC (.yy) рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ C++ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддреНрдпрдп рд╣реИ
.cc. SCons .cpp, .cxx, .c++, рдФрд░ .C++ рдкреНрд░рддреНрдпрдп рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреА C++ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓реЗрдВ, рдФрд░ .mm рдкреНрд░рддреНрдпрдп рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ C++ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВред рдХреЗрд╕-рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╕рд┐рд╕реНрдЯрдо рдкрд░
(рд▓рд┐рдирдХреНрд╕, рдпреВрдирд┐рдХреНрд╕, рдФрд░ рдЕрдиреНрдп POSIX-рд╕рдорд╛рди), SCons .C (рдЕрдкрд░ рдХреЗрд╕) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреА C++ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ
рдлрд╛рдЗрд▓реЗрдВ.
CXXрдлрд╝реНрд▓реИрдЧ
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХреЗ рдореВрд▓реНрдп $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕, рддрд╛рдХрд┐ рд╕реЗрдЯрд┐рдВрдЧ $рд╕реАрд╕реАрдлреНрд▓реИрдЧреНрд╕ C рдФрд░ C++ рджреЛрдиреЛрдВ рд╕рдВрдХрд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк
рдпрджрд┐ рдЖрдк C++-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдпрд╛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ $CXXFLAGS.
CXXрд╕рдВрд╕реНрдХрд░рдг
C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░рдорд╛рдВрдХред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрдЯ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреА
рд╡рд┐рд╢рд┐рд╖реНрдЯ C++ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
DC
рдбреАрд╕реАред
DCOM
рдбреАрд╕реАрдУрдПрдо.
рдбреАрдбреАрдмрдЧ
рдбреАрдбреАрдмрдЧ.
_рдбреАрдбреАрдмрдЧрдлреНрд▓реИрдЧреНрд╕
_рдбреАрдбреАрдмрдЧрдлреНрд▓реИрдЧреНрд╕.
DDEBUGрдкреНрд░реАрдлрд┐рдХреНрд╕
DDEBUGрдкреНрд░реАрдлрд┐рдХреНрд╕.
рдбреАрдбреАрдмрдЧрд╕рдлрд╝рд┐рдХреНрд╕
рдбреАрдбреАрдмрдЧрд╕рдлрд╝рд┐рдХреНрд╕.
рд╡рд░реНрдгрди
рдкреИрдХреЗрдЬ рдХреА рдЬрд╛ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рд╡рд┐рд╡рд░рдгред рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд╣ рднрд╛рдЧ рдЬреЛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдмрд┐рд▓реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рд╡рд░рдг_рднрд╛рд╖рд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдВрдмрд╛ рд╡рд┐рд╡рд░рдг lang. рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
RPM .spec рдлрд╝рд╛рдЗрд▓ рдХрд╛ %description -l рдЕрдиреБрднрд╛рдЧ.
рдбреАрдлрд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдбреАрдлрд╛рдЗрд▓рд╕рдлрд┐рдХреНрд╕.
рдбреАрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕.
_рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
_рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕.
рдбреАрдлреНрд▓реИрдЧреНрд╕
рдбреАрдлреНрд▓реИрдЧреНрд╕.
рдбреАрдлреНрд▓реИрдЧрд╕рдлрд╝рд┐рдХреНрд╕
рдбреАрдлреНрд▓реИрдЧрд╕рдлрд╝рд┐рдХреНрд╕.
_DINCFLAGS
_DINCFLAGS.
DINCPREFIX
DINCPREFIX.
DINCSUFFIX
DINCSUFFIX.
рдбрд┐рд░
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ Dir рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ Dir рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рдбрд╛рдпрд░
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рд╕реВрдЪреА рдХреЛ Dir рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдбреАрдПрд▓рдЖрдИрдмреА
рдбреАрдПрд▓рдЖрдИрдмреА.
рдбреАрдПрд▓рдЖрдИрдмреАрдХреЙрдо
рдбреАрдПрд▓рдЖрдИрдмреАрдХреЙрдо.
_рдбреАрдПрд▓рдЖрдИрдмреАрдбреАрдЖрдИрдЖрд░рдПрдлрдПрд▓рдПрдЬреАрдПрд╕
_рдбреАрдПрд▓рдЖрдИрдмреАрдбреАрдЖрдИрдЖрд░рдПрдлрдПрд▓рдПрдЬреАрдПрд╕.
рдбреАрд▓рд┐рдмрдбреАрдЖрдИрдЖрд░рдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрд▓рд┐рдмрдбреАрдЖрдИрдЖрд░рдкреНрд░реАрдлрд┐рдХреНрд╕.
рдбреАрд▓рд┐рдмрдбреАрдЖрдИрдЖрд░рд╕рдлрд╝рд┐рдХреНрд╕
рдбреАрд▓рд┐рдмрдбреАрдЖрдИрдЖрд░рд╕рдлрд╝рд┐рдХреНрд╕.
рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕.
_рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧреНрд╕
_рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧреНрд╕.
рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧрд╕рдлрд┐рдХреНрд╕
рдбреАрдПрд▓рдЖрдИрдмреАрдлреНрд▓реИрдЧрд╕рдлрд┐рдХреНрд╕.
рдбреАрдПрд▓рдЖрдИрдмреАрд▓рд┐рдВрдХрдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрдПрд▓рдЖрдИрдмреАрд▓рд┐рдВрдХрдкреНрд░реАрдлрд┐рдХреНрд╕.
рдбреАрдПрд▓рдЖрдИрдмреАрд▓рд┐рдВрдХрд╕рдлрд┐рдХреНрд╕
рдбреАрдПрд▓рдЖрдИрдмреАрд▓рд┐рдВрдХрд╕рдлрд┐рдХреНрд╕.
D- рд▓рд┐рдВрдХ
рдбреАрд▓рд┐рдВрдХ.
рдбреАрд▓рд┐рдВрдХрдХреЙрдо
рдбреАрд▓рд┐рдВрдХрдХреЙрдо.
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕.
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕.
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧрд╕рдлрд┐рдХреНрд╕
рдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧрд╕рдлрд┐рдХреНрд╕.
DOCBOOK_рдбрд┐рдлрд╝рд╛рд▓реНрдЯ_XSL_EPUB
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрдИрдкрдм рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░, рдпрджрд┐
рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп XSLT рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_HTML
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрдПрдЪрдЯреАрдПрдордПрд▓ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░, рдпрджрд┐
рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп XSLT рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
DOCBOOK_DEFAULT_XSL_HTMLCHUNKED
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ DocbookHtmlрдЪрдВрдХреНрдб рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рдмрд┐рд▓реНрдбрд░
рдпрджрд┐ рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп XSLT рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ XSLT рдХреЛ XSLT рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
DOCBOOK_DEFAULT_XSL_HTMLрд╕рд╣рд╛рдпрддрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХHtmlрдорджрдж рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░,
рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп XSLT рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_MAN
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрдореИрди рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░, рдпрджрд┐ рдирд╣реАрдВ
рдЕрдиреНрдп XSLT рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
DOCBOOK_рдбрд┐рдлрд╝реЙрд▓реНрдЯ_XSL_рдкреАрдбреАрдПрдл
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрдкреАрдбреАрдПрдл рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░, рдпрджрд┐ рдирд╣реАрдВ
рдЕрдиреНрдп XSLT рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
DOCBOOK_DEFAULT_XSL_SLIDESHTML
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕Html рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рдмрд┐рд▓реНрдбрд░
рдпрджрд┐ рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп XSLT рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ XSLT рдХреЛ XSLT рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
DOCBOOK_DEFAULT_XSL_SLIDESрдкреАрдбреАрдПрдл
рдбрд┐рдлрд╝реЙрд▓реНрдЯ XSLT рдлрд╝рд╛рдЗрд▓ рдбреЙрдХрдмреБрдХрд╕реНрд▓рд╛рдЗрдбреНрд╕рдкреАрдбреАрдПрдл рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдмрд┐рд▓реНрдбрд░,
рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп XSLT рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
DOCрдмреБрдХ_FOP
рдкреАрдбреАрдПрдл рд░реЗрдВрдбрд░рд░ fop рдпрд╛ xep рдХрд╛ рдкрде, рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (fop рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ
рдкреНрд░рдердо)ред
DOCBOOK_FOPCOM
рдкреАрдбреАрдПрдл рд░реЗрдВрдбрд░рд░ fop рдпрд╛ xep рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди.
DOCBOOK_FOPCOMSTR
рдЬрдм fop рдпрд╛ xep рдЬреИрд╕реЗ рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ PDF рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдПрдХ XML рдлрд╝рд╛рдЗрд▓.
DOCBOOK_FOPFLAGS
рдкреАрдбреАрдПрдл рд░реЗрдВрдбрд░рд░ fop рдпрд╛ xep рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдлрд╝реНрд▓реИрдЧ.
DOCBOOK_XMLINT
рдмрд╛рд╣рд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп xmllint рдХрд╛ рдкрде, рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдпрд╣ рд╣реИ
рдХреЗрд╡рд▓ XIncludes рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ libxml2 рдпрд╛ lxml рдкрд╛рдпрдерди рдирд╣реАрдВ рд╣реИ
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
DOCBOOK_XMLLINTCOM
рдмрд╛рд╣реНрдп рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп xmllint рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди.
DOCBOOK_XMLLINTCOMSTR
рдЬрдм xmllint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рджреА рдЧрдИ XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП XIncludes рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред
DOCBOOK_XMLLINTFLAGS
рдмрд╛рд╣реНрдп рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп xmllint рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдзреНрд╡рдЬ.
DOCBOOK_XSLTPROC
рдмрд╛рд╣реНрдп рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп xsltproc (рдпрд╛ рд╕реИрдХреНрд╕рди, xalan) рдХрд╛ рдкрде, рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд╣реИ
рд╕реНрдерд╛рдкрд┐рддред рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ XSL рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐
рд╡рд░реНрддрдорд╛рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрдИ libxml2 рдпрд╛ lxml рдкрд╛рдпрдерди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреАред
DOCBOOK_XSLTPROCCOM
рдмрд╛рд╣реНрдп рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп xsltproc (рдпрд╛ saxon, xalan) рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди.
DOCBOOK_XSLTPROCCOMSTR
рдЬрдм xsltproc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП XSLT рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ XML рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╢реИрд▓реА рдкрддреНрд░рдХред
DOCBOOK_XSLTPROCFLAGS
рдмрд╛рд╣реНрдп рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп xsltproc (рдпрд╛ saxon, xalan) рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдлрд╝реНрд▓реИрдЧ.
DOCBOOK_XSLTPROCPARAMS
рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ XSLT рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди
XSL рдЦреБрдж рд╣реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ
рдХреНрд░рдорд╢рдГ рд╕реИрдХреНрд╕рди рдФрд░ рд╕реИрдХреНрд╕рди-рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреА рдХреЗ рд▓рд┐рдПред
рдбреАрдкреАрдПрдЯреАрдПрдЪ
рдбреАрдкрд╛рде.
рдбреАрдкреНрд░рддреНрдпрдп
рдЖрдпрд╛рддрд┐рдд D рдкреИрдХреЗрдЬ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреАред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рд╣реИ:
['редрдбреА']
_рдбреАрд╡рд░рдлреНрд▓реИрдЧреНрд╕
_рдбреАрд╡рд░рдлреНрд▓реИрдЧреНрд╕.
рдбреАрд╡реАрдИрдЖрд░рдкреНрд░реАрдлрд┐рдХреНрд╕
рдбреАрд╡реАрдИрдЖрд░рдкреНрд░реАрдлрд┐рдХреНрд╕.
рд╕рдВрд╕реНрдХрд░рдг
рд╕рдВрд╕реНрдХрд░рдг.
рдбреАрд╡реАрдИрдЖрд░рд╕рдлрд╝рд┐рдХреНрд╕
рдбреАрд╡реАрдИрдЖрд░рд╕рдлрд╝рд┐рдХреНрд╕.
рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдл
TeX DVI рдлрд╝рд╛рдЗрд▓ рдХреЛ PDF рдлрд╝рд╛рдЗрд▓ рдХрдирд╡рд░реНрдЯрд░.
рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдлрдХреЙрдо
TeX DVI рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ PDF рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдлрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм TeX DVI рдлрд╝рд╛рдЗрд▓ рдХреЛ PDF рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $DVIPDFCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдбреАрд╡реАрдЖрдИрдкреАрдбреАрдПрдлрдлреНрд▓реИрдЧреНрд╕
TeX DVI рдлрд╝рд╛рдЗрд▓ рд╕реЗ PDF рдлрд╝рд╛рдЗрд▓ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВред
рдбреАрд╡реАрдЖрдИрдкреАрдПрд╕
TeX DVI рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдирд╡рд░реНрдЯрд░.
рдбреАрд╡реАрдЖрдИрдкреАрдлреНрд▓реИрдЧреНрд╕
TeX DVI рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред
рд▓рд┐
рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ред $рдИрдПрдирд╡реА рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рд╕рднреА рд╕реВрдЪреА рдорд╛рди рдкрде рд╡рд┐рднрд╛рдЬрдХ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ
рдЧреИрд░-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЛ рдмрд╕ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, scons
рдХрд░ рджреЗрддрд╛ рд╣реИ рдирд╣реАрдВ рдЬрдм рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП scons рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдмрд▓ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░реЗрдВ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рддрд╛рдХрд┐ рдмрд┐рд▓реНрдб рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ
scons рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЖрдпрд╛рдд os
env = рдкрд░реНрдпрд╛рд╡рд░рдг(ENV = os.environ)
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ рдХреЛ рд╣реА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдкрде рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░, рддрд╛рдХрд┐ scons рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ
рдЖрд╣реНрд╡рд╛рди рд╢реЗрд▓ (рдпрд╛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛) рдХреЗ рд░реВрдк рдореЗрдВ:
рдЖрдпрд╛рдд os
env = рдкрд░реНрдпрд╛рд╡рд░рдг(ENV = {'PATH' : os.environ['PATH']})
рднрд╛рдЧрдиреЗ
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдПрд╕реНрдХреЗрдк рд╢реЗрд▓ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рддрд░реНрдХ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП: рдПрд╕реНрдХреЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ; рдФрд░
рдмрдЪреА рд╣реБрдИ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдБред
F03
Fortran 03 рд╕рдВрдХрд▓рдХред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рди рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$F03 рдпрджрд┐ рдЖрдкрдХреЛ Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдл03рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F03COM рдпрджрд┐ рдЖрдкрдХреЛ Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиред
F03COMSTR
рдЬрдм Fortran 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F03COM or $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F03рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F03 рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣
['.f03'] рд╣реИ
F03рдЭрдВрдбреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ Fortran 03 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдпрд╣ рдЪрд░ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $F03рдкрде. рджреЗрдЦрдирд╛ $_F03INCFLAGS рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F03рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХред
_F03INCрдЭрдВрдбреЗ
рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_F03INCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $F03рдкрде.
F03рдкрде
Fortran 03 рдХрдореНрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ $F03рдлрд╝реНрд▓реИрдЧ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░. рдиреЛрдЯ: рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо $F03рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛
SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред scons рдХреЛ рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F03рдкрде
рдпрджрд┐ рдЖрдкрдХреЛ Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдорд┐рд▓ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде рдЪрд░, рдЬреЛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рд╕рдВрдХрд▓рдХ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F03PATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F03PATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_F03INCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $F03рдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F03PATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_F03INCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (F03COM="my_compiler $_F03INCFLAGS -c -o $TARGET $SOURCE")
F03рдкреАрдкреАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред
$F03рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк
рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F03рдкреАрдкреАрдХреЙрдо рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
F03рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдирд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F03рдкреАрдкреАрдХреЙрдо
or $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F03PPрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ F03 рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд░рд┐рдХреНрдд рд╣реИ
F08
Fortran 08 рд╕рдВрдХрд▓рдХред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рди рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$F08 рдпрджрд┐ рдЖрдкрдХреЛ Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдл08рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F08COM рдпрджрд┐ рдЖрдкрдХреЛ Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиред
F08COMSTR
рдЬрдм Fortran 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F08COM or $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F08рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F08 рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣
['.f08'] рд╣реИ
F08рдЭрдВрдбреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ Fortran 08 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдпрд╣ рдЪрд░ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $F08рдкрде. рджреЗрдЦрдирд╛ $_F08INCFLAGS рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F08рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХред
_F08INCрдЭрдВрдбреЗ
рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_F08INCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $F08рдкрде.
F08рдкрде
Fortran 08 рдХрдореНрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ $F08рдлрд╝реНрд▓реИрдЧ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░. рдиреЛрдЯ: рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо $F08рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛
SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред scons рдХреЛ рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F08рдкрде
рдпрджрд┐ рдЖрдкрдХреЛ Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдорд┐рд▓ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде рдЪрд░, рдЬреЛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рд╕рдВрдХрд▓рдХ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F08PATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F08PATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_F08INCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $F08рдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F08PATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_F08INCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (F08COM="my_compiler $_F08INCFLAGS -c -o $TARGET $SOURCE")
F08рдкреАрдкреАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред
$F08рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк
рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F08рдкреАрдкреАрдХреЙрдо рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
F08рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдирд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F08рдкреАрдкреАрдХреЙрдо
or $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F08PPрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ F08 рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд░рд┐рдХреНрдд рд╣реИ
F77
Fortran 77 рд╕рдВрдХрд▓рдХред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рди рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$F77 рдпрджрд┐ рдЖрдкрдХреЛ Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдл77рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F77COM рдпрджрд┐ рдЖрдкрдХреЛ Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиред
F77COMSTR
рдЬрдм Fortran 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F77COM or $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F77рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F77 рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣
['.f77'] рд╣реИ
F77рдЭрдВрдбреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ Fortran 77 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдпрд╣ рдЪрд░ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $F77рдкрде. рджреЗрдЦрдирд╛ $_F77INCFLAGS рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F77рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХред
_F77INCрдЭрдВрдбреЗ
рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_F77INCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $F77рдкрде.
F77рдкрде
Fortran 77 рдХрдореНрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ $F77рдлрд╝реНрд▓реИрдЧ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░. рдиреЛрдЯ: рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо $F77рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛
SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред scons рдХреЛ рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F77рдкрде
рдпрджрд┐ рдЖрдкрдХреЛ Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдорд┐рд▓ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде рдЪрд░, рдЬреЛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рд╕рдВрдХрд▓рдХ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F77PATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F77PATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_F77INCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $F77рдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F77PATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_F77INCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (F77COM="my_compiler $_F77INCFLAGS -c -o $TARGET $SOURCE")
F77рдкреАрдкреАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред
$F77рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк
рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F77рдкреАрдкреАрдХреЙрдо рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
F77рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдирд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F77рдкреАрдкреАрдХреЙрдо
or $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F77PPрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ F77 рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд░рд┐рдХреНрдд рд╣реИ
F90
Fortran 90 рд╕рдВрдХрд▓рдХред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рди рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$F90 рдпрджрд┐ рдЖрдкрдХреЛ Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдл90рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F90COM рдпрджрд┐ рдЖрдкрдХреЛ Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиред
F90COMSTR
рдЬрдм Fortran 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F90COM or $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F90рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F90 рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣
['.f90'] рд╣реИ
F90рдЭрдВрдбреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ Fortran 90 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдпрд╣ рдЪрд░ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $F90рдкрде. рджреЗрдЦрдирд╛ $_F90INCFLAGS рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F90рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХред
_F90INCрдЭрдВрдбреЗ
рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_F90INCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $F90рдкрде.
F90рдкрде
Fortran 90 рдХрдореНрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ $F90рдлрд╝реНрд▓реИрдЧ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░. рдиреЛрдЯ: рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо $F90рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛
SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред scons рдХреЛ рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F90рдкрде
рдпрджрд┐ рдЖрдкрдХреЛ Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдорд┐рд▓ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде рдЪрд░, рдЬреЛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рд╕рдВрдХрд▓рдХ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F90PATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F90PATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_F90INCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $F90рдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F90PATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_F90INCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (F90COM="my_compiler $_F90INCFLAGS -c -o $TARGET $SOURCE")
F90рдкреАрдкреАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред
$F90рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк
рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F90рдкреАрдкреАрдХреЙрдо рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
F90рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F90рдкреАрдкреАрдХреЙрдо or $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо
(рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F90PPрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ F90 рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд░рд┐рдХреНрдд рд╣реИ
F95
Fortran 95 рд╕рдВрдХрд▓рдХред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рди рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$F95 рдпрджрд┐ рдЖрдкрдХреЛ Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдл95рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F95COM рдпрджрд┐ рдЖрдкрдХреЛ Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиред
F95COMSTR
рдЬрдм Fortran 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F95COM or $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F95рдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F95 рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣
['.f95'] рд╣реИ
F95рдЭрдВрдбреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ Fortran 95 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдпрд╣ рдЪрд░ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $F95рдкрде. рджреЗрдЦрдирд╛ $_F95INCFLAGS рдиреАрдЪреЗ, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F95рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХред
_F95INCрдЭрдВрдбреЗ
рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХреЗ рдореВрд▓реНрдп $_F95INCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $INCPREFIX рдФрд░ $INCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $F95рдкрде.
F95рдкрде
Fortran 95 рдХрдореНрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ $F95рдлрд╝реНрд▓реИрдЧ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреИрдирд░. рдиреЛрдЯ: рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо $F95рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛
SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрдм рд╡реЗ рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред scons рдХреЛ рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХреЗ рдореВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #: рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $F95рдкрде
рдпрджрд┐ рдЖрдкрдХреЛ Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдорд┐рд▓ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде рдЪрд░, рдЬреЛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ Fortran рд╕рдВрдХрд▓рдХ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F95PATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(F95PATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_F95INCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ $F95рдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП F95PATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_F95INCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (F95COM="my_compiler $_F95INCFLAGS -c -o $TARGET $SOURCE")
F95рдкреАрдкреАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред
$F95рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк
рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ $F95рдкреАрдкреАрдХреЙрдо рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо рдЪрд░, рдЬреЛ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
F95рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдирд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $F95рдкреАрдкреАрдХреЙрдо
or $рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
F95PPрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ F95 рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд░рд┐рдХреНрдд рд╣реИ
рдкрдЯреНрдЯрд┐рдХрд╛
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмрдирд╛рдпрд╛ред
рдлреЛрд░рдЯреНрд░рд╛рдиреА
рдлреЛрд░реНрдЯреНрд░рд╛рди рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░.
рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк $рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS,
$_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ, рддрдерд╛ $_FORTRANINCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
FORTRANFILESUPFIXES
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП FORTRAN рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
рдпрд╣ ['.f', '.for', '.ftn'] рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣
рдЪрд░ рдХрд░рддрд╛ рд╣реИ рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -I (рдпрд╛ рд╕рдорд╛рди) рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
scons рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде. рджреЗрдЦрдирд╛ $_FORTRANINCFLAGS рдФрд░
$_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ, рдиреАрдЪреЗ, рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдПред
_рдлреЛрд░рдЯреНрд░рд╛рдирдЗрдВрдХрдлреНрд▓реИрдЧреНрд╕
рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВред рдХрд╛ рдореВрд▓реНрдп $_FORTRANINCFLAGS рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рдХрд░/рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
$INCPREFIX рдФрд░ $INCSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде.
FORTRANMODDIR
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдлрд╛рдЗрд▓ рд░рдЦрдиреА рдЪрд╛рд╣рд┐рдП
рдпрд╣ рдЪрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рдХреНрдд рд╣реИред рдХреБрдЫ рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрдХрд▓рдХ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ
рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдкрде рдореЗрдВ рднреА рдЬреЛрдбрд╝реЗрдВред
FORTRANMODDIRPREFIX
рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧред
рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
FORTRANMODDIRSUFFIX
рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред
рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ
рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЬрд╣рд╛рдВ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░
рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЗ рдореВрд▓реНрдп $_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рдХрд░/рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░рдкреНрд░реАрдлрд┐рдХреНрд╕ рдФрд░
$FORTRANMODDIRSUFFIX рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрд┐рд░.
FORTRANMODрдкреНрд░реАрдлрд┐рдХреНрд╕
рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдЙрдкрд╕рд░реНрдЧред SCons рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдлреЛрд░реНрдЯреНрд░рд╛рди
рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд░реНрдз-рдорд╛рдирдХ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ
рдореЙрдбреНрдпреВрд▓_рдирд╛рдо.mod. рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдЪрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рдХ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдкрд╛рдЯреА рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдорд╛рди scons рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕.
FORTRANMODSUFFIX
рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдпред SCons рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдлреЛрд░реНрдЯреНрд░рд╛рди
рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд░реНрдз-рдорд╛рдирдХ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ
рдореЙрдбреНрдпреВрд▓_рдирд╛рдо.mod. рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдЪрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ".mod" рдкрд░ рд╕реЗрдЯ рд╣реИред
рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдЬрд┐рдирдореЗрдВ рд╕рдВрдХрд▓рдХ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдкрд╛рдЯреА рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорд╛рди рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рдЪреВрдВрдХрд┐ рд╕реНрдХреЛрдиреНрд╕ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рдлреЛрд░рдЯреНрд░рд╛рдирдкрде
рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЙрдирдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
(рдХреБрдЫ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП) рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВред рдлреЛрд░рдЯреНрд░рд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ)
рдФрд░, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреИрди рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
FORTRANFLAGS рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдиреЛрдЯ:
FORTRANPATH рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦреЗ рдЬрд╛рдПрдВрдЧреЗ
рдЬрдм рд╡реЗ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХрд╛ рдореВрд▓ рдЙрдкрдпреЛрдЧ #:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(FORTRANPATH='#/include')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг (FORTRANPATH = рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_FORTRANINCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрд╛ $INCPREFIX рдФрд░ $INCSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП FORTRANPATH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_FORTRANINCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (FORTRANCOM="my_compiler $_FORTRANINCFLAGS -c -o $TARGET $SOURCE")
FORTRANPPCOM
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
$рдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕, $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕, $_CPPDEFFLAGS, $_рдлреЛрд░рдЯреНрд░рд╛рдирдореЛрдбрдлреНрд▓реИрдЧ, рддрдерд╛ $_FORTRANINCFLAGS
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
FORTRANPPCOMSTR
рдЬрдм рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдирд╛ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдлреЛрд░рдЯреНрд░рд╛рдирдкреАрдкреАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
FORTRANPPFILESUPFIXES
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП FORTRAN рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди + рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ
рдмреЛрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ ['.fpp', '.FPP'] рд╣реИ
FORTRANSUFFIXES
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ рдлреЛрд░реНрдЯреНрд░рд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
(INCLUDE рд▓рд╛рдЗрдиреЗрдВ рдФрд░ USE рдХрдерди)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рд╣реИ:
[".f", ".F", ".for", ".FOR", ".ftn", ".FTN", ".fpp", ".FPP",
".f77", ".F77", ".f90", ".F90", ".f95", ".F95"]
рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ gcc рдХреЗ рд╕рд╛рде, рдлреНрд░реЗрдорд╡рд░реНрдХ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрдереЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕реВрдЪреАред рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ-рд╢реИрд▓реА рдХреЗ рдЗрдирдХреНрд▓реВрдбреНрд╕ рдЬреИрд╕реЗ #include рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП .рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ (рджреЗрдЦреЗрдВ $рдлреНрд░реЗрдорд╡рд░реНрдХ)ред рдХреЗ рд▓рд┐рдпреЗ
рдЙрджрд╛рд╣рд░рдг:
env.AppendUnique(FRAMEWORKPATH='#myframeworkdir')
рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ
... -Fmyframeworkdir
рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП.
_рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде, рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ $рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде.
рдлреНрд░реЗрдорд╡рд░реНрдХрдкрдердкреНрд░реАрдлрд┐рдХреНрд╕
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ gcc рдХреЗ рд╕рд╛рде, FRAMEWORKPATH рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред (рджреЗрдЦреЗрдВ)
$рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ -F.
рдлреНрд░реЗрдорд╡рд░реНрдХрдкреНрд░реАрдлрд┐рдХреНрд╕
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде, рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧ (рджреЗрдЦреЗрдВ
$рдлреНрд░реЗрдорд╡рд░реНрдХ) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ -рдврд╛рдВрдЪрд╛.
_рдлреНрд░реЗрдорд╡рд░реНрдХ
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде, рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
FRAMEWORKS рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк.
рдЪреМрдЦрдЯреЗ
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдмрдВрдбрд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЦрд╛рд▓реА рд╕реВрдЪреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
env.AppendUnique(FRAMEWORKS=Split('рд╕рд┐рд╕реНрдЯрдо рдХреЛрдХреЛ рд╕рд┐рд╕реНрдЯрдордХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди'))
рдлреНрд░реЗрдорд╡рд░реНрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде, рдЕрдВрдд рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкреНрд░рджрддреНрдд рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╣реИрдВ
рдПрдХ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреАред (рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рдХрд╛рдлреА рд╣рдж рддрдХ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
$рдлреНрд░реЗрдорд╡рд░реНрдХрдкрде, $рдлреНрд░реЗрдорд╡рд░реНрдХрдкрд╛рдердкреНрд░реАрдлрд┐рдХреНрд╕, $рдлреНрд░реЗрдорд╡рд░реНрдХрдкреНрд░реАрдлрд┐рдХреНрд╕ рдФрд░ $рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪрд░
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред)
GS
рдШреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреАрдПрд╕рдХреЙрдо
рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреВрд░реНрдг Ghostscript рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
тАЬ$GS $GSFLAGS -sOutputFile=$TARGET $SOURCESтАЭ рд╣реИред
рдЬреАрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░
рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП Ghostscript рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╣реИ
рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), рддреЛ $рдЬреАрдПрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдЬреАрдПрд╕рдПрдлрд▓реИрдЧреНрд╕
рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреАрдбреАрдПрдл рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдШреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди тАЬ-dNOPAUSE -dBATCH -sDEVICE=pdfwriteтАЭ рд╣реИ
рд╣реЛрд╕реНрдЯ_рдЖрд░реНрдХ
рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдирд╛рдоред рдпрджрд┐ рдХреЛрдИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рддрд░реНрдХ
рдЗрд╕ рдорд╛рди рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╣реИрдВрдбрд▓ред рдпрд╣ рдорд╛рди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Win32 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИред
Visual Studio рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛрд╕реНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░: рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкрд╛рдпрдерди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдЪрд░ рдХреЛ Environment() рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рд╕реЗрдЯрд┐рдВрдЧ
рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рдорд╛рдиреНрдп рдорд╛рди рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдирд┐рдореНрди рдХреЗ рд▓рд┐рдП рд╣реИрдВ $TARGET_ARCH.
рдлрд┐рд▓рд╣рд╛рд▓ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдУрдПрд╕ рднреАред
рд╣реЛрд╕реНрдЯ_рдУрдПрд╕
рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдирд╛рдоред рдпрджрд┐ рдХреЛрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рддрд░реНрдХ рд╕рдВрднрд╛рд▓ рд▓реЗрдЧрд╛
рдпрд╣ рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛ред рдпрд╣ рдорд╛рди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рджред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Win32 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИред
рдЖрдИрдбреАрдПрд▓рдкреНрд░рддреНрдпрдп
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ IDL рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
(#include рдпрд╛ import lines). рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рд╣реИ:
[".idl", ".рдЖрдИрдбреАрдПрд▓"]
IMPLIBNOVERSIONSYMLINKS
рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $SHLIBNOVERSIONSYMLINKS/$LDMODULENOVERSIONSYMLINKS рдмрдирд╛рддреЗ рд╕рдордп
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ
$SHLIBNOVERSIONSYMLINKS/$LDMODULENOVERSIONSYMLINKS рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐
рд╕рд┐рдореНрдмреЛрд▓рд┐рдХ рд▓рд┐рдВрдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдпрд╛ рдирд╣реАрдВред
IMPLIBPREFIX
рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, cygwin рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
(libfoo.dll.a) рдХреЛ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (cygfoo.dll) рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рдХрд░рддрд╛ рд╣реИред cyglink рд▓рд┐рдВрдХрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
$IMPLIBPREFIX 'рд▓рд┐рдм' рдФрд░ $SHLIBPREFIX 'cyg' рдХреЗ рд▓рд┐рдП.
IMPLIBSUFFIX
рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, cygwin рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
(libfoo.dll.a) рдХреЛ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (cygfoo.dll) рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рдХрд░рддрд╛ рд╣реИред cyglink рд▓рд┐рдВрдХрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
$IMPLIBSUFFIX '.dll.a' рдФрд░ $SHLIBSUFFIX '.dll' рдореЗрдВ.
рдЗрдореНрдкреНрд▓рд┐рдмрд╡рд░реНрдЬрди
рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $SHLIBрд╕рдВрд╕реНрдХрд░рдг/$LDMODULEVERSION ... рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЖрдпрд╛рдд рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдпрджрд┐ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рддреЛ
$SHLIBрд╕рдВрд╕реНрдХрд░рдг/$LDMODULEVERSION ... рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЖрдпрд╛рдд рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреБрд╕реНрддрдХрд╛рд▓рдпред
рдирд┐рд╣рд┐рдд_рдХрдорд╛рдВрдб_рдирд┐рд░реНрднрд░рддрд╛рдПрдВ
рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ SCons рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВ
рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдХрдорд╛рдВрдб рдкрд░ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛
рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓
рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдХреЗ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдкрде рдЪрд░ рдореЗрдВ рд▓рд┐ рдкреНрд░рдпреБрдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг
рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдЪрд░ $IMPLICIT_COMMAND_DEPENDENCIES рдЧрд▓рдд рдорд╛рди рдкрд░ рд╕реЗрдЯ рд╣реИ
(рдХреЛрдИ рдирд╣реАрдВ, рдЧрд▓рдд, 0, рдЖрджрд┐), рддреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреА
рдЙрд╕ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(IMPLICIT_COMMAND_DEPENDENCIES = 0)
INCрдкреНрд░реАрдлрд┐рдХреНрд╕
C рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧред рдпрд╣
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $CPPPATH рдФрд░ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_CPPINCFLAGS рдФрд░ $_FORTRANINCFLAGS рдЪрд░ рд╣реИрдВ
рдЦреБрдж рд╕реЗ рдкреИрджрд╛ рд╣реБрдЖред
INCSUFFIX
C рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдпрд╣
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $CPPPATH рдФрд░ $рдлреЛрд░рдЯреНрд░рд╛рдирдкрде
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_CPPINCFLAGS рдФрд░ $_FORTRANINCFLAGS рдЪрд░ рд╣реИрдВ
рдЦреБрдж рд╕реЗ рдкреИрджрд╛ рд╣реБрдЖред
рдЗрдиреНрд╕рдЯрд╛рд▓
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝рдВрдХреНрд╢рдиред рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЧрдВрддрд╡реНрдп рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдореЛрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдмрд┐рдЯреНрд╕)ред рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрддрд╛ рд╣реИ
рддрд░реНрдХ:
def рдЗрдВрд╕реНрдЯреЙрд▓ (dest, рд╕реНрд░реЛрдд, env):
рдЧрдВрддрд╡реНрдп рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдирд╛рдо рд╣реИ. рд╕реНрд░реЛрдд рд╕реНрд░реЛрдд рдХрд╛ рдкрде рдирд╛рдо рд╣реИ
рдлрд╝рд╛рдЗрд▓. env рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг (рдирд┐рд░реНрдорд╛рдг рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╖) рд╣реИ
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд▓.
INSTALLSTR
рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреА рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ:
рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: "$SOURCE" рдХреЛ "$TARGET" рдХреЗ рд░реВрдк рдореЗрдВ
INTEL_C_COMPILER_рд╕рдВрд╕реНрдХрд░рдг
"intelc" рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд Intel C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреЗ рд▓рд┐рдПред
рдЬрд╛рд░
рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрдкрдХрд░рдг.
рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрдкрдХрд░рдг.
рдЬрд╛рд░реНрдЪрджрд┐рд░
рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрдкрдХрд░рдг рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) -C рд╡рд┐рдХрд▓реНрдк)ред
рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрдкрдХрд░рдг рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) -C рд╡рд┐рдХрд▓реНрдк)ред
рдЬрд╛рд░рдХреЙрдо
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдЬрд╛рд░реНрдХреЛрдорд╕реНрдЯреНрд░
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдЬрд╛рд░рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(JARCOMSTR = "JARchiving $SOURCES into $TARGET")
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдЬрд╛рд░рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(JARCOMSTR = "JARchiving $SOURCES into $TARGET")
рдЬрд╛рд░рдлреНрд▓реИрдЧреНрд╕
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдЗрд╕ рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ cf рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рдПрдВ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓.
рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡ рдЯреВрд▓ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдЗрд╕ рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ cf рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рдПрдВ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓.
рдЬрд╛рд░ рдкреНрд░рддреНрдпрдп
рдЬрд╛рд╡рд╛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .jar.
рдЬрд╛рд╡рд╛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .jar.
рдЬрд╛рд╡рд╛рдмреВрдЯрдХреНрд▓рд╛рд╕рдкрде
рдЙрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ javac рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛.
-рдмреВрдЯрдХреНрд▓рд╛рд╕рдкрде рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд░рдХреЗ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрде рдЕрд▓рдЧ рд╡рд░реНрдг (: UNIX/Linux/POSIX рдкрд░, ; Windows рдкрд░).
рдЬрд╛рд╡рд╛
рдЬрд╛рд╡рд╛ рдХрдореНрдкрд╛рдЗрд▓рд░.
рдЬрд╛рд╡рд╛рдХреЙрдо
рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк $JAVACFLAGS рдирд┐рд░реНрдорд╛рдг
рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
рдЬрд╛рд╡рд╛рдХреЙрдорд╕реНрдЯреНрд░
рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдЬрд╛рд╡реИрдХрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди)
рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
env = Environment(JAVACCOMSTR = "рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ $TARGETS рдХреЛ $SOURCES рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ")
рдЬрд╛рд╡рд╛рдлрд╝реНрд▓реИрдЧ
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдЬрд╛рд╡рд╛ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
JAVAрдХреНрд▓рд╛рд╕рдбрд╛рдпрд░
рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
JavaH рдмрд┐рд▓реНрдбрд░ рдХреЛ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА Java .class рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рд╢реБрд░реБрдЖрддред
рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕рдкрд╛рде
рдЙрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛ .class рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ javac рдФрд░ javah рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдВрдЧреА
-рдХреНрд▓рд╛рд╕рдкрд╛рде рд╡рд┐рдХрд▓реНрдкред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрде рдЕрд▓рдЧ рд╡рд░реНрдг (: UNIX/Linux/POSIX рдкрд░, ; Windows рдкрд░).
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ -рдХреНрд▓рд╛рд╕рдкрд╛рде рд╡рд┐рдХрд▓реНрдк.
SCons рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ $рдЬрд╛рд╡рд╛рдХреНрд▓рд╛рд╕рдкрд╛рде рдирд┐рд░реНрднрд░рддрд╛ .class рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ
рдлрд╛рдЗрд▓реЗрдВ.
JAVAрдХреНрд▓рд╛рд╕рд╕рдлрд╝рд┐рдХреНрд╕
рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .class.
рдЬрд╛рд╡рд╛
рд╕реА рд╣реЗрдбрд░ рдФрд░ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдЬрдирд░реЗрдЯрд░.
рдЬрд╛рд╡рд╛рдХреЙрдо
рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕реЛрдВ рд╕реЗ C рд╣реЗрдбрд░ рдФрд░ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк $рдЬрд╛рд╡рд╛рдлреНрд▓реИрдЧреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЗрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдЬрд╛рд╡рд╛рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм C рд╣реЗрдбрд░ рдФрд░ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдЬрд╛рд╡рд╛рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(JAVAHCOMSTR = "$SOURCES рд╕реЗ $TARGETS рд╣реЗрдбрд░/рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ")
рдЬрд╛рд╡рд╛рдлреНрд▓реИрдЧреНрд╕
рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП C рд╣реЗрдбрд░ рдФрд░ рд╕реНрдЯрдм рдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред
рдЬрд╛рд╡рд╛рд╕реЛрд░реНрд╕рдкрд╛рде
рдЙрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдирдкреБрдЯ .java рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ javac рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдВрдЧреА -рд╕реНрд░реЛрддрдкрде
рд╡рд┐рдХрд▓реНрдкред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рдкрде рдЕрд▓рдЧ рд╡рд░реНрдг (: UNIX/Linux/POSIX рдкрд░, ; Windows рдкрд░).
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ -рд╕реНрд░реЛрддрдкрде рд╡рд┐рдХрд▓реНрдк.
SCons рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ $рдЬрд╛рд╡рд╛рд╕реЛрд░реНрд╕рдкрде рдирд┐рд░реНрднрд░рддрд╛ .java рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ
рдлрд╛рдЗрд▓реЗрдВ.
рдЬрд╛рд╡рд╛рд╕рдлрд╝рд┐рдХреНрд╕
рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .java.
рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг
рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпреЗ рдЬрд╛ рд░рд╣реЗ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд╛рд╡рд╛ рдмрд┐рд▓реНрдбрд░. рдпрд╣ рд╣реИ рдирд╣реАрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд
рдЬрд╛рд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдо рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдпрд╣ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдкрдиреЗ javac рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЬрд╛рд╡рд╛ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 1.4 рд╣реИред
рдХрднреА-рдХрднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ 1.5 рдиреЗ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдмрджрд▓ рджрд┐рдП рд╣реИрдВ
рдиреЗрд╕реНрдЯреЗрдб рдЕрдирд╛рдо рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрдореЗрд▓ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИрдВ
SCons рдХреА рдЕрдкреЗрдХреНрд╖рд╛ javac рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдПрдЧреАред рд╕реЗрдЯрд┐рдВрдЧ $рдЬрд╛рд╡рд╛рд╕рдВрд╕реНрдХрд░рдг 1.5 (рдпрд╛
1.6, рдЬреИрд╕рд╛ рдЙрдкрдпреБрдХреНрдд рд╣реЛ) SCons рдХреЛ рдпрд╣ рдПрд╣рд╕рд╛рд╕ рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ 1.5 рдпрд╛ 1.6 рдмрд┐рд▓реНрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ
рдЖрдзреБрдирд┐рдХред
рд▓реЗрдЯреЗрдХреНрд╕
LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░.
рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо
LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░
LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(LATEXCOMSTR = "LaTeX рдЗрдирдкреБрдЯ $SOURCES рд╕реЗ $TARGET рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
рд▓реЗрдЯреЗрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕
LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред
рд▓реЗрдЯреЗрдХреНрд╕рд░рд┐рдЯреНрд░реАрдЬрд╝
рдпрджрд┐ .log рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ LaTeX рдХреЛ рдкреБрдирдГ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛
$рд▓реЗрдЯреЗрдХреНрд╕рдХреЙрдо рдХрдорд╛рдВрдб рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ try рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ
LaTeX рдХреЛ рддреАрди рдмрд╛рд░ рддрдХ рдкреБрдирдГ рдЪрд▓рд╛рдХрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ред
рд▓реЗрдЯреЗрдХреНрд╕рдкреНрд░рддреНрдпрдп
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ LaTeX рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
(\include рдпрд╛ \import рдлрд╝рд╛рдЗрд▓реЗрдВ). рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реВрдЪреА рд╣реИ:
[".tex", ".ltx", ".latex"]
рдПрд▓рдбреАрдореЙрдбреНрдпреВрд▓
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдорд╛рди рд╣реИ $SHLINK.
рдПрд▓рдбреАрдореЙрдбреНрдпреВрд▓рдХреЙрдо
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░, рдпрд╣ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ $рдПрд▓рдбреАрдореЙрдбреНрдпреВрд▓,
$LDMODULEFLAGS рдФрд░ $FRAMEWORKSFLAGS рдЪрд░ред рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░, рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рд╣реИ
$SHLINK.
LDMODULECOMSTR
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$LDMODULECOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд▓рдбреАрдПрдореЙрдбреНрдпреВрд▓рдлреНрд▓реИрдЧреНрд╕
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред
LDMODULENOVERSIONSYMLINKS (рдПрд▓рдбреАрдПрдореЙрдбреНрдпреВрд▓рдПрдирдУрд╡рд░рд╕рд┐рдпрдирд╕рд┐рдореНрд▓рд┐рдВрдХреНрд╕)
рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдореЙрдбреНрдпреВрд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ $SHLIBNOVERSIONSYMLINKS
рдПрд▓рдбреАрдПрдордУрдбреАрдпреВрдПрд▓рдкреНрд░реАрдлрд┐рдХреНрд╕
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░, рдпрд╣ рд╢реВрдиреНрдп рд╣реИ; рдЕрдиреНрдп рдкрд░
рд╕рд┐рд╕реНрдЯрдо, рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рд╣реИ $SHLIBPREFIX.
_LDMODULESONAM
рдПрдХ рдореИрдХреНрд░реЛ рдЬреЛ $TARGET рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдХрд╛ SONAME рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ,
$LDMODULEVERSION рдФрд░ $LDMODULESUFFIX. рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрд┐рд▓реНрдбрд░ рдЬрдм рд▓рд┐рдВрдХрд░
рдЙрдкрдХрд░рдг SONAME (рдЬреИрд╕реЗ gnulink) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ.
LDрдореЙрдбреНрдпреВрд▓рдкреНрд░рддреНрдпрдп
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░, рдпрд╣ рд╢реВрдиреНрдп рд╣реИ; рдЕрдиреНрдп рдкрд░
рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдпрд╣ $SHLIBSUFFIX рдХреЗ рд╕рдорд╛рди рд╣реИред
рдПрд▓рдбреАрдПрдореЙрдбреНрдпреВрд▓рд╡рд░реНрдЬрди
рдЬрдм рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдмрд┐рд▓реНрдбрд░. рдпрд╣ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ $_LDMODULEVERSIONFLAGS $_LDMODULEVERSIONFLAGS рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ
la $LDMODULECOM рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдмрдирд╛рддрд╛ рд╣реИ
рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ. $LDMODULEVERSION ... рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ $SHLIBрд╕рдВрд╕реНрдХрд░рдг.
рдПрд▓рдбреАрдПрдореЙрдбреНрдпреВрд▓рдЗрд╡рд░рд╢рдирдлреНрд▓реИрдЧреНрд╕
рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдЬреЛрдбрд╝реЗ рдЧрдП $LDMODULECOM рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рддреЗ рд╕рдордп рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓. рдпреЗ рдЭрдВрдбреЗ
рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм $LDMODULEVERSION ... рд╕реЗрдЯ рд╣реИред
_LDMODULEVERSIONFLAGS
рдпрд╣ рдореИрдХреНрд░реЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ $LDMODULECOM рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп
рд╕рдВрд╕реНрдХрд░рдгреАрдХреГрдд рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ (рдпрд╣ рддрдм рд╣реИ рдЬрдм $LDMODULEVERSION ... рд╕реЗрдЯ рд╣реИ)ред
_LDMODULEVERSIONFLAGS рдЖрдорддреМрд░ рдкрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ $SHLIBVERSIONFLAGS рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ
рдЙрддреНрдкрдиреНрди рд╡рд┐рдХрд▓реНрдк (рдЬреИрд╕реЗ -Wl,-soname=$_LDMODULESONAME)ред рдпрд╣ рд╕рд╛рджреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИ
(рдЕрдирд╡рд░реНрд╕рди) рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓.
рд▓реЗрдХреНрд░рд╕
рд╢рд╛рдмреНрджрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░.
рд▓реЗрдХреНрд╕рдХреЙрдо
рд╕реНрд░реЛрдд рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓.
рд▓реЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░
рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЬрдирд░реЗрдЯрд░ред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рд▓реЗрдХреНрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(LEXCOMSTR = "$SOURCES рд╕реЗ $TARGET рдХреЛ рд▓реЗрдХреНрд╕ рдХрд░рдирд╛")
рд▓реЗрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕
рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
_LIBDIRFLAGS
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкред
$_LIBDIRFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $LIBDIRPREFIX рдФрд░ $LIBDIRSUFFIX рд╢реБрд░реБрдЖрдд рддрдХ
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЕрдВрдд $рд▓рд┐рдмрдкрд╛рде.
рд▓рд┐рдмрдбреАрдЖрдИрдЖрд░рдкреНрд░реАрдлрд┐рдХреНрд╕
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред рдпрд╣
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $рд▓рд┐рдмрдкрд╛рде рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЬрдм $_LIBDIRFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд▓рд┐рдмрдбреАрд░рд╕реБрдлрд╝рд┐рдХреНрд╕
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпрдпред рдпрд╣
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $рд▓рд┐рдмрдкрд╛рде рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм
la $_LIBDIRFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд▓рд┐рдмрдорд┐рдЯрд░
рд╕рднреА
_рд▓рд┐рдмрдлреНрд▓реИрдЧреНрд╕
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдкрд░рд┐рдгрд╛рдореА рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкред
$_LIBFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $LIBLINKPREFIX рдФрд░ $LIBLINKSUFFIX рд╢реБрд░реБрдЖрдд рддрдХ
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ $рд▓рд┐рдмреНрд╕.
LIBLINKрдкреНрд░реАрдлрд┐рдХреНрд╕
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред рдпрд╣ рд╣реЛрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ $рд▓рд┐рдмреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм
$_LIBFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд▓рд┐рдмрд▓рд┐рдВрдХрд╕рдлрд╝рд┐рдХреНрд╕
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпрдпред рдпрд╣ рд╣реЛрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ $рд▓рд┐рдмреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм
$_LIBFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд▓рд┐рдмрдкрде
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рдПрдЧреАред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛
рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ include рди рдбрд╛рд▓реЗрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХ рдореЗрдВ $рд▓рд┐рдВрдХрдлрд╝реНрд▓реИрдЧ or $SHLINKFLAGS рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдиреЛрдЯ:
LIBPATH рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦреЗ рдЬрд╛рдПрдВрдЧреЗ рдЬрдм
рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд╛рдВрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреЛрдВрд╕ рдХреЛ рд░реВрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ #:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(LIBPATH='#/libs')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
libs = Dir('libs')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(LIBPATH=libs)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_LIBDIRFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $LIBDIRPREFIX рдФрд░ $LIBDIRSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ $рд▓рд┐рдмрдкрд╛рде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП LIBPATH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_LIBDIRFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (LINKCOM="my_linker $_LIBDIRFLAGS $_LIBFLAGS -o $TARGET $SOURCE")
рд▓рд┐рдмрдкреНрд░реАрдлрд┐рдХреНрд╕
(рд╕реНрдерд┐рд░) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (posix, win32, os2, рдЖрджрд┐), рд▓реЗрдХрд┐рди рдорд╛рди рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(ar, mslib, sgiar, sunar, tlib, рдЖрджрд┐) рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
рдмрдирд╛рдпрд╛.
рд▓рд┐рдмрдкреНрд░реАрдлрд┐рдХреНрд╕
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡реИрдз рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреА рд╕реВрдЪреАред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрдЬрддреЗ рд╕рдордп
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ, SCons рдЗрди рдЙрдкрд╕рд░реНрдЧреЛрдВ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛, рдЖрдзрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо,
рдФрд░ рдкреНрд░рддреНрдпрдп $LIBSUFFIXES рд╕реВрдЪреАред
LIBS
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреА рд╕реВрдЪреА рдЬреЛ рдХрд┐рд╕реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХреА рдЬрд╛рдПрдВрдЧреА
рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд.
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_LIBFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
$LIBLINKPREFIX рдФрд░ $LIBLINKSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо $рд▓рд┐рдмреНрд╕. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕реЗ LIBS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $_LIBFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг (LINKCOM="my_linker $_LIBDIRFLAGS $_LIBFLAGS -o $TARGET $SOURCE")
рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ $рд▓рд┐рдмреНрд╕ рд╕реВрдЪреА рдореЗрдВ, рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
$_LIBFLAGS, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдВрдХ рд▓рд╛рдЗрди, рдЬреИрд╕реА рд╣реИ, рдмрд┐рдирд╛ $LIBLINKPREFIX or $LIBLINKSUFFIX.
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
env.Append(LIBS=рдлрд╝рд╛рдЗрд▓('/tmp/mylib.so'))
рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, scons рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓рд┐рдмрд╕реБрдлрд╝рд┐рдХреНрд╕
(рд╕реНрдерд┐рд░) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (posix, win32, os2, рдЖрджрд┐), рд▓реЗрдХрд┐рди рдорд╛рди рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(ar, mslib, sgiar, sunar, tlib, рдЖрджрд┐) рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
рдмрдирд╛рдпрд╛.
рд▓рд┐рдм рдкреНрд░рддреНрдпрдп
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡реИрдз рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рд╕реВрдЪреАред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ, SCons рдЙрдкрд╕рд░реНрдЧреЛрдВ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛, $LIBPREFIXES рд▓рд┐рд╕реНрдЯ
рдЖрдзрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо, рдФрд░ рдпреЗ рдкреНрд░рддреНрдпрдп.
рд▓рд╛рдЗрд╕реЗрдВрд╕
рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдЬрд┐рд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рд░реА рдХреА рдЧрдИ рд╣реИ (gpl, lpgl,
рдмреАрдПрд╕рдбреА рдЖрджрд┐) рджреЗрдЦреЗрдВ http://www.opensource.org/licenses/alphabetical рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП
рдирд╛рдоред
рд▓рд╛рдЗрдирд╕реЗрдкрд░реЗрдЯрд░
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреБрдХреНрдд рд╡рд┐рднрд╛рдЬрдХ рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рдФрд░ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░реНрд╕ред рдпрд╣ рдорд╛рди рдХреЗ рдмреАрдЪ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕реНрд░реЛрддред рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрди рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИ
рд╡рд┐рднрд╛рдЬрдХред
рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓
RSI $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕реВрдЪреА рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд POInit, POрдЕрдкрдбреЗрдЯ or рдПрдордУрдлрд╛рдЗрд▓реНрд╕ рдмрд┐рд▓реНрдбрд░реЛрдВ рдкрд░ рднреА рдЗрд╕рдХрд╛ рдЕрд╕рд░ рдкрдбрд╝рддрд╛ рд╣реИ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдмрд┐рд▓реНрдбрд░ред
рдпрджрд┐ рдЪрд░ рдореЗрдВ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдпрд╣ рд╕реВрдЪреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓
рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдЧрд░ $рд▓рд┐рдВрдЧреБрдЖрд╕_рдлрд╝рд╛рдЗрд▓ рд╕рддреНрдп (рдпрд╛ рдЧреИрд░-рд╢реВрдиреНрдп) рдкрд░ рд╕реЗрдЯ рд╣реИ
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди), рд╕реВрдЪреА LINGUAS рдирд╛рдордХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реА рдЬрд╛рдПрдЧреАред
LINK
рд▓рд┐рдВрдХрд░.
рд▓рд┐рдВрдХрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓рд┐рдВрдХрдХреЙрдорд╕реНрдЯреНрд░
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $рд▓рд┐рдВрдХрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (LINKCOMSTR = "рд▓рд┐рдВрдХрд┐рдВрдЧ $TARGET")
рд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
рд▓рд┐рдВрдХрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЪрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓
-l (рдпрд╛ рд╕рдорд╛рди) рд╕реВрдЪреАрдмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк $рд▓рд┐рдмреНрд╕, рдФрд░ рди рд╣реА -L (рдпрд╛
рд╕рдорд╛рди) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рдЬреЛ scons рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ $рд▓рд┐рдмрдкрд╛рде.
рджреЗрдЦ $_LIBFLAGS рдКрдкрд░, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рд▓рд┐рдВрдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░
$_LIBDIRFLAGS рдКрдкрд░, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИред
M4
рдПрдо4 рдореИрдХреНрд░реЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░.
рдПрдо4рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ M4 рдореИрдХреНрд░реЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
M4COMSTR
рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ M4 рдореИрдХреНрд░реЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд╝рд░рддреА рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдЕрдЧрд░ рдпрд╣
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $M4COM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
M4рдлрд╝реНрд▓реИрдЧ
M4 рдореИрдХреНрд░реЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ LaTeX рд╕рдВрд░рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕ рдЬрдирд░реЗрдЯрд░
рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░.
рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕рдХреЙрдо
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдФрд░
рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ рд▓реЗрдЯреЗрдХреНрд╕ рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ред
рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░
рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдФрд░ LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
MAKEINDEXFLAGS
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдореЗрдХрдЗрдВрдбреЗрдХреНрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк
рдФрд░ LaTeX рд╕рдВрд░рдЪрд┐рдд рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ред
рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ
рдмрд╛рд╣рд░реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЕрдиреБрдордд рд╡рд░реНрдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред Win32 рдкрд░
рд╕рд┐рд╕реНрдЯрдо, рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реА рд▓рд┐рдВрдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд╛рдо.
рдордзреНрдп:
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЖрдИрдбреАрдПрд▓ рд╕рдВрдХрд▓рдХ.
рдорд┐рдбрд▓рдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ IDL рдХрдВрдкрд╛рдЗрд▓рд░ рддрдХ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд┐рдбрд▓рдХреЙрдорд╕реНрдЯреНрд░
Microsoft IDL рдХреЙрдкреАрдорд┐рд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $рдорд┐рдбрд▓рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдорд┐рдбрд▓рдлреНрд▓реИрдЧреНрд╕
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ IDL рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдореЛрд╕рдлрд╝рд┐рдХреНрд╕
MO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '.mo')ред msgfmt рдЯреВрд▓ рдФрд░ рджреЗрдЦреЗрдВ рдПрдордУрдлрд╛рдЗрд▓реНрд╕ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреА
рдкреВрд░реНрдг рдкрде рд╕рдВрджреЗрд╢(1) рдмрд╛рдЗрдирд░реА, рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛(). msgfmt рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ рдПрдордУрдлрд╛рдЗрд▓реНрд╕
рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреАрд╕реАрдУрдПрдо
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреВрд░реА рдХрд░реЗрдВ рд╕рдВрджреЗрд╢(1) рдХрд╛рд░реНрдпрдХреНрд░рдо. msgfmt рдЙрдкрдХрд░рдг рдФрд░ рджреЗрдЦреЗрдВ рдПрдордУрдлрд╛рдЗрд▓реНрд╕ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреАрд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА рд╕рдВрджреЗрд╢(1) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '', рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ `` рдкреНрд░рд┐рдВрдЯ
$рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреАрдХреЙрдо''). msgfmt рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ рдПрдордУрдлрд╛рдЗрд▓реНрд╕ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдПрдлрдПрдордЯреАрдПрдлрд╝рд▓реИрдЧ
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рд╕рдВрджреЗрд╢(1). msgfmt рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ рдПрдордУрдлрд╛рдЗрд▓реНрд╕ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдЖрдИрдПрдирдЖрдИрдЯреА
рдХреА рдУрд░ рд░рд╛рд╕реНрддрд╛ msginit(1) рдкреНрд░реЛрдЧреНрд░рд╛рдо (Detect() рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛)ред msginit рдЯреВрд▓ рдФрд░ рджреЗрдЦреЗрдВ POInit рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдЖрдИрдПрдирдЖрдИрдЯреАрдХреЙрдо
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреВрд░реА рдХрд░реЗрдВ msginit(1) рдХрд╛рд░реНрдпрдХреНрд░рдо. msginit рдЙрдкрдХрд░рдг рдФрд░ рджреЗрдЦреЗрдВ POInit рдмрд┐рд▓реНрдбрд░ред
MSGINITCOMрд╕реНрдЯреНрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА msginit(1) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '', рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ `` рдкреНрд░рд┐рдВрдЯ
$MSGINITCOM''). msginit рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POInit рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдЖрдИрдПрдирдЖрдИрдЯреАрдПрдлрд╝рд▓рдЧреНрд╕
рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА msginit(1) (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: []). msginit рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POInit
рдмрд┐рд▓реНрдбрд░ред
_MSGINITLOCALE
рдЖрдВрддрд░рд┐рдХ ``рдореИрдХреНрд░реЛ''. рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп (рднрд╛рд╖рд╛) рдирд╛рдо рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ:
'${TARGET.filebase}').
msginit рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POInit рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдорд░реНрдЬ
рдкреВрд░реНрдг рдкрде рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рдмрд╛рдЗрдирд░реА рдЬреИрд╕рд╛ рдХрд┐ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛(). msgmerge рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░
POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдорд░реНрдЬрдХреЙрдо
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреВрд░реА рдХрд░реЗрдВ рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рдХрдорд╛рдВрдб. msgmerge рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POрдЕрдкрдбреЗрдЯ
рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдорд░реНрдЬрдХреЙрдорд╕реНрдЯреНрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдЬрдм рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '', рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ `` рдкреНрд░рд┐рдВрдЯ
$MSGMERGECOM''). msgmerge рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдЬреАрдорд░реНрдЬрдлреНрд▓реИрдЧреНрд╕
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рд╕рдВрджреЗрд╢ рдорд░реНрдЬ(1) рдХрдорд╛рдВрдб. msgmerge рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
рдПрдордПрд╕рдПрд╕рдбреАрдХреЗ_DIR
Microsoft SDK (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо SDK рдпрд╛ Windows SDK) рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
MSSDK_рд╕рдВрд╕реНрдХрд░рдг
Microsoft SDK (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо SDK рдпрд╛ Windows SDK) рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ 6.1, 6.0A, 6.0, 2003R2 рдФрд░ 2003R1 рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдПрдордПрд╕рд╡реАрд╕реА_рдмреИрдЪ
рдЬрдм рдХрд┐рд╕реА рд╕рддреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ SCons рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдмреИрдЪ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
Microsoft Visual C/C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓реЗрдВред рд╕реНрд░реЛрдд рдХреЗ рд╕рднреА рд╕рдВрдХрд▓рди
рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рдПрдХ рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ SCons рдореЗрдВ рдПрдХ рд╣реА рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдПрдХ рд╣реА рдХреЙрд▓ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рддрдм рд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИрдВ
рдЙрдирдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЧрдИ рдереАрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдордВрддреНрд░рдг (рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
$рдмрджрд▓рд╛_рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░)ред рдХреЛрдИ рднреА рд╕рдВрдХрд▓рди рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ (рд▓рдХреНрд╖реНрдп)
рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░ рдирд╛рдо (.obj рдХреЛ рдЫреЛрдбрд╝рдХрд░) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ
рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд.
MSVC_USE_рд╕реНрдХреНрд░рд┐рдкреНрдЯ
Microsoft Visual Studio рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
$MSVC_USE_SCRIPT рдУрд╡рд░рд░рд╛рдЗрдб $MSVC_рд╕рдВрд╕реНрдХрд░рдг рдФрд░ $TARGET_ARCH.рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдирд╛рдо рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
Visual Studio .bat рдлрд╝рд╛рдЗрд▓ (рдЬреИрд╕реЗ vcvars.bat), SCons рдЙрд╕ bat рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ рдФрд░ рдирд┐рдХрд╛рд▓реЗрдЧрд╛
рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░ (рдЖрдорддреМрд░ рдкрд░ %INCLUDE%, %LIB%, рдФрд░ %PATH%).
MSVC_USE_SCRIPT рдХреЛ None рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ Visual Studio рдХрд╛ рд╕реНрд╡рддрдГ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ; рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдк Visual Studio cmd рд╡рд┐рдВрдбреЛ рдореЗрдВ SCons рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╢реЗрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ред
рдПрдордПрд╕рд╡реАрд╕реА_рд╕рдВрд╕реНрдХрд░рдг
рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ Microsoft Visual C/C++ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
If $MSVC_рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, SCons (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛
рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Visual C/C++ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЯреВрд▓
рдЖрд░рдВрднреАрдХрд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдЪрд░ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
Environment() рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░; рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдорд╛рди рд╣реИрдВ 12.0, 12.0Exp, 11.0, 11.0Exp, 10.0, 10.0Exp, 9.0, 9.0Exp,
8.0, 8.0Exp, 7.1, 7.0, рдФрд░ 6.0. Exp рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг "рдПрдХреНрд╕рдкреНрд░реЗрд╕" рдпрд╛ "рдПрдХреНрд╕рдкреНрд░реЗрд╕" рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП" рд╕рдВрд╕реНрдХрд░рдг.
рдПрдордПрд╕рд╡реАрдПрд╕
рдЬрдм Microsoft Visual Studio рдЙрдкрдХрд░рдг рдЖрд░рдВрдн рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде:
VERSION
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ MSVS рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг (рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) $MSVS_рд╕рдВрд╕реНрдХрд░рдг)
VERSIONS
MSVS рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд
VCINSTALLDIR
Visual C++ рдХреА рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
VSINSTALLDIR
Visual Studio рдХреА рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдлреНрд░реЗрдорд╡рд░реНрдХрдбрд╛рдпрд░
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА, рдирд╡реАрдирддрдо рд╕реЗ рдкреБрд░рд╛рдиреЗ рддрдХ рдХреНрд░рдордмрджреНрдзред
рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдирд╡реАрдирддрдо рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг
рдлреНрд░реЗрдорд╡рд░реНрдХSDKDIR
.NET SDK рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдерд╛рди.
рдкреНрд▓реЗрдЯрдлреЙрд░реНрдордПрд╕рдбреАрдХреЗрдбреАрдЖрдИрдЖрд░
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо SDK рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдерд╛рди.
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдоSDK_рдореЙрдбреНрдпреВрд▓реНрд╕
рд╕реНрдерд╛рдкрд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо SDK рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╢рдмреНрджрдХреЛрд╢, рдЬрд╣рд╛рдБ рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╣реИрдВ
рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб, рдФрд░ рдорд╛рди 2-рдЯрдкрд▓ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рд╣реИ
рдкрд╣рд▓рд╛ рд░рд┐рд▓реАрдЬ рдХреА рддрд╛рд░реАрдЦ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдпрджрд┐ рдХреЛрдИ рдорд╛рди рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдПрдордПрд╕рд╡реАрдПрд╕_рдЖрд░реНрдХ
рд╡рд╣ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛(рдУрдВ) рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди x86 рд╣реИ. amd64 рдХреБрдЫ Visual Studio рдХреЗ рд▓рд┐рдП SCons рджреНрд╡рд╛рд░рд╛ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИ.
рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред $MSVS_ARCH рдХрд┐рд╕реА рдРрд╕реЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ
Visual Studio рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛.
MSVS_рдкреНрд░реЛрдЬреЗрдХреНрдЯ_GUID
рдЙрддреНрдкрдиреНрди Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ
ProjectGUID рд╡рд┐рд╢реЗрд╖рддрд╛ред рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ GUID рд╣реИ
рдЙрддреНрдкрдиреНрдиред
MSVS_SCC_AUX_PATH
рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдкрде рдирд╛рдо
SccAuxPath рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдпрджрд┐ MSVS_SCC_рдкреНрд░рджрд╛рддрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рднреА рд╣реИ
рд╕реЗрдЯ рдХрд░реЗрдВ. рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реИ.
MSVS_SCC_рдХрдиреЗрдХреНрд╢рди_рд░реВрдЯ
рдЖрдкрдХреЗ SCC рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓ рдкрде, рдЕрд░реНрдерд╛рдд рд╡рд╣ рдкрде рдЬрд┐рд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рд╣реИрдВ
рдФрд░ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдПрдВрдЧреАред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрджрд░реНрдн рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЙрддреНрдкрдиреНрди Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рд╣реИрдВ
рдЧрдгрдирд╛ рдХреА рдЧрдИред рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ SccLocalPath рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ
SccProjectFilePathRelativizedFromConnection[i] (рдЬрд╣рд╛рдБ [i] 0 рд╕реЗ рд▓реЗрдХрд░ рд╕рдВрдЦреНрдпрд╛ рддрдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА) GlobalSection(SourceCodeControl) рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрднрд╛рдЧред рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдорд╛рдзрд╛рди
рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ SccLocalPath[i] рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдЬрд╣рд╛рдБ [i] 0 рд╕реЗ рд▓реЗрдХрд░ рд╣реИ
рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ GlobalSection(SourceCodeControl) рдЕрдиреБрднрд╛рдЧ.
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм MSVS_SCC_рдкреНрд░рджрд╛рддрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рднреА рд╕реЗрдЯ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ.
MSVS_SCC_PROJECT_NAME
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдХреЛ рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
SccProjectName рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдорд╛рди рдпрджрд┐ MSVS_SCC_рдкреНрд░рджрд╛рддрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ SccProjectName0 рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рднреА рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
Microsoft Visual Studio рдХреЗ GlobalSection(SourceCodeControl) рдЕрдиреБрднрд╛рдЧ рдХрд╛
рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реИ.
MSVS_SCC_рдкреНрд░рджрд╛рддрд╛
рдЙрддреНрдкрдиреНрди Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ
SccProvider рд╡рд┐рд╢реЗрд╖рддрд╛ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ SccProvider0 рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рднреА рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди рдХрд╛ GlobalSection(SourceCodeControl) рдЕрдиреБрднрд╛рдЧ
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реИ.
рдПрдордПрд╕рд╡реАрдПрд╕_рд╕рдВрд╕реНрдХрд░рдг
рдЙрдкрдпреЛрдЧ рд╣реЗрддреБ Microsoft Visual Studio рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
If $MSVS_рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, SCons (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛
рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Visual Studio рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг 6 рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 7 (MSVS) рд╣реИ
.NET) рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 7 рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдордПрд╕рд╡реАрдПрд╕_рд╕рдВрд╕реНрдХрд░рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрд░рдВрднреАрдХрд░рдг рдореЗрдВ рдЪрд░, рдЗрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛
рд╕рдВрд╕реНрдХрд░рдг ('6.0' рдпрд╛ '7.0', рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдкрдХрд░рдг
рдЖрд░рдВрднреАрдХрд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛.
рдпрд╣ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ $MSVC_рд╕рдВрд╕реНрдХрд░рдг рдмрдЬрд╛рдпред рдЕрдЧрд░ $MSVS_рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рд╣реИ рдФрд░ $MSVC_рд╕рдВрд╕реНрдХрд░рдг
рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, $MSVC_рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ $MSVS_рд╕рдВрд╕реНрдХрд░рдг.рдпрджрд┐ рджреЛрдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рднрд┐рдиреНрди рдорд╛рди рд╣реЛрдиреЗ рдкрд░, scons рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдПрдордПрд╕рд╡реАрдПрд╕рдмреАрдпреВрдЖрдИрдПрд▓рдбреАрдХреЙрдо
рдПрдХ рдирд┐рд░реНрдорд┐рдд рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦреА рдЧрдИ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Visual Studio рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде SCons рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдордПрд╕рд╡реАрд╕рдХреНрд▓реАрдирдХреЙрдо
рдХреНрд▓реАрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Visual Studio SCons рдХреЛ -c рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА SCons рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп.
MSVSENCODING
рдПрдХ рдЬреЗрдирд░реЗрдЯреЗрдб рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦреА рдЧрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ Windows-1252 рд╣реИ.
рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯрдХреЙрдо
Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХреНрд░рд┐рдпрд╛.
MSVSPROJECTSUFFIX
Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ (DSP) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
Visual Studio рд╕рдВрд╕реНрдХрд░рдг 7.x (.NET) рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп .vcproj, рдФрд░ .dsp рдЬрдм
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдПрдордПрд╕рд╡реАрдПрд╕рдЖрд░рдЗрдмрд┐рд▓реНрдбрдХреЙрдо
рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдПрдХ рдЙрддреНрдкрдиреНрди рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Visual Studio рдХрд┐рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде SCons рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдордПрд╕рд╡реАрдПрд╕рдПрд╕рд╕реАрдУрдПрдирдПрд╕
рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП SCons. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП SCons рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╕рдВрд╕реНрдХрд░рдгред
рдПрдордПрд╕рд╡реАрдПрд╕рдПрд╕рдХреЙрдирдПрд╕рд╕реАрдУрдПрдо
рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ SCons рдХрдорд╛рдВрдб.
рдПрдордПрд╕рд╡реАрдПрд╕рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ
sconscript рдлрд╝рд╛рдЗрд▓ (рдЕрд░реНрдерд╛рдд, SConstruct рдпрд╛ SConscript рдлрд╝рд╛рдЗрд▓) рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ (рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) $MSVSSCONSCOM рдЪрд░) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
рд╡рд╣реА sconscript рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ рдПрдордПрд╕рд╡реАрдПрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП.
MSVSSCONSFLAGS
рдЙрддреНрдкрдиреНрди Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд SCons рдлрд╝реНрд▓реИрдЧ.
MSVSSOLUTIONCOM
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХреНрд░рд┐рдпрд╛.
MSVSSOLUTIONSUFFIX
Microsoft Visual Studio рд╕рдорд╛рдзрд╛рди (DSW) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
Visual Studio рд╕рдВрд╕реНрдХрд░рдг 7.x (.NET) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп .sln, рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп .dsw
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛.
MT
рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ DLL рдФрд░ EXE рдореЗрдВ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдоред рдпрд╣ рднреА рджреЗрдЦреЗрдВ
$WINDOWS_EMBED_MANIFEST.
рдПрдордЯреАрдИрдПрдХреНрд╕рдИрдХреЙрдо
рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЛ рдПрдХреНрдЬреАрдХреНрдпреВрдЯреЗрдмрд▓ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рджреЗрдЦреЗрдВ
$рдПрдордЯреАрдПрд╕рдПрдЪрд▓рд┐рдмрдХреЙрдо.
рдПрдордЯреАрдлреНрд▓реИрдЧреНрд╕
рдЭрдВрдбреЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП $ рдореАрдЯреНрд░рд┐рдХ рдЯрди рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝)ред
рдПрдордЯреАрдПрд╕рдПрдЪрдПрд▓рдЖрдИрдмреАрдХреЙрдо
рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (DLL) рдореЗрдВ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЗрдЦреЗрдВ
рднреА $рдПрдордЯреАрдПрдХреНрд╕рдИрдХреЙрдо.
MWCW_рд╕рдВрд╕реНрдХрд░рдг
рдЙрдкрдпреЛрдЧ рдХрд┐рдпреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЗрдЯреНрд░реЛрд╡рд░реНрдХреНрд╕ рдХреЛрдбрд╡реЙрд░рд┐рдЕрд░ рд╕реА рдХрдореНрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░рдорд╛рдВрдХред
MWCW_рд╕рдВрд╕реНрдХрд░рдг
рдЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореЗрдЯреНрд░реЛрд╡рд░реНрдХреНрд╕ рдХреЛрдбрд╡реЙрд░рд┐рдЕрд░ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреАред
рдирд╛рдо
рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ.
рдиреЛ_рдЗрдореНрдкреЛрд░реНрдЯ_рд▓рд┐рдм
рдЬрдм рдЗрд╕реЗ рдЧреИрд░-рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдЯреИрдЯрд┐рдХ рдЖрдпрд╛рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ
MinGW, Microsoft Visual Studio рдпрд╛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ SharedLibrary рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛
рдореЗрдЯреНрд░реЛрд╡рд░реНрдХреНрд╕ред рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрдпрд╛рдд (.exp) рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рднреА рд░реЛрдХрддрд╛ рд╣реИ
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛред
рдУрдмреАрдЬреЗрдкреАрд░рд┐рдлрд┐рдХреНрд╕
(рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рдУрдмреАрдЬреЗрд╕реБрдлрд╝рд┐рдХреНрд╕
(рд╕реНрдерд┐рд░) рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
P4
рдкрд░реНрдлреЛрд░реНрд╕ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп.
рдкреА4рдХреЙрдо
рдкрд░рдлреЛрд░реНрд╕ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
P4COMSTR
Perforce рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $P4COM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
P4рдлрд╝реНрд▓реИрдЧ
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдкрд░рдлреЛрд░реНрд╕ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкреИрдХреЗрдЬрд░реВрдЯ
рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рдЦреА рдЬрд╛рдПрдВрдЧреА рдпрджрд┐
рд▓рд╛рдЧреВ. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди "$NAME-$VERSION" рд╣реИ.
рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд░
рдирд┐рд░реНрдорд╛рдг рд╣реЗрддреБ рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпреЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
* msi - рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЗрдВрд╕реНрдЯреЙрд▓рд░ * rpm - рд░реЗрдбрд╣реИрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ * ipkg - рдЗрдЯреНрд╕реА рдкреИрдХреЗрдЬ
рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА * tarbz2 - рд╕рдВрдкреАрдбрд╝рд┐рдд tar * targz - рд╕рдВрдкреАрдбрд╝рд┐рдд tar * zip - рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓
* src_tarbz2 - рд╕рдВрдкреАрдбрд╝рд┐рдд tar рд╕реНрд░реЛрдд * src_targz - рд╕рдВрдкреАрдбрд╝рд┐рдд tar рд╕реНрд░реЛрдд * src_zip -
рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рд╕реНрд░реЛрдд
рдЗрд╕реЗ "package_type" рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг
рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг (рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╣реАрдВ)ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдФрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рд╣реА.
PCH
Microsoft Visual C++ рдкреНрд░реА-рдХрдВрдкрд╛рдЗрд▓реНрдб рд╣реЗрдбрд░ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓реЗрдВред рдЗрд╕ рдЪрд░ рдХреЛ Microsoft Visual C++ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдпрд╣
рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ SCons рд╕рдВрдХрд▓рдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдпрд╣
рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ PCH рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рднреА рд╕реЗрдЯ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
env['PCH'] = 'StdAfx.pch'
рдкреАрд╕реАрдПрдЪрд╕реАрдУрдПрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ PCH builder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╣реЗрдбрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред
рдкреАрд╕реАрдПрдЪрд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓реНрдб рд╣реЗрдбрд░ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдкреАрд╕реАрдПрдЪрд╕реАрдУрдПрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдкреАрд╕реАрдПрдЪрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕
рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ /yD рдзреНрд╡рдЬ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдпрджрд┐ рдХреЗрд╡рд▓ $рдкреАрдбреАрдмреА рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗрдЯ рд╣реИ.
рдкреАрд╕реАрдПрдЪрд╕реНрдЯреЙрдк
рдпрд╣ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдХрд┐рддрдирд╛ рднрд╛рдЧ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╣реИред
Microsoft Visual C++ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм PCH рдЪрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЬрдм рдпрд╣ рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рдирд╛рдо рд╣реИ
рд╣реЗрдбрд░ рдЬреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рднрд╛рдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдпрд╛
рдпрджрд┐ "#pragma hrdstop" рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ:
env['PCHSTOP'] = 'StdAfx.h'
рдкреА рдбреА рдмреА
Microsoft Visual C++ PDB рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧреА
рдлрд╝рд╛рдЗрд▓реЗрдВ, рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдоред рдЗрд╕ рдЪрд░ рдХреЛ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ C++. рдЬрдм рдпрд╣ рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ SCons рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рджреЗрдЧрд╛
рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдмрд╛рд╣рд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рдирд╛
рдЬрд╛рдирдХрд╛рд░реА, рдФрд░ PDB рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рднреА рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг:
env['PDB'] = 'рд╣реЗрд▓реНрд▓реЛ.pdb'
рд╡рд┐рдЬреБрдЕрд▓ C++ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рд┐рдЪ рдЬрд┐рд╕реЗ SCons рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ PDB рдЬрд╛рдирдХрд╛рд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
is /Z7рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ (-j) рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рдмрдЧ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИ
рдПрдХрд▓ PDB рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдордзреНрдпрд╡рд░реНрддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА
рдПрдХрд╛рдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪред рдпрд╣ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рднреА рд╣реИ
рдПрдХ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ред /рдЬрд╝реА рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмреЗрд╣рддрд░ рд▓рд┐рдВрдХ-рдЯрд╛рдЗрдо рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкреНрд░рджрд░реНрд╢рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд┐рд▓реНрдб рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЖрдк PDB рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рд╛рде /рдЬрд╝реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ $рд╕реАрд╕реАрдкреАрдбреАрдмреАрдлреНрд▓реИрдЧреНрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓; рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреЗрдВ
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдкреАрдбреАрдПрдлрдХреЙрдо
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $DVIPDFCOM.
рдкреАрдбреАрдПрдлрд▓реЗрдЯреЗрдХреНрд╕
рдкреАрдбреАрдПрдлрд▓реИрдЯреЗрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛.
рдкреАрдбреАрдПрдлрд▓реИрдЯреЗрдХреНрд╕рдХреЙрдо
pdflatex рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
PDFLATEXCOMSTR
pdflatex рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$PDFLATEXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(PDFLATEX;COMSTR = "LaTeX рдЗрдирдкреБрдЯ $SOURCES рд╕реЗ $TARGET рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
рдкреАрдбреАрдПрдлLATEXFLAGS
pdflatex рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдкреАрдбреАрдПрдлрдкреНрд░реАрдлрд┐рдХреНрд╕
рдкреАрдбреАрдПрдл рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рдкреАрдбреАрдПрдлрд╕рдлрд╝рд┐рдХреНрд╕
рдкреАрдбреАрдПрдл рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛.
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕рдХреЙрдо
pdftex рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░
pdftex рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$PDFTEXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(PDFTEXCOMSTR = "TeX рдЗрдирдкреБрдЯ $SOURCES рд╕реЗ $TARGET рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕
рдкреАрдбреАрдПрдлрдЯреЗрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред
рдкреАрдХреЗрдЬреАрд╕реАрдПрдЪрдХреЗ
рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдкреИрдХреЗрдЬ-рдЬрд╛рдВрдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рд╛рде рдореЗрдВ
$PKGINFO) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Sun PRO C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
/usr/sbin/pgkchk.
рдкреАрдХреЗрдЬреАрд╕реВрдЪрдирд╛
рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдкреИрдХреЗрдЬ рд╕реВрдЪрдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рд╛рде рдореЗрдВ
$PKGCHK) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Sun PRO C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
pkginfo.
рдордВрдЪ
рдкрд░рд┐рд╡реЗрд╢ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдирд╛рдоред рдпрджрд┐ рдХреЛрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ
рдЬрдм рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ scons рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╕реНрд╡рддрдГ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг = [])
рдпрджрд┐ env['PLATFORM'] == 'cygwin':
рдЯреВрд▓('mingw')(env)
рдЕрдиреНрдп:
рдЙрдкрдХрд░рдг('msvc')(env)
POAUTOINIT
RSI $POрдСрдЯреЛрдЗрдирд┐рдЯ рдЪрд░, рдпрджрд┐ рд╕рддреНрдп (рдЧреИрд░-рд╢реВрдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдкрд░) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ msginit
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд▓рд╛рдкрддрд╛ рдкреАрдУ рдлрд╛рдЗрд▓реЗрдВ msginit(1)ред рдпрд╣ рдЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
рджреЛрдиреЛрдВ, POInit рдФрд░ POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░реНрд╕ (рдФрд░ рдЕрдиреНрдп рдЬреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
POCREATE_рдЙрдкрдирд╛рдо
рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рд╕рднреА PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдирд╛рдо POInit рдмрд┐рд▓реНрдбрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 'po-create'). рджреЗрдЦреЗрдВ
msginit рдЙрдкрдХрд░рдг рдФрд░ POInit рдмрд┐рд▓реНрдбрд░ред
рдкреЛрд╕рдлрд╝рд┐рдХреНрд╕
PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '.po') msginit рдЯреВрд▓ рдФрд░ рджреЗрдЦреЗрдВ POInit рдмрд┐рд▓реНрдбрд░ред
рдкреЙрдЯрдбреЛрдореЗрди
RSI $POTDOMAIN рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЛрдореЗрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ POT рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $POTDOMAINредрдордЯрдХрд╛
рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ POT рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ POTрдЕрдкрдбреЗрдЯ, POInit рдФрд░
POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░реНрд╕ (рдФрд░ рдмрд┐рд▓реНрдбрд░реНрд╕, рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛) рд╕рд╛рдорд╛рдиреНрдпрддрдГ (рдпрджрд┐
$POTDOMAIN рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ), рдмрд┐рд▓реНрдбрд░реНрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ POT рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ message.pot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдкреЛрдЯреНрд╕рдлрд╝рд┐рдХреНрд╕
PO рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '.pot')ред xgettext рдЯреВрд▓ рдФрд░ рджреЗрдЦреЗрдВ POTрдЕрдкрдбреЗрдЯ
рдмрд┐рд▓реНрдбрд░ред
POTUPDATE_ALIAS
рд╕рднреА PO рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирдХрд▓реА рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд╛рдо POрдЕрдкрдбреЗрдЯ (рдЪреВрдХ рдЬрд╛рдирд╛:
'pot-update'). xgettext рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
POUPDATE_рдЙрдкрдирд╛рдо
рд╕рднреА PO рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ:
'po-update'). msgmerge рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
рдкреНрд░рд┐рдВрдЯ_CMD_рд▓рд╛рдЗрди_FUNC
рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐
рдХрдорд╛рдВрдб рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ -q or -s рд╡рд┐рдХрд▓реНрдк рдпрд╛ рдЙрдирдХреЗ рд╕рдорддреБрд▓реНрдп)ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд╛рд░ рддрд░реНрдХ рд▓реЗрдиреЗ рдЪрд╛рд╣рд┐рдП: s, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдЖрджреЗрд╢ (рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ), рд▓рдХреНрд╖реНрдп,
рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд▓рдХреНрд╖реНрдп (рдлрд╝рд╛рдЗрд▓ рдиреЛрдб, рд╕реВрдЪреА, рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо(рдирд╛рдо)), рд╕реНрд░реЛрдд, рд╕реНрд░реЛрдд(рд╕реНрд░реЛрдд)
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдлрд╝рд╛рдЗрд▓ рдиреЛрдб, рд╕реВрдЪреА, рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо(рдирд╛рдо)), рдФрд░ env, рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдкрд░реНрдпрд╛рд╡рд░рдгред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд╣реА рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдпрджрд┐ рдпрд╣
рдЪрд░ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рд╣реИ:
def print_cmd_line(s, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
sys.stdout.write(s + "\n")
рдпрд╣рд╛рдБ рдПрдХ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
def print_cmd_line(s, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
sys.stdout.write("рдмрд┐рд▓реНрдбрд┐рдВрдЧ %s -> %s...\n" %
(' рдФрд░ '.join([str(x) for x in source]),
' рдФрд░ '.join([str(x) for x in target])))
env=рдкрд░реНрдпрд╛рд╡рд░рдг(PRINT_CMD_LINE_FUNC=print_cmd_line)
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo', 'foo.c')
рдпрд╣ рд╕рд┐рд░реНрдл "рдмрд┐рд▓реНрдбрд┐рдВрдЧ" рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдЯрд╛рд░реНрдЧреЗрдЯрдирд╛рдо рд╕реЗ рд╕реНрд░реЛрдд рдХрд╛ рдирд╛рдо... рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рдмрдЬрд╛рдп
рдЖрджреЗрд╢ред рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рд▓реЙрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ
рдЙрджрд╛рд╣рд░рдгред
рдкреНрд░реЛрдЬреЗрдорд┐рдЯрд░
рд╕рднреА
рдкреНрд░реЛрдЧрдкреНрд░реАрдлрд┐рдХреНрд╕
рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рдкреНрд░реЛрдЧрд╕рдлрд╝рд┐рдХреНрд╕
рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рдкреАрдПрд╕рдХреЙрдо
TeX DVI рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдкреАрдПрд╕рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм TeX DVI рдлрд╝рд╛рдЗрд▓ рдХреЛ PostScript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдкреАрдПрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдкреАрдПрд╕рдкреНрд░реАрдлрд┐рдХреНрд╕
рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рдкреАрдПрд╕рд╕рдлрд╝рд┐рдХреНрд╕
рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
QT_рдСрдЯреЛрд╕реНрдХреИрди
рдореЛрдХреЗрдмрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд┐рдВрдЧ рдмрдВрдж рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдХ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
moc рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП.
QT_BINPATH
рд╡рд╣ рдкрде рдЬрд╣рд╛рдБ qt рдмрд╛рдЗрдирд░реАрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди ' рд╣реИ$рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░/ bin'.
рдХреНрдпреВрдЯреА_CPPPATH
рд╡рд╣ рдкрде рдЬрд╣рд╛рдБ qt рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
'$рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░/рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ'. рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЗрд╕ рдЪрд░ рдХреЛ None рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
$CPPPATH рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдХреНрдпреВрдЯреА_рдбреАрдмрдЧ
Moc рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рд╕рд╛рд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреВрдЯреА_рд▓рд┐рдм
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 'qt' рд╣реИред рдЖрдк рдЗрд╕реЗ 'qt-mt' рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
рдЪрд░ рдХреЛ None рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░, рдЙрдкрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ $рд▓рд┐рдмреНрд╕ рдЪрд░ред
рдХреНрдпреВрдЯреА_LIBPATH
рд╡рд╣ рдкрде рдЬрд╣рд╛рдБ qt рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди ' рд╣реИ$рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░/ рджрд╛рдпрд┐рддреНрд╡'.
рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЗрд╕ рдЪрд░ рдХреЛ None рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ $рд▓рд┐рдмрдкрд╛рде
рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдХреНрдпреВрдЯреА_рдПрдордУрд╕реА
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ '$QT_BINPATH/рдореЙрдХ'.
рдХреНрдпреВрдЯреА_MOCCXXPREFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '' рд╣реИред Moc рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧ, рдЬрдм рд╕реНрд░реЛрдд рдПрдХ cxx рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдХреНрдпреВрдЯреА_MOCCXXSUFFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '.moc' рд╣реИред moc рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп, рдЬрдм рд╕реНрд░реЛрдд рдПрдХ cxx рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдХреНрдпреВрдЯреА_MOCFROMCXXCOM
cpp рдлрд╝рд╛рдЗрд▓ рд╕реЗ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб.
рдХреНрдпреВрдЯреА_MOCFROMCXXCOMSTR
cpp рдлрд╝рд╛рдЗрд▓ рд╕реЗ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $QT_MOCFROMCXXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдХреНрдпреВрдЯреА_MOCFROMCXXFLAGS
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '-i' рд╣реИред C++ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЙрдХ рдХрд░рддреЗ рд╕рдордп рдпреЗ рдлрд╝реНрд▓реИрдЧ moc рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХреНрдпреВрдЯреА_MOCFROMHCOM
рд╣реЗрдбрд░ рд╕реЗ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб.
QT_MOCFROMHCOMSTR
cpp рдлрд╝рд╛рдЗрд▓ рд╕реЗ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $QT_MOCFROMHCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдХреНрдпреВрдЯреА_MOCFROMHFLAGS
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '' рд╣реИред рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЙрдХ рдХрд░рддреЗ рд╕рдордп рдпреЗ рдлрд╝реНрд▓реИрдЧ moc рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХреНрдпреВрдЯреА_MOCHPREFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 'moc_' рд╣реИред moc рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧ, рдЬрдм рд╕реНрд░реЛрдд рдПрдХ рд╣реЗрдбрд░ рд╣реИред
рдХреНрдпреВрдЯреА_MOCHSUFFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ '$CXXFILESUPFIX'. moc рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп, рдЬрдм рд╕реНрд░реЛрдд рдПрдХ рд╣реИ
рд╣реИрдбрд░.
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реА
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ '$QT_BINPATH/рдпреВрдЖрдИрд╕реА'.
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реАрдХреЙрдо
.ui рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢.
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реАрд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
.ui рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $QT_UICCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реАрдбреАрдИрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '' рд╣реИред рдпреЗ рдлрд╝реНрд▓реИрдЧ uic рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм aah рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
.ui рдлрд╝рд╛рдЗрд▓.
QT_UICDECLPREFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '' рд╣реИ. uic рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧ.
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реАрдбреАрдИрд╕реАрдПрд▓рдПрд╕рдпреВрдПрдлрдлрд┐рдХреНрд╕
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '.h' рд╣реИред uic рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдпред
рдХреНрдпреВрдЯреА_рдпреВрдЖрдИрд╕реАрдЖрдИрдПрдордкреАрдПрд▓рдлреНрд▓реИрдЧреНрд╕
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '' рд╣реИред рдпреЗ рдлрд╝реНрд▓реИрдЧ uic рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм рдХрд┐рд╕реА cxx рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
.ui рдлрд╝рд╛рдЗрд▓.
QT_UICIMPLPREFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 'uic_' рд╣реИред uic рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧред
QT_UICIMPLSUFFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ '$CXXFILESUPFIX'. uic рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп.
QT_UISUFFIX
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди '.ui' рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреНрд░рддреНрдпрдпред
рдХреНрдпреВрдЯреАрдбреАрдЖрдИрдЖрд░
qt рдЯреВрд▓ рдЗрд╕реЗ os.environ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА QT_* рдХреЛ рднреА рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ
рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рд░реНрдорд╛рдг рдЪрд░ред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рднреА рдкрдереЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
python рдХреА os.path.join() рд╡рд┐рдзрд┐, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП '/' рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ
рдкрдврд╝рдирд╛.) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ $CPPPATH, $рд▓рд┐рдмрдкрд╛рде рдФрд░
$рд▓рд┐рдмреНрд╕ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЪрд░ $рдкреНрд░реЛрдЬреЗрдорд┐рдЯрд░, $SHLIBEMITTER рдФрд░ $LIBEMITTER
рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдмрд┐рд▓реНрдб-рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕
рдкрд░реНрдпрд╛рд╡рд░рдг рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдкрд░реНрдпрд╛рд╡рд░рдг(рдЙрдкрдХрд░рдг=['рдбрд┐рдлрд╝реЙрд▓реНрдЯ','qt'])
qt рдЙрдкрдХрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдПрдордУрд╕реА рдкрдЯреНрдЯрд┐рдХрд╛ рдкреАрдврд╝реА рд╕реЗ рд╣реИрдбрд░ рдлрд╛рдЗрд▓реЗрдВ. рдЖрдкрдХреЛ moc рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдЙрдкрдХрд░рдг рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреВрд░реНрд╡ рд╢рд░реНрддреЗрдВ рд╣реИрдВ:
рдЖрдкрдХреА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдлрд╝рд╛рдЗрд▓рдмреЗрд╕ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВред рдЗрд╕рдореЗрдВ .h, .hpp, .H, .hxx, .hh рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдкреНрд░рддреНрдпрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк
QT_AUTOSCAN рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд moc рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рднреА рджреЗрдЦреЗрдВ
рдЕрдиреБрд░реВрдк MOC() рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдПрдордУрд╕реА рдкрдЯреНрдЯрд┐рдХрд╛ рдкреАрдврд╝реА рд╕реЗ CXX рдлрд╛рдЗрд▓реЗрдВ. рдЬреИрд╕рд╛ рдХрд┐ qt рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ,
cxx рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ moc рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ cxx рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ moc рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреА рд╣реЛрдЧреАред
рдлрд╝рд╛рдЗрд▓, рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ
${QT_MOCCXXPREFIX} ${QT_MOCCXXSUFFIX}, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .moc. рдПрдХ рдЪреЗрддрд╛рд╡рдиреА
рдпрджрд┐ рдЖрдк рд╕рд╣реА рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ moc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдЖрдк VariantDir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
QT_AUTOSCAN рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд moc рдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрд╢рдиред рд╕рдВрдмрдВрдзрд┐рдд рднреА рджреЗрдЦреЗрдВ
MOC рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗ рдирд┐рдкрдЯрдиреЗ of .рдпреВрдЖрдИ рдлрд╛рдЗрд▓реЗрдВ. .ui рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЗрдВ
yacc рдпрд╛ lex рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд░рд╣ рд╣реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ .ui рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдкреНрд░реЛрдЧреНрд░рд╛рдо, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рд╢реЗрдпрд░реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддреАрди рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧреА, рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓,
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ moc рдлрд╝рд╛рдЗрд▓ред рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ рднреА рдЙрддреНрдкрдиреНрди рд╣реЗрдбрд░ рд╣реИрдВ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
VariantDir рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ=1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рднреА рджреЗрдЦреЗрдВ рдпреВрдЖрдИрд╕реА
рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐.
рд░рд╛рдирд▓рд┐рдм
рдЕрднрд┐рд▓реЗрдЦ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛.
рд░рд╛рдирд▓рд┐рдмрдХреЙрдо
рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рд░рд╛рдирд▓рд┐рдмрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм рдХреЛрдИ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдЧреНрд░рд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $RANLIBCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (RANLIBCOMSTR = "рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ $TARGET")
рд░рд╛рдирд▓рд┐рдмрдлреНрд▓реИрдЧреНрд╕
рд╕рдВрдЧреНрд░рд╣ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
RC
Microsoft Visual C++ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рдХ.
рдЖрд░рд╕реАрдХреЙрдо
Microsoft Visual C++ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдЖрд░рд╕реАрд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
Microsoft Visual рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
C++ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдЖрд░рд╕реАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдЖрд░.рд╕реА.рдлреНрд▓реИрдЧреНрд╕
RES рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдзреНрд╡рдЬред
рдЖрд░рд╕реАрдЖрдИрдПрдирд╕реАрдлреНрд▓реИрдЧреНрд╕
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрд┐рд╕рдореЗрдВ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ
рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
$RCINCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $RCINCPREFIX рдФрд░ $RCINCSUFFIX рд╢реБрд░реБрдЖрдд рддрдХ рдФрд░
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ $CPPPATH.
рдЖрд░рд╕реАрдЖрдИрдПрдирд╕реАрдкреАрд░рд┐рдлрд┐рдХреНрд╕
рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рдХ рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ (рдзреНрд╡рдЬ)
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $CPPPATH
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $RCINCFLAGS рдЪрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.
рдЖрд░рд╕реАрдЖрдИрдПрдирд╕реАрд╕рдлрд╝рд┐рдХреНрд╕
рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред
рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ $CPPPATH рдирд┐рд░реНрдорд╛рдг
рдЪрд░ рдЬрдм $RCINCFLAGS рдЪрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.
рдЖрд░рд╕реАрдПрд╕
RCS рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдпред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░рд╕реАрдПрд╕ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рджреЗрдЦреЗрдВ $рдЖрд░рд╕реАрдПрд╕_рд╕реАрдУ рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдиреАрдЪреЗ.
рдЖрд░рд╕реАрдПрд╕_рд╕реАрдУ
рдЖрд░рд╕реАрдПрд╕ "рдЪреЗрдХрдЖрдЙрдЯ" рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп, рдЖрд░рд╕реАрдПрд╕ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрд░рд╕реАрдПрд╕_COCOM
рдЖрд░рд╕реАрдПрд╕ рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ (рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рдиреЗ) рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдЖрд░рд╕реАрдПрд╕_COCOMSTR
RCS рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$рдЖрд░рд╕реАрдПрд╕_COCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдЖрд░рд╕реАрдПрд╕_COFLAGS
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдкрд╛рд╕ рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ $рдЖрд░рд╕реАрдПрд╕_рд╕реАрдУ рдЖрджреЗрд╢ред
рдЖрд░рдбреАрдЖрдИрдЖрд░
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ Dir рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЦреЛрдЬ рдХрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЦрдЬрд╛рдиреЗред
рдЖрд░рдИрдЬреАрдПрд╕рд╡реАрдЖрд░
рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдЬрдм рднреА рдХреЛрдИ рдирд╡рдирд┐рд░реНрдорд┐рдд DLL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ = 1 рдХрд╛ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
REGSVRCOM
рдирд╡рдирд┐рд░реНрдорд┐рдд DLL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдЬрдм рднреА рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ = 1 рдХрд╛ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
REGSVRCOMSTR
рдирд╡рдирд┐рд░реНрдорд┐рдд DLL рдлрд╝рд╛рдЗрд▓ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$REGSVRCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
REGSVRFLAGS
Windows рд╕рд┐рд╕реНрдЯрдо рдкрд░ DLL рдкрдВрдЬреАрдХрд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рддрдм рджрд┐рдП рдЧрдП рдлрд╝реНрд▓реИрдЧ рдЬрдм рдПрдХ рдирд╡-рдирд┐рд░реНрдорд┐рдд DLL
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрдВрдЬреАрдХреГрдд рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ /s рдЬреЛ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ
рдкреЙрдк рдЕрдк рд╣реЛрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВред
рдЖрд░рдПрдордЖрдИрд╕реА
рдЬрд╛рд╡рд╛ RMI рд╕реНрдЯрдм рд╕рдВрдХрд▓рдХ.
рдЖрд░рдПрдордЖрдИрд╕реАрдХреЙрдо
рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕реЛрдВ рд╕реЗ рд╕реНрдЯрдм рдФрд░ рд╕реНрдХреЗрд▓реЗрдЯрди рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
RMI рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк $RMICFLAGS рдирд┐рд░реНрдорд╛рдг
рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
рдЖрд░рдПрдордЖрдИрд╕реАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕реЛрдВ рд╕реЗ рд╕реНрдЯрдм рдФрд░ рд╕реНрдХреЗрд▓реЗрдЯрди рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЬрд┐рд╕рдореЗрдВ RMI рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рдЖрд░рдПрдордЖрдИрд╕реАрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди)
рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
env = Environment(RMICCOMSTR = "рд╕реНрдЯрдм/рд╕реНрдХреЗрд▓реЗрдЯрди рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ $TARGETS рдХреЛ $SOURCES рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ")
рдЖрд░рдПрдордЖрдИрд╕реАрдПрдлрд▓реИрдЧреНрд╕
рдЬрд╛рд╡рд╛ RMI рд╕реНрдЯрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
_рдЖрд░рдкреАрдПрде
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ rpath рдзреНрд╡рдЬ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ
рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╕рдордпред $_RPATH рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЬреЛрдбрд╝рдХрд░ $RPATHPREFIX рдФрд░ $RPATHSUFFIX рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ
$рдЖрд░рдкреАрдПрде.
рдЖрд░рдкреАрдПрдЯреАрдПрдЪ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрдереЛрдВ рдХреА рд╕реВрдЪреАред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓
GNU (gnulink), IRIX (sgilink) рдФрд░ Sun (sunlink) рд▓рд┐рдВрдХрд░реНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдЯреВрд▓рдЪреЗрди рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ RPATH рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдкрде рд╣реИрдВ
рд╕реНрдХреЛрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ: рдпрджрд┐ рдЖрдк рдПрдХ рдкреВрд░реНрдг рдкрде рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛
рдкреВрд░реНрдгрддрдГ рд╕реНрд╡рдпрдВ.
рдЖрд░рдкреАрдПрдЯреАрдПрдЪрдкреАрд░рд┐рдлрд┐рдХреНрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ
рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдоред рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
$рдЖрд░рдкреАрдПрде рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_RPATH рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рдЖрд░рдкрд╛рдерд╕рдлрд╝рд┐рдХреНрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп
рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдоред рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ $рдЖрд░рдкреАрдПрде
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм $_RPATH рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рдЖрд░рдкреАрд╕реАрдЬреАрдПрди
рдЖрд░.рдкреА.рд╕реА. рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрдХрд▓рдХ.
рдЖрд░рдкреАрд╕реАрдЬреАрдИрдПрдирдХреНрд▓рд╛рдЗрдВрдЯрдлреНрд▓реИрдЧреНрд╕
рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╕реНрдЯрдмреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЭрдВрдбреЗ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВ $RPCGENFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдЖрд░рдкреАрд╕реАрдЬреЗрдирдлреНрд▓реИрдЧреНрд╕
RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдЖрд░рдкреАрд╕реАрдЬреЗрдирд╣реЗрдбрд░рдлреНрд▓реИрдЧреНрд╕
рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред рдпреЗ рд╣реИрдВ
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЭрдВрдбреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ $RPCGENFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдЖрд░рдкреАрд╕реАрдЬреЗрдирд╕рд░реНрд╡рд┐рд╕рдлреНрд▓реИрдЧреНрд╕
рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реНрдЯрдмреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЭрдВрдбреЗ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВ $RPCGENFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдЖрд░рдкреАрд╕реАрдЬреАрдПрдирдПрдХреНрд╕рдбреАрдЖрд░рдлреНрд▓реИрдЧреНрд╕
XDR рд░реВрдЯреАрди рдмрдирд╛рддреЗ рд╕рдордп RPC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкред рдпреЗ рдирд┐рдореНрди рд╣реИрдВ
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЭрдВрдбреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ $RPCGENFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рд╕реНрдХреИрдирд░реНрд╕
рдЙрдкрд▓рдмреНрдз рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд╕реНрдХреИрдирд░ рдХреА рд╕реВрдЪреАред рдирдП рдлрд╝рд╛рдЗрд▓ рд╕реНрдХреИрдирд░ рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдХрд░, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдВрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдП
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рд╕реНрдХреИрдирд░ред "рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рдФрд░ "рд╕реНрдХреИрдирд░" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рджреЗрдЦреЗрдВред
рдПрд╕рд╕реАрд╕реАрдПрд╕
рдПрд╕рд╕реАрд╕реАрдПрд╕ рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп.
рдПрд╕рд╕реАрд╕реАрдПрд╕рдХреЙрдо
SCCS рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдПрд╕рд╕реАрд╕реАрдПрд╕рд╕реАрдУрдПрдордПрд╕рдЯреАрдЖрд░
CVS рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $рдПрд╕рд╕реАрд╕реАрдПрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рд╕реАрд╕реАрдПрд╕рдПрдлрд▓реИрдЧреНрд╕
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдПрд╕рд╕реАрд╕реАрдПрд╕ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдПрд╕рд╕реАрд╕реАрдПрд╕рдЧреЗрдЯрдлреНрд▓реИрдЧреНрд╕
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SCCS "get" рдЙрдкрдХрдорд╛рдВрдб рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -e рдПрд╕рд╕реАрд╕реАрдПрд╕ рд╕реЗ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
SCONS_рд╣реЛрдо
SCons рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдкрде, рдмрд╛рд╣реНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛
рдкрд░реНрдпрд╛рд╡рд░рдгред рдпрджрд┐ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЫреЛрдЯреА рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЦреЛрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдореЗрдВ рдкрде $рдПрдордПрд╕рд╡реАрдПрд╕рдПрд╕рд╕реАрдУрдПрдирдПрд╕ Microsoft Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╛рдЗрд▓реЗрдВ.
рдПрд╕рдПрдЪрд╕реАрд╕реА
рд╕реА рдХрдореНрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рдПрдЪрд╕реАрд╕реАрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк $SHCFLAGS, $SHCCFLAGS рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
рдПрд╕рдПрдЪрд╕реАрд╕реАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHCCCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(SHCCCOMSTR = "рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ $TARGET рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ")
рдПрд╕рдПрдЪрд╕реАрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C рдФрд░ C++ рдХрдореНрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред
рдПрд╕рдПрдЪрд╕реАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП C рдХрдВрдкрд╛рдЗрд▓рд░ (рдХреЗрд╡рд▓; C++ рдирд╣реАрдВ) рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк
рд╡рд╕реНрддреБрдУрдВред
рдПрд╕рдПрдЪрд╕реАXX
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд C++ рдХрдореНрдкрд╛рдЗрд▓рд░ред
рдПрд╕рдПрдЪрд╕реАXXCOM
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк $SHCXXFLAGS рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реИрдВ
рдЗрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ.
рдПрд╕рдПрдЪрд╕реАXXCOMSTR
рдЬрдм C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐
рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHCXXCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(SHCXXCOMSTR = "рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ $TARGET рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ")
рдПрд╕рдПрдЪрд╕реАXXFLAGS
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред
рдПрд╕рдПрдЪрдбреАрд╕реА
рдПрд╕рдПрдЪрдбреАрд╕реА.
рдПрд╕рдПрдЪрдбреАрдХреЙрдо
рдПрд╕рдПрдЪрдбреАрдХреЙрдо.
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХ
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХ.
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХрдХреЙрдо
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХрдХреЙрдо.
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
рдПрд╕рдПрдЪрдбреАрд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕.
рд╢реЗрд▓
рд╢реЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдордХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ $рд╕реНрдкреЙрди рд╕рдорд╛рд░реЛрд╣ред рджреЗрдЦреЗрдВ
$рд╕реНрдкреЙрди рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рджреЗрдЦреЗрдВ.
рдПрд╕рдПрдЪрдПрдл03
рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $SHFORTRAN рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $рдПрд╕рдПрдЪрдПрдл03 рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл03рдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF03COM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 03 рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANCOM рдЪрд░, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдПрд╕рдПрдЪрдПрдл03рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHF03COM or $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рд╣реИ
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
SHF03рдЭрдВрдбреЗ
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF03рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANFLAGS рдЪрд░, рдЬреЛ
рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл03рдкреАрдкреАрдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
la $SHF03рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF03PPCOM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 03 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANPPCOM
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реА-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ.
рдПрд╕рдПрдЪрдПрдл03рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 03 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHF03PPCOM or $SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рдПрдЪрдПрдл08
рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $SHFORTRAN рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $рдПрд╕рдПрдЪрдПрдл08 рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл08рдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF08COM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 08 рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANCOM рдЪрд░, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдПрд╕рдПрдЪрдПрдл08рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHF08COM or $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рд╣реИ
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
SHF08рдЭрдВрдбреЗ
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF08рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANFLAGS рдЪрд░, рдЬреЛ
рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл08рдкреАрдкреАрдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
la $SHF08рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF08PPCOM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 08 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANPPCOM
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реА-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ.
рдПрд╕рдПрдЪрдПрдл08рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 08 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHF08PPCOM or $SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рдПрдЪрдПрдл77
рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $SHFORTRAN рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $рдПрд╕рдПрдЪрдПрдл77 рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл77рдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF77COM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 77 рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANCOM рдЪрд░, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдПрд╕рдПрдЪрдПрдл77рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHF77COM or $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рд╣реИ
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
SHF77рдЭрдВрдбреЗ
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF77рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANFLAGS рдЪрд░, рдЬреЛ
рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл77рдкреАрдкреАрдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
la $SHF77рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF77PPCOM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 77 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANPPCOM
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реА-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ.
рдПрд╕рдПрдЪрдПрдл77рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 77 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHF77PPCOM or $SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рдПрдЪрдПрдл90
рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $SHFORTRAN рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $рдПрд╕рдПрдЪрдПрдл90 рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл90рдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF90COM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 90 рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANCOM рдЪрд░, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдПрд╕рдПрдЪрдПрдл90рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHF90COM or $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рд╣реИ
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
SHF90рдЭрдВрдбреЗ
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF90рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANFLAGS рдЪрд░, рдЬреЛ
рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл90рдкреАрдкреАрдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
la $SHF90рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF90PPCOM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 90 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANPPCOM
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реА-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ.
рдПрд╕рдПрдЪрдПрдл90рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 90 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHF90PPCOM or $SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рдПрдЪрдПрдл95
рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ $SHFORTRAN рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $рдПрд╕рдПрдЪрдПрдл95 рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдпрд╛ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл95рдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF95COM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 95 рдлрд╝рд╛рдЗрд▓реЗрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANCOM рдЪрд░, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рднреА Fortran рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдПрд╕рдПрдЪрдПрдл95рдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHF95COM or $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рд╣реИ
рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред
SHF95рдЭрдВрдбреЗ
рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕. рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF95рдлрд╝реНрд▓реИрдЧ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANFLAGS рдЪрд░, рдЬреЛ
рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдлреЛрд░рдЯреНрд░рд╛рди рд╕рдВрд╕реНрдХрд░рдг.
рдПрд╕рдПрдЪрдПрдл95рдкреАрдкреАрдХреЙрдо
рдлреЛрд░реНрдЯреНрд░рд╛рди 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ред рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк
la $SHF95рдлрд╝реНрд▓реИрдЧ рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ $SHF95PPCOM рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ C-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Fortran 95 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП $SHFORTRANPPCOM
рд╡реЗрд░рд┐рдПрдмрд▓, рдЬреЛ рд╕рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реА-рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ.
рдПрд╕рдПрдЪрдПрдл95рдкреАрдкреАрдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм Fortran 95 рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHF95PPCOM or $SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
SHFORTRAN
рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ред
рдПрд╕рдПрдЪрдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдо
рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓.
рдПрд╕рдПрдЪрдлреЛрд░рдЯреНрд░рд╛рдирдХреЙрдорд╕реНрдЯреНрд░
рдЬрдм рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓. рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $SHFORTRANCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рдПрд╕рдПрдЪрдлреЛрд░рдЯреНрд░рд╛рдирдлреНрд▓реИрдЧреНрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЛрд░реНрдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред
SHFORTRANPPCOM
рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред
$SHFORTRANFLAGS рдФрд░ $рд╕реАрдкреАрдкреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕ рдЗрд╕ рдЖрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрди.
SHFORTRANPPCOMSTR
рдЬрдм рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдЭрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ C рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдЧрд░ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ
$SHFORTRANPPCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рд╢реНрд▓рд┐рдмреЗрдорд┐рдЯрд░
рд╕рднреА
SHLIBNOVERSIONSYMLINKS ...
рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╕рд╛рдЭрд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВред
рдПрд╕рдПрдЪрдПрд▓рдЖрдИрдмреАрдкреНрд░реАрдлрд┐рдХреНрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
_рд╢реНрд▓рд┐рдмреНрд╕реЛрдирд╛рдо
рдПрдХ рдореИрдХреНрд░реЛ рдЬреЛ $TARGET рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ SONAME рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ,
$SHLIBVERSION рдФрд░ $SHLIBSUFFIX. рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдЬрдм рд▓рд┐рдВрдХрд░ рдЙрдкрдХрд░рдг
SONAME (рдЬреИрд╕реЗ gnulink) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ.
SHLIBрдкреНрд░рддреНрдпрдп
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рдПрд╕рдПрдЪрдПрд▓рдЖрдИрдмреАрд╕рдВрд╕реНрдХрд░рдг
рдЬрдм рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рд▓реНрдбрд░. рдпрд╣ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ $_SHLIBVERSIONFLAGS рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ
$SHLINKCOM рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдмрдирд╛рддрд╛ рд╣реИ
рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рдореНрдмрд▓рд┐рдВрдХ. $SHLIBрд╕рдВрд╕реНрдХрд░рдг рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓реНрдлрд╛-рдиреНрдпреВрдореЗрд░рд┐рдХ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП,
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "\w+[\.\w+]*" рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рджрд╢рдорд▓рд╡-рд╕реАрдорд╛рдВрдХрд┐рдд рдорд╛рдиред рдЙрджрд╛рд╣рд░рдг
$SHLIBрд╕рдВрд╕реНрдХрд░рдг рдорд╛рдиреЛрдВ рдореЗрдВ '1', '1.2.3', рдФрд░ '1.2.gitaa412c8b' рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
_SHLIBрд╕рдВрд╕реНрдХрд░рдгрдЭрдВрдбреЗ
рдпрд╣ рдореИрдХреНрд░реЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ $SHLINKCOM рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рддреЗ рд╕рдордп
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдпрд╣ рддрдм рд╣реИ рдЬрдм $SHLIBрд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рд╣реИ). _SHLIBVERSIONFLAGS рдЖрдорддреМрд░ рдкрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
$SHLIBVERSIONFLAGS рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╡рд┐рдХрд▓реНрдк (рдЬреИрд╕реЗ
-Wl,-soname=$_SHLIBSONAME. рдпрд╣ "рд╕рд╛рджреЗ" (рдЕрдирд╡рд░реНрд╕рди) рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИред
рдПрд╕рдПрдЪрдПрд▓рдЖрдИрдмреАрд╡рд░реНрдЬрдирдлреНрд▓реИрдЧреНрд╕
рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдЬреЛрдбрд╝реЗ рдЧрдП $SHLINKCOM рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рддреЗ рд╕рдордп рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА. рдпреЗ рдЭрдВрдбреЗ рд╣реИрдВ
рдХреЗрд╡рд▓ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм $SHLIBрд╕рдВрд╕реНрдХрд░рдг рд╕реЗрдЯ рд╣реИред
рдПрд╕рдПрдЪрд▓рд┐рдВрдХ
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░.
SHLINKCOM
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
SHLINKCOMSTR
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдВрдХ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $SHLINKCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(SHLINKCOMSTR = "рд╕рд╛рдЭрд╛ $TARGET рд▓рд┐рдВрдХ рдХрд░рдирд╛")
рд╢реНрд▓рд┐рдВрдХрдлреНрд▓реИрдЧреНрд╕
рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкред рдиреЛрдЯ
рдХрд┐ рдпрд╣ рдЪрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рд╢рд╛рдорд┐рд▓ -l (рдпрд╛ рд╕рдорд╛рди) рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк
рд╕реВрдЪреАрдмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп $рд▓рд┐рдмреНрд╕, рдФрд░ рди рд╣реА -L (рдпрд╛ рд╕рдорд╛рди) рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреИрди рдХрд░рддреЗ рд╣реИрдВ
рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ $рд▓рд┐рдмрдкрд╛рде. рджреЗрдЦрдирд╛ $_LIBFLAGS рдКрдкрд░, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рд▓рд┐рдВрдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ $_LIBDIRFLAGS рдКрдкрд░, рдЙрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрдЬ рдкрде рд╡рд┐рдХрд▓реНрдкреЛрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
SHOBJPREFIX
рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рд╢реЛрдмрдЬрд╕рдлрд╝рд┐рдХреНрд╕
рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рд╕реЛрдирдо
рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП SONAME рдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЪрд░ред
env.SharedLibrary('test', 'test.c', SHLIBVERSION='0.1.2', SONAME='libtest.so.2')
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ gnulink рд▓рд┐рдВрдХрд░ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рд╕реНрд░реЛрдд_рдпреВрдЖрд░рдПрд▓
рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ URL (рд╡реЗрдм тАЛтАЛрдкрддрд╛) рдЬрд╣рд╛рдБ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╣реИ
Ipkg рдФрд░ RPM рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ Source: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
рд╕реНрд░реЛрдд
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рдЕрдВрдбреЗ
рдПрдХ рдХрдорд╛рдВрдб рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:
def рд╕реНрдкреЙрди(рд╢реЗрд▓, рдПрд╕реНрдХреЗрдк, cmd, args, env):
sh рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдордХрд░рдг рдХрд░рддреА рд╣реИред рдмрдЪ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдПрд╕реНрдХреЗрдк рд╢реЗрд▓ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реАрдПрдордбреА рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рд╣реИ
рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдЖрд░реНрдЧ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИ. env рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЬрд┐рд╕рдореЗрдВ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП.
рд╕реНрдерд┐рд░ рдФрд░ рд╕рд╛рдЭрд╛ рд╡рд╕реНрддреБрдПрдВ рдПрдХ рдЬреИрд╕реА рд╣реИрдВ
рдЬрдм рдпрд╣ рдЪрд░ рд╕рддреНрдп рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реНрдерд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╣реА; рдЕрд░реНрдерд╛рддреН, SCons рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реНрдерд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕рдмреНрд╕рдЯреА_DICT
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреБрдХреНрдд рд╢рдмреНрджрдХреЛрд╖ рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ or рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░реЛрдВред рдпрд╣
dict() рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдЯреНрдпреВрдкрд▓реНрд╕ рдХреА рд╕реВрдЪрд┐рдпрд╛рдБ рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВ.
рд╕рдмреНрд╕рдЯреАрдлрд╛рдЗрд▓рдкреНрд░реАрдлрд┐рдХреНрд╕
рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ.
рд╕рдмреНрд╕рдЯреАрдлрд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп рд╕рдмрд╕реНрдЯрдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ.
рд╕рд╛рд░рд╛рдВрд╢
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЗрд╕рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд░рд╛рдВрд╢ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЖрдИрдкреАрдХреЗрдЬреА рдФрд░ рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдлрд╝реАрд▓реНрдб, рдФрд░
рд╡рд┐рд╡рд░рдг: MSI рдкреИрдХреЗрдЬ рдореЗрдВ рдлрд╝реАрд▓реНрдб.
рдмрдбрд╝рд╛ рдШреВрдБрдЯ
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░.
рд╕реНрд╡рд┐рдЧрдлрд╛рдЗрд▓рд╕рдлрд┐рдХреНрд╕
рдкреНрд░рддреНрдпрдп рдЬреЛ рдХрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдордзреНрдпрд╡рд░реНрддреА C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
_рд▓рдкреЗрдЯрдирд╛$CFILESUPFIX $CFILESUPFIXрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдорд╛рди рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рднреА -рд╕реА++ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдирд╣реАрдВ
рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ $рд╕реНрд╡рд┐рдЧрдлреНрд▓реИрдЧреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рд╕реНрд╡рд┐рдЧрдХреЙрдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд░реИрдкрд░ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрд╡рд┐рдЧрдХреЙрдорд╕реНрдЯреНрд░
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд░реИрдкрд░ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЬрдирд░реЗрдЯрд░ред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $рд╕реНрд╡рд┐рдЧрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
рд╕реНрд╡рд┐рдЧреАXXрдлрд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдкреНрд░рддреНрдпрдп рдЬреЛ рдХрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдордзреНрдпрд╡рд░реНрддреА C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
_рд▓рдкреЗрдЯрдирд╛$CFILESUPFIX $CFILESUPFIXрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдорд╛рди рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рднреА -c++ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ $рд╕реНрд╡рд┐рдЧрдлреНрд▓реИрдЧреНрд╕ рдирд┐рд░реНрдорд╛рдг рдЪрд░.
SWIGDIRECTORSUFFIX
рдкреНрд░рддреНрдпрдп рдЬреЛ рдХрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдордзреНрдпрд╡рд░реНрддреА C++ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ред рдпреЗ рдХреЗрд╡рд▓ C++ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ
SWIG 'рдирд┐рд░реНрджреЗрд╢рдХ' рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдХреЛрдбред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди _wrap.h рд╣реИред
рд╕реНрд╡рд┐рдЧрдлреНрд▓реИрдЧреНрд╕
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред рдпрд╣
рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП -рдереЙрдерди, -рдкрд░реНрд▓5, -рдЯрд▓, рдпрд╛ рдЬреЛ рднреА рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ
SWIG рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ -рд╕реА++ рдЗрд╕ рдЪрд░ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк, scons рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ C++ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
$CXXFILESUPFIX рдЪрд░ред
_рд╕реНрд╡рд┐рдЧрд┐рдирдлреНрд▓реИрдЧреНрд╕
SWIG рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдпреБрдХреНрдд рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкред
$_SWIGINCFLAGS рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ $SWIGINCPREFIX рдФрд░ $SWIGINCSUFFIX рдХреЛ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд $рд╕реНрд╡рд┐рдЧрдкрд╛рде.
SWIGINCрдкреНрд░реАрдлрд┐рдХреНрд╕
SWIG рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╢рд╛рдорд┐рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧред рдпрд╣ рд╣реЛрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ $рд╕реНрд╡рд┐рдЧрдкрд╛рде рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЬрдм $_SWIGINCFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд╕реНрд╡рд┐рдЧрд┐рдирд╕рдлрд╝рд┐рдХреНрд╕
SWIG рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдпред рдпрд╣ рд╣реЛрдЧрд╛
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ $рд╕реНрд╡рд┐рдЧрдкрд╛рде рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬрдм
$_SWIGINCFLAGS рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ.
рд╕реНрд╡рд┐рдЧрдЖрдЙрдЯрдбрд╛рдпрд░
рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрддрд╛ рд╣реИ
рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рдЦрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ SCons рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрд╡рд┐рдЧ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдПрдВрдЧреА, рдФрд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ swig -outdir рд╡рд┐рдХрд▓реНрдк.
рд╕реНрд╡рд┐рдЧрдкрд╛рде
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╡рд░рдг рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА
рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред SWIG рдЗрдВрдкреНрд▓рд┐рд╕рд┐рдЯ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд╕реНрдХреИрдирд░ рдЗрдирдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рд╣реИред
SWIGFLAGS рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ; рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдиреЛрдЯ:
SWIGPATH рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо SConscript рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЗрдЦреЗ рдЬрд╛рдПрдВрдЧреЗ
рдЬрдм рд╡реЗ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдХреЙрдиреНрд╕ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓реБрдХ-рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛
рд╕реНрд░реЛрдд рд╡реГрдХреНрд╖ рдХрд╛ рдореВрд▓ рдЙрдкрдпреЛрдЧ #:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(SWIGPATH='#/рд╢рд╛рдорд┐рд▓')
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реБрдХ-рдЕрдк рдХреЛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдбрд┐рд░() рд╕рдорд╛рд░реЛрд╣:
рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ = Dir('рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(SWIGPATH=рд╢рд╛рдорд┐рд▓)
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА
$_SWIGINCFLAGS рдирд┐рд░реНрдорд╛рдг рдЪрд░, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
la $SWIGINCPREFIX рдФрд░ $SWIGINCSUFFIX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рддрдХ
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ $рд╕реНрд╡рд┐рдЧрдкрд╛рде. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЬрд┐рд╕реЗ SWIGPATH рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП $_SWIGINCFLAGS:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(SWIGCOM="my_swig -o $TARGET $_SWIGINCFLAGS $SOURCES")
рд╕реНрд╡рд┐рдЧ рд╕рдВрд╕реНрдХрд░рдг
SWIG рдЙрдкрдХрд░рдг рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛.
рдЯреАрдПрдЖрд░
рдЯрд╛рд░ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛.
рдЯрд╛рд░рдХреЙрдо
рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди.
рдЯрд╛рд░рдХреЙрдорд╕реНрдЯреНрд░
рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $рдЯрд╛рд░рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = рдкрд░реНрдпрд╛рд╡рд░рдг (TARCOMSTR = "рд╕рдВрдЧреНрд░рд╣реАрдд $TARGET")
рдЯрд╛рд░рдлреНрд▓реИрдЧреНрд╕
рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
TARGET рдореЗрдВ
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рд▓рдХреНрд╖реНрдп_рдЖрд░реНрдХ
рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рдВрдХрд▓рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдирд╛рдо
рдкрд░реНрдпрд╛рд╡рд░рдг. рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ HOST_ARCH рдХрд╛ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ.
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Win32 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИред
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдмрд╛рдЗрдирд░реА рдХрд╛ рдЖрд░реНрдХ)
рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ $HOST_ARCH, рдпрд╛, рдпрджрд┐ рд╡рд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдЪрд▓ рд░рд╣реА рдорд╢реАрди рдХреЗ рдУрдПрд╕ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╛рдпрдерди рдмрд┐рд▓реНрдб рдпрд╛
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ)ред рдЗрд╕ рдЪрд░ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
Environment() рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░; рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдорд╛рди рд╣реИрдВ x86, i386 (32 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП); amd64, emt64, x86_64 (64 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП)
рдмрд┐рдЯреНрд╕); рдФрд░ ia64 (рдЗрдЯреЗрдирд┐рдпрдо)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 64-рдмрд┐рдЯ рдмрд╛рдЗрдирд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ
рдЖрдкрдХреЗ SCons рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ TARGET_ARCH='x86_64' рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред
рд▓рдХреНрд╖реНрдп_рдУрдПрд╕
рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рдВрдХрд▓рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдирд╛рдо
рдкрд░реНрдпрд╛рд╡рд░рдг. рдпрд╣ HOST_OS рдХреЗ рдорд╛рди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ.
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Win32 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИред
рд▓рдХреНрд╖реНрдп
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рддрд╛рд░ рдкреНрд░рддреНрдпрдп
рдЯрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рдЯреЗрдореНрдкрдлрд╝рд╛рдЗрд▓рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕
$MAXLINELENGTH рд╕реЗ рдЕрдзрд┐рдХ рд▓рдореНрдмреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ '@' рд╣реИред рдЗрд╕реЗ рдЙрди рдЯреВрд▓рдЪреЗрди рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ '-@'
рдбрд╛рдпрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ ARM рдЯреВрд▓рдЪреЗрди рдХреЗ рд▓рд┐рдП '-via'.
TEX
рдЯреАрдИрдПрдХреНрд╕ рдлреЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░.
рдЯреЗрдХреНрд╕рдХреЙрдо
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рдЯреЗрдХреНрд╕рдХреЙрдорд╕реНрдЯреНрд░
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ $рдЯреЗрдХреНрд╕рдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(TEXCOMSTR = "TeX рдЗрдирдкреБрдЯ $SOURCES рд╕реЗ $TARGET рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
рдЯреЗрдХреНрд╕рдлреНрд▓реИрдЧреНрд╕
TeX рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкрд╕реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред
рдЯреЗрдХреНрд╕рд┐рдирдкреБрдЯреНрд╕
LaTeX рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЙрдирдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
LaTeX рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдХреИрдирд░ рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ \include рдФрд░ \include рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛
\рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ.
рдЯреЗрдХреНрд╕реНрдЯрдлрд╛рдЗрд▓рдкреНрд░реАрдлрд┐рдХреНрд╕
рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ.
рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд╛рдЗрд▓рд╕рдлрд╝рд┐рдХреНрд╕
рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .txt.
рдЙрдкрдХрд░рдг
рдЙрдкрдХрд░рдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдЬреЛ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг.
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп
рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЪрд░ рдирд╛рдо рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реЗрдЯ рдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдиреАрдЪреЗ "рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВ)
рд╡рд┐рдХреНрд░реЗрддрд╛
рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдпрд╛ рд╕рдВрдЧрдарди рдЬреЛ рдкреИрдХреЗрдЬреНрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
RPM рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд╡рд┐рдХреНрд░реЗрддрд╛: рдлрд╝реАрд▓реНрдб, рдФрд░
рдирд┐рд░реНрдорд╛рддрд╛: MSI рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдлрд╝реАрд▓реНрдб.
VERSION
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ.
WIN32_INSERT_DEF
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $WINDOWS_INSERT_DEF.
WIN32DEFPREFIX
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $WINDOWSDEFPREFIX.
WIN32DEFSUFFIX
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $WINDOWSDEFSUFFIX.
WIN32EXPPREFIX
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $WINDOWSEXPSUFFIX.
WIN32EXPSUFFIX
рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА $WINDOWSEXPSUFFIX.
WINDOWS_EMBED_MANIFEST
рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ (рд╕рд╛рдорд╛рдиреНрдпрддрдГ
${TARGET}.manifest) рдХреЛ рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╕рднреА Windows exes рдФрд░ DLL рдореЗрдВ, рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
рдЙрдирдХреЗ рд▓рд┐рдВрдХ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕рд╛рдзрдиред рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $ рдореАрдЯреНрд░рд┐рдХ рдЯрди рдФрд░ $рдПрдордЯреАрдПрдХреНрд╕рдИрдХреЙрдо рдФрд░ $рдПрдордЯреАрдПрд╕рдПрдЪрд▓рд┐рдмрдХреЙрдо.
рд╡рд┐рдиреНрдбреЛрдЬрд╝_INSERT_DEF
рдЬрдм рдЗрд╕реЗ рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Windows рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (.dll рдлрд╝рд╛рдЗрд▓) рдХрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ .def рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реА рд╕рдордп рдПрдХ рд╕рдВрдЧрдд .def рдлрд╝рд╛рдЗрд▓ рднреА рдмрдирд╛рдПрдБ
рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рд╣реИ (.def рдлрд╝рд╛рдЗрд▓ рди рдмрдирд╛рдПрдБ)ред
WINDOWS_INSERT_MANIFEST
рдЬрдм рдЗрд╕реЗ рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ scons рдХреЛ .manifest рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬрд╝реБрдЖ рд╕реА/рд╕реА++ 8.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдбреАрдИрдПрдлрдкреНрд░реАрдлрд┐рдХреНрд╕
рд╡рд┐рдВрдбреЛрдЬрд╝ .def рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдбреЗрдлрд╝рд╕рдлрд╝рд┐рдХреНрд╕
рд╡рд┐рдВрдбреЛрдЬрд╝ .def рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдПрдХреНрд╕рдкреАрдкреНрд░реАрдлрд┐рдХреНрд╕
рд╡рд┐рдВрдбреЛрдЬрд╝ .exp рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдПрдХреНрд╕рдкреАрдПрд╕рдлрд╝рд┐рдХреНрд╕
рд╡рд┐рдВрдбреЛрдЬрд╝ .exp рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
WINDOWSPROGMANIFESTрдкреНрд░реАрдлрд┐рдХреНрд╕
Microsoft Visual рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо .manifest рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ
рд╕реА/рд╕реА++.
WINDOWSPROGMANIFESTSUFFIX
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо .manifest рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп
рд╕реА/рд╕реА++.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдПрд╕рдПрдЪрд▓рд┐рдмрдореИрдирд┐рдлреЗрд╕реНрдЯрдкреНрд░реАрдлрд┐рдХреНрд╕
Microsoft Visual рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА .manifest рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ
рд╕реА/рд╕реА++.
рд╡рд┐рдиреНрдбреЛрдЬрд╝рдПрд╕рдПрдЪрд▓рд┐рдмрдореИрдирд┐рдлреЗрд╕реНрдЯрд╕рдлрд┐рдХреНрд╕
Microsoft Visual рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА .manifest рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп
рд╕реА/рд╕реА++.
X_IPK_рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ Depends: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_IPK_рд╡рд┐рд╡рд░рдг
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд╡рд┐рд╡рд░рдг: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреИрдХреЗрдЬред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди $SUMMARY\n$DESCRIPTION рд╣реИ
X_IPK_рдореЗрдирдЯреЗрдирд░
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ Maintenanceer: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_IPK_рдкреНрд░рд╛рдердорд┐рдХрддрд╛
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_рдЖрдИрдкреАрдХреЗ_рд╕реЗрдХреНрд╢рди
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Ipkg рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЕрдиреБрднрд╛рдЧ: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_рдПрдордПрд╕рдЖрдИ_рднрд╛рд╖рд╛
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ MSI рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рднрд╛рд╖рд╛: рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_MSI_LICENSE_TEXT
RTF рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХрд╛ рдкрд╛рдаред рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди рд╡рд░реНрдг рд╣реЛрдВрдЧреЗ
рдЖрд░рдЯреАрдПрдл рд╕рдордХрдХреНрд╖ \\ par рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд.
X_MSI_рдЕрдкрдЧреНрд░реЗрдб_рдХреЛрдб
рд╕рднреА
X_RPM_AUTOREQPROV
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ AutoReqProv: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдмрд┐рд▓реНрдб
рдЖрдВрддрд░рд┐рдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд░реЛрд╣рдгреАрдп
X_RPM_BUILDREQUIRES
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ BuildRequires: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдмрд┐рд▓реНрдбрд░реВрдЯ
рдЖрдВрддрд░рд┐рдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд░реЛрд╣рдгреАрдп
X_RPM_рдХреНрд▓реАрди
рдЖрдВрддрд░рд┐рдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд░реЛрд╣рдгреАрдп
X_RPM_рд╕рдВрдШрд░реНрд╖
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Conflicts: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_DEFATTR
рдпрд╣ рдорд╛рди RPM рдкреИрдХреЗрдЬ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди (-,рд░реВрдЯ,рд░реВрдЯ) рд╣реИ.
X_RPM_рд╡рд┐рддрд░рдг
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Distribution: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдпреБрдЧ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ Epoch: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдХреБрд▓ред
X_RPM_EXCLUDEARCH
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ExcludeArch: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_EXLUSIVEARCH
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ExclusiveArch: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдЧреНрд░реБрдк
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Group: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_GROUP_рд▓реИрдВрдЧ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Group(lang): рдлрд╝реАрд▓реНрдб рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ lang
рдпрд╣ рд╢рд╛рдмреНрджрд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рднрд╛рд╖рд╛ рдХреЛрдб рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
X_RPM_рдЖрдЗрдХрди
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Icon: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдЗрдВрд╕реНрдЯрд╛рд▓
рдЖрдВрддрд░рд┐рдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд░реЛрд╣рдгреАрдп
X_RPM_рдкреИрдХреЗрдЬрд░
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Packager: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_POSTINSTALL
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ %post: рдЕрдиреБрднрд╛рдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_POSTUNINSTALL
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ %postun: рдЕрдиреБрднрд╛рдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Prefix: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдкреНрд░реАрдЗрдВрд╕реНрдЯреЙрд▓
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ %pre: рдЕрдиреБрднрд╛рдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдкреНрд░реАрдк
рдЖрдВрддрд░рд┐рдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд░реЛрд╣рдгреАрдп
X_RPM_рдкреНрд░реАрдЕрдирдЗрдВрд╕реНрдЯреЙрд▓
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ %preun: рдЕрдиреБрднрд╛рдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Provides: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Requires: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рд╕реАрд░рд┐рдпрд▓
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Serial: рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
X_RPM_рдпреВрдЖрд░рдПрд▓
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ RPM .spec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Url: рдлрд╝реАрд▓реНрдб рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
XGETTEXT
рдХреА рдУрд░ рд░рд╛рд╕реНрддрд╛ xgettext(1) рдХрд╛рд░реНрдпрдХреНрд░рдо (рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛()) xgettext рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POTрдЕрдкрдбреЗрдЯ
рдмрд┐рд▓реНрдбрд░ред
XGETTEXTCOM
xgettext рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред xgettext рдЯреВрд▓ рдФрд░ рджреЗрдЦреЗрдВ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
XGETTEXTCOMSTR
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рддрдм рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрдм xgettext(1) рдХрдорд╛рдВрдб рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '', рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ
"рдкреНрд░рд┐рдВрдЯ $XGETTEXTCOM"). xgettext рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
_XGETTEXTDOMAIN
рдЖрдВрддрд░рд┐рдХ "рдореИрдХреНрд░реЛ"ред рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ xgettext рдбреЛрдореЗрди рдирд╛рдо рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рд╕реЗ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ:
'${TARGET.filebase}').
XGETTEXTFLAGS
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ xgettext(1). xgettext рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
XGETTEXTFROM
рд╕реВрдЪреА рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо xgettext(1)'рдХреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВред рдСрдЯреЛрдЯреВрд▓реНрд╕' рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рдЬрд╛рдирддреЗ рд╣реИрдВ
POTFILES.in рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣рд╛рдБ XGETTEXTFROM="POTFILES.in" рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред
$XGETTEXTFROM рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд╣реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдЕрд░реНрдерд╡рд┐рдЬреНрдЮрд╛рди рд╣реИ рдЬреЛ рд╕реБрдкреНрд░рд╕рд┐рджреНрдз GNU POTFILES.in рдореЗрдВ рд╣реИред
xgettext рдЯреВрд▓ рджреЗрдЦреЗрдВ рдФрд░ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
_XрдЭрдВрдбреЗ рд╕реЗ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдЖрдВрддрд░рд┐рдХ "рдореИрдХреНрд░реЛ"ред -D рдХреА рд╕реВрдЪреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЭрдВрдбреЗ $XGETTEXTPATH рд╕реВрдЪреАред
XGETTEXTFROMPREFIX
рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $XGETTEXTFROM рдлрд╝рд╛рдЗрд▓ xgettext(1)рдХреА рдХрдорд╛рдВрдбрд▓рд╛рдЗрди
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '-f').
XGETTEXTFROMSUFFIX
(рдЪреВрдХ рдЬрд╛рдирд╛: '')
XGETTEXTPATH
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА, рд╡рд╣рд╛рдБ xgettext(1) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: []).
рдиреЛрдЯ
рдпрд╣ рдЪрд░ рдХреЗрд╡рд▓ рд╕рд╛рде рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ $XGETTEXTFROM
xgettext рдЯреВрд▓ рдФрд░ рднреА рджреЗрдЦреЗрдВ POTрдЕрдкрдбреЗрдЯ рдмрд┐рд▓реНрдбрд░ред
_XGETTEXTPATHFLAGS
рдЖрдВрддрд░рд┐рдХ "рдореИрдХреНрд░реЛ"ред -f рдХреА рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ рдЭрдВрдбреЗ $XGETTEXTFROM.
XGETTEXTPATHPREFIX
рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХрд▓ рдЦреЛрдЬ рдкрде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ xgettext(1)рдХреА рдХрдорд╛рдВрдбрд▓рд╛рдЗрди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ:
'-рдбреА')ред
XGETTEXTPATHSUFFIX
(рдЪреВрдХ рдЬрд╛рдирд╛: '')
рд╡рд╛рдИрдПрд╕реАрд╕реА
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░.
рдпрд╛рдХреНрдХрдХреЙрдо
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
YACCCOMSTR
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $YACCCOM (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ.
env = Environment(YACCCOMSTR = "$SOURCES рд╕реЗ $TARGET рдХреЛ Yacc'ing рдХрд░рдирд╛")
YACCFLAGS
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдкред рдпрджрд┐ $YACCFLAGS рдПрдХ рд╣реИ -d рд╡рд┐рдХрд▓реНрдк,
SCons рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рдПрдХ .h рдлрд╝рд╛рдЗрд▓ рднреА рдмрдирд╛рдПрдЧрд╛ (рдпрджрд┐ yacc рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ
.y рдкреНрд░рддреНрдпрдп рдореЗрдВ) рдпрд╛ .hpp рдлрд╝рд╛рдЗрд▓ (рдпрджрд┐ yacc рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ .yy рдкреНрд░рддреНрдпрдп рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ)
YACCHрдлрд╝рд╛рдЗрд▓реНрд╕рдлрд╝рд┐рдХреНрд╕
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддреНрдпрдп рдЬрдм -d рд╡рд┐рдХрд▓реНрдк
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдЕрдкрдиреЗ рдЖрдк рдХреМрди рд╕рд╛ рдкреНрд░рддреНрдпрдп рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди .h рд╣реИред
YACCHXXFILESUPFIX
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди C++ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддреНрдпрдп рдЬрдм -d рд╡рд┐рдХрд▓реНрдк
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ
рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдЕрдкрдиреЗ рдЖрдк рдХреМрди рд╕рд╛ рдкреНрд░рддреНрдпрдп рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
.hpp, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ${TARGET.suffix}.h рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдмрд╛рдЗрд╕рди рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЗрд╡рд▓ рдЙрддреНрдкрдиреНрди C++ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдореЗрдВ .h рдЬреЛрдбрд╝рддрд╛ рд╣реИред
YACCVCGFILESUPFIX
VCG рд╡реНрдпрд╛рдХрд░рдг рдСрдЯреЛрдореЗрдЯрди рдкрд░рд┐рднрд╛рд╖рд╛ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддреНрдпрдп рдЬрдм
--рдЧреНрд░рд╛рдл= рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рд░реНрд╕рд░
рдЬрдирд░реЗрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдПрдХ VCG рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдЕрдкрдиреЗ рдЖрдк рдХреМрди рд╕рд╛ рдкреНрд░рддреНрдпрдп рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
.vcg рд╣реИ.
рдЬрд╝рд┐рдк
рдЬрд╝рд┐рдк рд╕рдВрдкреАрдбрд╝рди рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛.
рдЬрд╝рд┐рдкрдХреЙрдо
рдЬрд╝рд┐рдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, рдпрд╛ рдЬрд╝рд┐рдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди
рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдПрдБ.
рдЬрд╝рд┐рдкрдХрдВрдкреНрд░реЗрд╢рди
RSI рджрдмрд╛рд╡ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рдЬрд╝рд┐рдкрдлрд╝рд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдзреНрд╡рдЬ
рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рдирд╣реАрдВ, рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рдиред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
zipfile.ZIP_DEFLATED, рдЬреЛ рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рди рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛
рдпрджрд┐ рдЬрд╝рд┐рдкрдлрд╝рд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ.
рдЬрд╝рд┐рдкрдХреЙрдорд╕реНрдЯреНрд░
рдЬрд╝рд┐рдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ,
рдлрд┐рд░ $рдЬрд╝рд┐рдкрдХреЙрдо (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди) рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
env = рдкрд░реНрдпрд╛рд╡рд░рдг (ZIPCOMSTR = "рдЬрд╝рд┐рдкрд┐рдВрдЧ $TARGET")
рдЬрд╝рд┐рдкрдлреНрд▓реИрдЧреНрд╕
рдЬрд╝рд┐рдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк.
рдЬрд╝рд┐рдкрд░реВрдЯ
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЬрд╝рд┐рдк рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦрд╛рд▓реА)ред рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рдпрджрд┐ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ
рдХрдорд╛рдВрдб рдХреА рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Zip('foo.zip', 'subdir1/subdir2/file1', ZIPROOT='subdir1')
рдПрдХ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ foo.zip рдмрдирд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ subdir2/file1 рдирд╛рдо рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА
subdir1/subdir2/file1 рд╕реЗ рдЕрдзрд┐рдХ.
рдЬрд╝рд┐рдкрд╕рдлрд╝рд┐рдХреНрд╕
рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рддреНрдпрдп.
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╢рдмреНрджрдХреЛрд╢ рдХреА рд╡рд┐рдзрд┐
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг:
рдбрд┐рдХреНрдЯ = env.рд╢рдмреНрджрдХреЛрд╢()
dict["рд╕реАрд╕реА"] = "рд╕реАрд╕реА"
рдпрд╛ [] рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:
env["рд╕реАрд╕реА"] = "рд╕реАрд╕реА"
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рднреА рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CC="cc")
рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп рдХреНрд▓реЛрди рддрд░реАрдХрд╛:
env2 = env.рдХреНрд▓реЛрди(CC="cl.exe")
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрднреЛрдВ
рд╕реНрдХреИрдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн, рд╡рд┐рднрд┐рдиреНрди AC_CHECK рдХреЗ рд╕рдорд╛рди рдПрдХ рдПрдХреАрдХреГрдд рддрдВрддреНрд░
рд╕реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдЖрджрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП GNU autoconf рдореЗрдВ рдореИрдХреНрд░реЛрдЬрд╝ред
autoconf рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдХреИрдиреНрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рдХреИрд╢ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
рдЪреЗрдХ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ --рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк
рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ(env[рдХрд╕реНрдЯрдо_рдкрд░реАрдХреНрд╖рдг, conf_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдмреЛрдЯрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди_рдПрдЪ, рд╕реНрд╡рдЪреНрдЫ, рдорджрдж рдХрд░рдирд╛]),
env.рдХреЙрдиреНрдлрд╝рд┐рдЧрд░([рдХрд╕реНрдЯрдо_рдкрд░реАрдХреНрд╖рдг, conf_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдмреЛрдЯрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди_рдПрдЪ, рд╕реНрд╡рдЪреНрдЫ, рдорджрдж рдХрд░рдирд╛])
рдЗрд╕рд╕реЗ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдорд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред env рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдгред рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддрдм рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм
рдЬрд╛рдБрдЪ рдХрд░рдирд╛ред рдХрд╕реНрдЯрдо_рдкрд░реАрдХреНрд╖рдг рдХрд╕реНрдЯрдо рдЯреЗрд╕реНрдЯ рдпреБрдХреНрдд рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИред рдпрд╣ рднреА рджреЗрдЦреЗрдВ
рдиреАрдЪреЗ рдХрд╕реНрдЯрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЛрдИ рднреА рдХрд╕реНрдЯрдо рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрджрд░реНрдн рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ. conf_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ.
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ #/.sconf_temp. рдмреЛрдЯрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдЖрджрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓ #/config.log рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░() рд╡рд┐рдзрд┐, рдЖрдк
рдЖрдк рдЕрдкрдиреА рд╡реИрд░рд┐рдПрдВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди_рдПрдЪ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ a
C рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЬрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #define HAVE_STDIO_H,
#define HAVE_LIBM, рдЖрджрд┐ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ рдХреЙрдиреНрдлрд╝рд┐рдЧ.рдПрдЪ рдлрд╝рд╛рдЗрд▓. рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧ.рдПрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЛ Configure рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рдХреЙрд▓ рдореЗрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдХреИрдиреНрд╕ рдорд░реНрдЬреА
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ SCons рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдБрдЪ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди_рдПрдЪ
рдлрд╝рд╛рдЗрд▓ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рд░ рдмрд╛рд░ scons рдЪрд▓рд╛рдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди
рдХреЗрд╡рд▓ рддрднреА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдмрджрд▓ рдЧрдИ рд╣реЛрдЧреА рдФрд░ рдХреБрдЫ рд▓рдХреНрд╖реНрдп рдЬреЛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди_рдПрдЪ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИ.
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдорджрдж рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдг рдЬрдм -рд╕реА/--рд╕рд╛рдл or -рдПрдЪ/-рдПрдЪ/--рд╕рд╣рд╛рдпрддрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдХреНрд░рдорд╢рдГред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рдореЗрд╢рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдл рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЯреЗрдХреНрд╕реНрдЯ. рдЕрдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдкрд░реАрдХреНрд╖рдг рдЗрди рдкрд░ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╕рд╛рдлрд╝=рдЭреВрда or
рдорджрдж=рдЭреВрда рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ (рдпрд╛ рджреЛрдиреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдПрдХ рдмрдирд╛рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЗрдВрд╕реНрдЯреИрдВрд╕ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдмрджреНрдз рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:
SConf.рдлрд┐рдирд┐рд╢(рдкреНрд░рд╕рдВрдЧ), рд╕реНрдХреЛрдиреНрдлредрдЦрддреНрдо рдХрд░рдирд╛()
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рддрд╛рд╡рд░рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЬреИрд╕рд╛ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдБрдЪ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрджрд░реНрдн рдмрдирд╛рдПрдБред рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдХ рд╕рдордп рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░рд╣реЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдБрдЪреЗрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВред (рд╕рдордп рдмреАрддрдиреЗ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реВрдЪреА рд╕рдВрднрд╡рддрдГ рдмрдбрд╝реА рд╣реЛрддреА рдЬрд╛рдПрдЧреА
рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирдП рдЙрдкрдпреЛрдЧреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдпреЛрдЧрджрд╛рди рдХрд░рддреЗ рд╣реИрдВред)
SConf.CheckHeader(рдкреНрд░рд╕рдВрдЧ, рд╣реИрдбрд░[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рднрд╛рд╖рд╛]), рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрд╣реИрдбрд░(рд╣реИрдбрд░,
[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рднрд╛рд╖рд╛])
рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣реИрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реИред рд╣реИрдбрд░ рдПрдХ рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реА рд╕реВрдЪреА
рдЖрдЗрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ # рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЗрдбрд░ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рдЬрд╛рдБрдЪ рдХреА рдЧрдИред рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рджреЛ рдЕрдХреНрд╖рд░ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП,
рдЬрд╣рд╛рдБ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдЖрд░рдВрднрд┐рдХ рдЙрджреНрдзрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЕрдХреНрд╖рд░
рд╕рдорд╛рдкрди рдЙрджреНрдзрд░рдгред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рджреЛрдиреЛрдВ рдЕрдХреНрд╖рд░ " (рдбрдмрд▓ рдХреЛрдЯ) рд╣реИрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ
рддрд░реНрдХ рднрд╛рд╖рд╛ рдпрд╛ рддреЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ 1 рдФрд░ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ 0 рд▓реМрдЯрд╛рддрд╛ рд╣реИред
SConf.CheckCHeader(рдкреНрд░рд╕рдВрдЧ, рд╣реИрдбрд░[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ]), рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрд╣реЗрдбрд░(рд╣реИрдбрд░,
[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ])
рдпрд╣ рдПрдХ рдЖрд╡рд░рдг рд╣реИ SConf.рдЪреЗрдХрд╣реЗрдбрд░ рдЬреЛ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╣реИрдбрд░ рд╕реА рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реИ
рднрд╛рд╖рд╛ред рд╣реИрдбрд░ рдПрдХ рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рд╢реАрд░реНрд╖рдХ рд╣реЛрддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓, рдФрд░ рдкрд┐рдЫрд▓реА рд╕реВрдЪреА рдЖрдЗрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХреА # рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдВ
рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реЗрдбрд░ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рджреЛ рдЕрдХреНрд╖рд░реЛрдВ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдБ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдЖрд░рдВрднрд┐рдХ рдЙрджреНрдзрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
рдФрд░ рджреВрд╕рд░рд╛ рд╡рд░реНрдг рд╕рдорд╛рдкрди рдЙрджреНрдзрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ \N'34' рд╣реИрдВ). 1 рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╕рдлрд▓рддрд╛ рдкрд░ 0 рдФрд░ рдЕрд╕рдлрд▓рддрд╛ рдкрд░ XNUMX.
SConf.CheckCXXHeader(рдкреНрд░рд╕рдВрдЧ, рд╣реИрдбрд░[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ]), рд╕реНрдХреЛрдиреНрдл.CheckCXXрд╣реЗрдбрд░(рд╣реИрдбрд░,
[рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ])
рдпрд╣ рдПрдХ рдЖрд╡рд░рдг рд╣реИ SConf.рдЪреЗрдХрд╣реЗрдбрд░ рдЬреЛ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╣реИрдбрд░ C++ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реИ
рднрд╛рд╖рд╛ред рд╣реИрдбрд░ рдПрдХ рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рд╢реАрд░реНрд╖рдХ рд╣реЛрддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓, рдФрд░ рдкрд┐рдЫрд▓реА рд╕реВрдЪреА рдЖрдЗрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХреА # рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдВ
рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реЗрдбрд░ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдЙрджреНрдзрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рджреЛ рдЕрдХреНрд╖рд░реЛрдВ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдБ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдЖрд░рдВрднрд┐рдХ рдЙрджреНрдзрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
рдФрд░ рджреВрд╕рд░рд╛ рд╡рд░реНрдг рд╕рдорд╛рдкрди рдЙрджреНрдзрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ \N'34' рд╣реИрдВ). 1 рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╕рдлрд▓рддрд╛ рдкрд░ 0 рдФрд░ рдЕрд╕рдлрд▓рддрд╛ рдкрд░ XNUMX.
SConf.CheckFunc(рд╕рдВрджрд░реНрдн,, function_name[рд╣реИрдбрд░, рднрд╛рд╖рд╛]),
рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрдлрд╝рдВрдХреНрд╢рди(function_name[рд╣реИрдбрд░, рднрд╛рд╖рд╛])
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ C рдпрд╛ C++ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВред function_name рдХрд╛ рдирд╛рдо рд╡реЗрдВ
рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рдиред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдбрд░ рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рд╣реЛрдЧрд╛
рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди
рдореМрдЬреВрдж рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ:
#ifdef __cplusplus
рдмрд╛рд╣рд░реА "рд╕реА"
#endif
рдЪрд╛рд░ рдлрд╝рдВрдХреНрд╢рди_рдирд╛рдо();
рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рд╖рд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП; рдбрд┐рдлрд╝реЙрд▓реНрдЯ "C" рд╣реИред
SConf.рдЪреЗрдХрд▓рд┐рдм(рдкреНрд░рд╕рдВрдЧ[рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдкреНрд░рддреАрдХ, рд╣реИрдбрд░, рднрд╛рд╖рд╛, рдСрдЯреЛрдРрдб=1]),
рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрд▓рд┐рдм([рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдкреНрд░рддреАрдХ, рд╣реИрдбрд░, рднрд╛рд╖рд╛, рдСрдЯреЛрдРрдб=1])
рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдЕрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдкреНрд░рддреАрдХред рдпрджрд┐ рдХрд╛ рдорд╛рди рдСрдЯреЛрдРрдб 1 рд╣реИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдкреНрд░рддреАрдХ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ LIBS рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд┐рд╡рд┐рдзрддрд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╣ None (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рддреАрдХ is
рд╡рд░реНрддрдорд╛рди LIBS рдЪрд░, рдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ
рд╕реВрдЪреА рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреА рдкреНрд░рддреАрдХ. рдЕрдЧрд░ рдкреНрд░рддреАрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХреЛрдИ рдирд╣реАрдВ, рддреЛ
SConf.рдЪреЗрдХрд▓рд┐рдм() рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпред
рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рд╖рд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
рдЪреЗрдХ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ "C" рд╣реИред рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдСрдЯреЛрдРрдб 1 рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рд▓реМрдЯрд╛рддреА рд╣реИ
рд╕рдлрд▓рддрд╛ рдкрд░ 1 рдФрд░ рдЧрд▓рддреА рдкрд░ 0.
SConf.CheckLibWithHeader(рдкреНрд░рд╕рдВрдЧ, рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╣реИрдбрд░, рднрд╛рд╖рд╛[рдХреЙрд▓, рдСрдЯреЛрдРрдб]),
рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрд▓рд┐рдмрд╡рд┐рдерд╣реЗрдбрд░(рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╣реИрдбрд░, рднрд╛рд╖рд╛[рдХреЙрд▓, рдСрдЯреЛрдРрдб])
SConf.CheckLib рдХреЙрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХреЙрд▓ рдПрдХ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдлрд┐рд░ рд╕реЗ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣реИрдбрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ. рд╣реИрдбрд░ рдПрдХ рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реА рд╕реВрдЪреА
рдЖрдЗрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ # рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЗрдбрд░ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рдЬрд╛рдБрдЪ рдХреА рдЧрдИ. рднрд╛рд╖рд╛ 'C','c','CXX','cxx','C++' рдФрд░ 'c++' рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХреЛрдИ рднреА рд╡реИрдз рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдЕрдВрддрд┐рдо ';' рдХреЗ рд╕рд╛рде)ред рдЕрдЧрд░ рдХреЙрд▓ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд╕
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп. рдСрдЯреЛрдРрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЬрд╛рдБрдЪ рд╕рдлрд▓ рд╣реЛ)ред рдпрд╣ рд╡рд┐рдзрд┐ 1 рд▓реМрдЯрд╛рддреА рд╣реИ
рд╕рдлрд▓рддрд╛ рдкрд░ 0 рдФрд░ рддреНрд░реБрдЯрд┐ рдкрд░ XNUMX.
SConf.рдЪреЗрдХрдЯрд╛рдЗрдк(рдкреНрд░рд╕рдВрдЧ, рдирд╛рдо рд▓рд┐рдЦреЛ[рд╢рд╛рдорд┐рд▓, рднрд╛рд╖рд╛]), рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрдЯрд╛рдЗрдк(рдирд╛рдо рд▓рд┐рдЦреЛ,
[рд╢рд╛рдорд┐рд▓, рднрд╛рд╖рд╛])
рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдЯрдВрдХрдг. рдирд╛рдо рд▓рд┐рдЦреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП typedef рдирд╛рдо. рд╢рд╛рдорд┐рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ # рд╢рд╛рдорд┐рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдВ
рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдкреНрд░рдХрд╛рд░. рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рд╖рд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░ рд╕рдВрдХрд▓рдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ "C" рд╣реИред рдЙрджрд╛рд╣рд░рдг:
sconf.CheckType('foo_type', '#include "my_types.h"', 'C++')
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░.рдЪреЗрдХрд╕реАрд╕реА(рд╕реНрд╡рдпрдВ)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ C рдХрдВрдкрд╛рдЗрд▓рд░ (рдЬреИрд╕рд╛ рдХрд┐ CC рдирд┐рд░реНрдорд╛рдг рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдЫреЛрдЯреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рд╣реА рдирд╛рдо рд╡рд╛рд▓рд╛ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдХрд┐ рдпрд╣ рд╕рд╣реА рдирд╛рдо рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрдХрд▓рдХ рд╣реИ.
рдпрд╣ C рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓, рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝реНрд▓реИрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░.CheckCXX(рд╕реНрд╡рдпрдВ)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ C++ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЬреИрд╕рд╛ рдХрд┐ CXX рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╡реЗрд░рд┐рдПрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ) рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдЫреЛрдЯреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдХреЗрд╡рд▓ рддрднреА рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╣реЛ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╣реА рдирд╛рдо рд╕реЗ рдЪрд▓рд╛рдПрдВ, рди рдХрд┐ рддрдм рдЬрдм рд╡рд╣ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реЛред
рдпрд╣ CXX рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрдВрдкрд╛рдЗрд▓рд░ рдзреНрд╡рдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░.CheckSHCC(рд╕реНрд╡рдпрдВ)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ C рдХрдВрдкрд╛рдЗрд▓рд░ (SHCC рдирд┐рд░реНрдорд╛рдг рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдЫреЛрдЯреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдХреЗрд╡рд▓ рддрднреА рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╣реЛ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╣реА рдирд╛рдо рд╕реЗ рдЪрд▓рд╛рдПрдВ, рди рдХрд┐ рддрдм рдЬрдм рд╡рд╣ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реЛред
рдпрд╣ C рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝реНрд▓реИрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреЗрд╡рд▓
рд╕рдВрдХрд▓рди (рд▓рд┐рдВрдХ рдирд╣реАрдВ) рд╕рдлрд▓ рд╣реЛред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░.рдЪреЗрдХSHCXX(рд╕реНрд╡рдпрдВ)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ C++ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЬреИрд╕рд╛ рдХрд┐ SHCXX рдирд┐рд░реНрдорд╛рдг рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдПрдХ рдЫреЛрдЯреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдХреЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдХреЗрд╡рд▓ рддрднреА рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╣реЛ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╣реА рдирд╛рдо рд╕реЗ рдЪрд▓рд╛рдПрдВ, рди рдХрд┐ рддрдм рдЬрдм рд╡рд╣ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реЛред
рдпрд╣ CXX рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрдВрдкрд╛рдЗрд▓рд░ рдзреНрд╡рдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ,
рдХреЗрд╡рд▓ рдЗрддрдирд╛ рдХрд┐ рд╕рдВрдХрд▓рди (рд▓рд┐рдВрдХ рдирд╣реАрдВ) рд╕рдлрд▓ рд╣реЛред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
conf = рдХреЙрдиреНрдлрд╝рд┐рдЧрд░( env )
рдпрджрд┐ рдирд╣реАрдВ conf.CheckCHeader( 'math.h' ):
рдкреНрд░рд┐рдВрдЯ 'рд╣рдореЗрдВ рд╕рдЪрдореБрдЪ math.h рдХреА рдЬрд░реВрд░рдд рд╣реИ!'
рдирд┐рдХрд╛рд╕(1)
рдпрджрд┐ conf.CheckLibWithHeader( 'qt', 'qapp.h', 'c++',
'QApplication qapp(0,0);' ):
# qt - рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВ, рдЬреИрд╕реЗ
conf.env.Append( CPPFLAGS = '-DWITH_QT' )
env = conf.рдлрд┐рдирд┐рд╢()
SConf.CheckTypeSize(рдкреНрд░рд╕рдВрдЧ, рдирд╛рдо рд▓рд┐рдЦреЛ[рд╣реИрдбрд░, рднрд╛рд╖рд╛, рдЙрдореНрдореАрдж]),
рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрдЯрд╛рдЗрдкрд╕рд╛рдЗрдЬрд╝(рдирд╛рдо рд▓рд┐рдЦреЛ[рд╣реИрдбрд░, рднрд╛рд╖рд╛, рдЙрдореНрдореАрдж])
рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдЯрдВрдХрдг. рдирд╛рдо рд▓рд┐рдЦреЛ рдЯрд╛рдЗрдкрдбреЗрдлрд╝ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдоред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдбрд░ рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛
рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╢реАрд░реНрд╖ рдЬрд┐рд╕реЗ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдХреНрдд рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рд╖рд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХрдВрдкрд╛рдЗрд▓рд░; рдбрд┐рдлрд╝реЙрд▓реНрдЯ "C" рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдореНрдореАрдж рддрд░реНрдХ
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛
type_name рдореЗрдВ рджрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдЪреЗрдХрдЯрд╛рдЗрдкрд╕рд╛рдЗрдЬрд╝('рдЫреЛрдЯрд╛', рдЙрдореНрдореАрдж = 2) рд╕рдлрд▓рддрд╛ рддрднреА рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрдм рд╢реЙрд░реНрдЯ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрдЧрд╛ред
SConf.рдЪреЗрдХрдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди(рдкреНрд░рд╕рдВрдЧ, рдкреНрд░рддреАрдХ[рд╢рд╛рдорд┐рд▓, рднрд╛рд╖рд╛]),
рд╕реНрдХреЛрдиреНрдл.рдЪреЗрдХрдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди(рдкреНрд░рддреАрдХ[рд╢рд╛рдорд┐рд▓, рднрд╛рд╖рд╛])
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреАрдХ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдорд┐рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛
рдЕрдзрд┐рдХ # рд╢рд╛рдорд┐рд▓ рд╡реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдбрд╛рд▓реА рдЬрд╛рдПрдБрдЧреА
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдПред рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рд╖рд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП C or рд╕реА + + рдФрд░
рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ "C" рд╣реИред
SConf.рдкрд░рд┐рднрд╛рд╖рд┐рдд(рдкреНрд░рд╕рдВрдЧ, рдкреНрд░рддреАрдХ[рдореВрд▓реНрдп, рдЯрд┐рдкреНрдкрдгреА]), рд╕реНрдХреЛрдиреНрдлредрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛(рдкреНрд░рддреАрдХ[рдореВрд▓реНрдп, рдЯрд┐рдкреНрдкрдгреА])
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рддреАрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ AC_DEFINE рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░
рдкреНрд░рддреАрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдирд╛рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд╕рд╛рде рдореВрд▓реНрдп рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рдЯрд┐рдкреНрдкрдгреА.
рдЙрджрд╛рд╣рд░рдг:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
conf = рдХреЙрдиреНрдлрд╝рд┐рдЧрд░( env )
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реЗрдВ:
# #A_SYMBOL рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
conf.рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ('A_SYMBOL')
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реЗрдВ:
# #A_SYMBOL 1 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
conf.рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ('A_SYMBOL', 1)
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╕рдордп рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
conf = рдХреЙрдиреНрдлрд╝рд┐рдЧрд░( env )
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реЗрдВ:
# #define A_SYMBOL YA
conf.Define('A_SYMBOL', "YA")
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реЗрдВ:
# #A_SYMBOL "YA" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
conf.Define('A_SYMBOL', '"YA"')
рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
conf = рдХреЙрдиреНрдлрд╝рд┐рдЧрд░( env )
# рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд╛рд▓реЗрдВ:
# /* рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддреАрдХ рд╣реИ рддреЛ рдЙрд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ */
# #A_SYMBOL 1 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
conf.Define('A_SYMBOL', 1, 'рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддреАрдХ рд╣реИ рддреЛ рдЙрд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ')
рдЖрдк рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЬрд╛рдБрдЪреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХрд╕реНрдЯрдо рдЬрд╛рдБрдЪреЗрдВ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рд╣реИрдВ
Configure рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рд╢рдмреНрджрдХреЛрд╢ рдирд╛рдореЛрдВ рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╛рдпрдерди рдХреЙрд▓реЗрдмрд▓реНрд╕ (рдпрд╛ рддреЛ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ __рдХреЙрд▓__ рд╡рд┐рдзрд┐) рдХреЙрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реЛрддрд╛ рд╣реИ рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж рддрд░реНрдХ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЪреЗрдХ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
CheckContext рдЗрдВрд╕реНрдЯреИрдВрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдореИрд╕реЗрдЬ(рд╕реНрд╡рдпрдВ, рдЯреЗрдХреНрд╕реНрдЯ)
рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рдВрдЪ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреЗрдХреНрд╕реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреИрд╕реЗ
'рд▓рд╛рдЗрдмреНрд░реЗрд░реА X рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ...'
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рд░рд┐рдЬрд▓реНрдЯ(рд╕реНрд╡,, рд░реЗрд╕)
рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рдВрдЪ рдкреВрд░реА рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реЗрд╕ рдпрд╛ рддреЛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдпрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 'рд╣рд╛рдВ' (res != 0) рдпрд╛ 'рдирд╣реАрдВ' (res == 0) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдЯреНрд░рд╛рдИрдХрдВрдкрд╛рдЗрд▓(рд╕реНрд╡рдпрдВ, рдЯреЗрдХреНрд╕реНрдЯ, рд╡рд┐рд╕реНрддрд╛рд░)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╕реНрддрд╛рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде '.c') рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рд╡рд╕реНрддреБ рдмрд┐рд▓реНрдбрд░. рд╕рдлрд▓рддрд╛ рдкрд░ 1 рдФрд░ 0 рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╡рд┐рдлрд▓рддрд╛ред
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдЯреНрд░рд╛рдИрд▓рд┐рдВрдХ(рд╕реНрд╡рдпрдВ, рдЯреЗрдХреНрд╕реНрдЯ, рд╡рд┐рд╕реНрддрд╛рд░)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ рд╡рд┐рд╕реНрддрд╛рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде '.c') рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд┐рд▓реНрдбрд░. рд╕рдлрд▓рддрд╛ рдкрд░ 1 рдФрд░ 0 рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╡рд┐рдлрд▓рддрд╛ред
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдЯреНрд░рд╛рдИрд░рди(рд╕реНрд╡рдпрдВ, рдЯреЗрдХреНрд╕реНрдЯ, рд╡рд┐рд╕реНрддрд╛рд░)
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ рд╡рд┐рд╕реНрддрд╛рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде '.c') рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд┐рд▓реНрдбрд░ред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░
рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рддреН, рдЗрд╕рдХреА рд╡рд╛рдкрд╕реА рд╕реНрдерд┐рддрд┐ 0 рд╣реИ), рдПрдХ рдЯрдкрд▓ (1,
рдЖрдЙрдЯрдкреБрдЯрд╕реНрдЯреНрд░) рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдЙрдЯрдкреБрдЯStr рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред рдЕрдЧрд░
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреА рд╡рд╛рдкрд╕реА рд╕реНрдерд┐рддрд┐ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ), рддреЛ (0, '') рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдЯреНрд░рд╛рдИрдПрдХреНрд╢рди(рд╕реНрд╡рдпрдВ, рдХрд╛рд░реНрдп[рдЯреЗрдХреНрд╕реНрдЯ, рд╡рд┐рд╕реНрддрд╛рд░])
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде (рд╕рд╛рдордЧреНрд░реА рдЯреЗрдХреНрд╕реНрдЯ , рд╡рд┐рд╕реНрддрд╛рд░
рд╡рд┐рд╕реНрддрд╛рд░ = '' ) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдХрд╛рд░реНрдп рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдХреИрдиреНрд╕ рдХрд╛рд░реНрдпрд╡рд╛рд╣реА. рд╕рдлрд▓рддрд╛ рдкрд░, (1, рдЖрдЙрдЯрдкреБрдЯрд╕реНрдЯреНрд░) рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдЙрдЯрдкреБрдЯStr рд╕рд╛рдордЧреНрд░реА рд╣реИ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдкрд░ (0, '') рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ
рдЪреЗрдХрдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ.рдЯреНрд░рд╛рдИрдмрд┐рд▓реНрдб(рд╕реНрд╡рдпрдВ, рдирд┐рд░реНрдорд╛рддрд╛[рдЯреЗрдХреНрд╕реНрдЯ, рд╡рд┐рд╕реНрддрд╛рд░])
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рд▓реНрдб рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди; рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд┐рдореНрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдмрд┐рд▓реНрдбрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЯреЗрдХреНрд╕реНрдЯ рдХрд┐рд╕реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдлрд▓рддрд╛ рдкрд░ 1 рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдкрд░ 0 рд▓реМрдЯрд╛рддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд╡рдпрдВ.рдЕрдВрддрд┐рдорд▓рдХреНрд╖реНрдп рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдиреЛрдб рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЕрдЧрд░ рдмрд┐рд▓реНрдб рдерд╛
рд╕рдлрд▓ред
рдХрд╕реНрдЯрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:
def CheckQt(рд╕рдВрджрд░реНрдн, qtdir):
context.Message( 'qt рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ ...' )
lastLIBS = рд╕рдВрджрд░реНрдн.env['LIBS']
lastLIBPATH = рд╕рдВрджрд░реНрдн.env['LIBPATH']
lastCPPPATH= рд╕рдВрджрд░реНрдн.env['CPPPATH']
context.env.Append(LIBS = 'qt', LIBPATH = qtdir + '/ рджрд╛рдпрд┐рддреНрд╡', CPPPATH = qtdir + '/рд╢рд╛рдорд┐рд▓' )
ret = рд╕рдВрджрд░реНрдн.TryLink("""
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
int рдореБрдЦреНрдп(int argc, char **argv) {
QApplication qapp(argc, argv);
0 рд╡рд╛рдкрд╕реА;
}
""")
рдпрджрд┐ рдирд╣реАрдВ рддреЛ:
context.env.Replace(LIBS = lastLIBS, LIBPATH=lastLIBPATH, CPPPATH=lastCPPPATH)
рд╕рдВрджрд░реНрдн.рдкрд░рд┐рдгрд╛рдо( ret )
рд╡рд╛рдкрд╕реА
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
conf = рдХреЙрдиреНрдлрд╝рд┐рдЧрд░( env, рдХрд╕реНрдЯрдо_рдЯреЗрд╕реНрдЯ = { 'CheckQt' : CheckQt } )
рдпрджрд┐ рдирд╣реАрдВ рддреЛ conf.CheckQt('/usr/lib/qt'):
рдкреНрд░рд┐рдВрдЯ 'рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреВрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!'
рдирд┐рдХрд╛рд╕(1)
env = conf.рдлрд┐рдирд┐рд╢()
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд┐рд░реНрдорд╛рдг рдЪрд░
рдЕрдХреНрд╕рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рддреЗ рд╕рдордп, рдХреБрдЫ рдЪрд░реЛрдВ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдерд╛рдиреЛрдВ рдпрд╛ рд╕рд╛рдЗрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕реНрдХреИрдиреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдПрдХ рдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ:
$ scons рдЪрд░ = foo
рдЪрд░ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рда-рдЖрдзрд╛рд░рд┐рдд SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Variables рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ, Variables() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ:
рдЪрд░([рдлрд╝рд╛рдЗрд▓реЛрдВ], [рдЖрд░реНрдЧ])
рдпрд╣ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдкрдврд╝реЗрдЧрд╛ рдпрд╛
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдлрд╝рд╛рдЗрд▓реЛрдВрдпрджрд┐ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрд░реНрдХ
is рдХреЛрдИ рдирд╣реАрдВ, рддреЛ рдХреЛрдИ рднреА рдлрд╛рдЗрд▓ рдирд╣реАрдВ рдкрдврд╝реА рдЬрд╛рдПрдЧреАред рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдЖрд░реНрдЧ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ
рдорд╛рди рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрдврд╝реА рдЧрдИ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рджреЗрдЧрд╛; рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╣реИ
рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ рдмрд╣рд╕ рд╢рдмреНрджрдХреЛрд╢ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрд░ рд░рдЦрддрд╛ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди. рдЙрджрд╛рд╣рд░рдг:
vars = рдЪрд░('custom.py')
vars = рдЪрд░('overrides.py', рддрд░реНрдХ)
vars = рдЪрд░ (рдХреЛрдИ рдирд╣реАрдВ, {FOO:'рд╡рд┐рд╕реНрддрд╛рд░', BAR:7})
рдЪрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ:
рдЬреЛрдбрд╝рдирд╛(рдХреБрдВрдЬреА[рдорджрдж, рдЪреВрдХ, рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рдкрд░рд┐рд╡рд░реНрддрдХ])
рдпрд╣ Variables рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХреБрдВрдЬреА рд╡рд┐рд╢реНрд╡ рдХрд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдВрд╡
рдЪрд░ рдХрд╛ рдирд╛рдо. рдорджрдж рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рд╣реИ. рдЪреВрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
рдЪрд░ рдХрд╛ рдорд╛рди; рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ рдХреЛрдИ рдирд╣реАрдВ рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ, рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реЛрдЧрд╛ рдирд╣реАрдВ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
рдкрд░реНрдпрд╛рд╡рд░рдг. рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдЪрд░ рдХреЗ рдорд╛рди рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рддреАрди рддрд░реНрдХ рд▓реЗрдВ: рдХреБрдВрдЬреА, рдорд╛рди рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдгред
рдЕрдорд╛рдиреНрдп рдорд╛рди рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИ (рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)ред рдкрд░рд┐рд╡рд░реНрддрдХ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореВрд▓реНрдп рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдпрд╛ рддреЛ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП
рдорд╛рди, рдпрд╛ рдорд╛рди рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг, рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВред рдкрд░рд┐рд╡рд░реНрддрдХ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рдирд╛ рд╣реЛрдЧрд╛,
рдЬрд┐рд╕реЗ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ (рдпрджрд┐ рдХреЛрдИ)
рдФрд░ рдлрд┐рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЙрджрд╛рд╣рд░рдг:
vars.Add('CC', 'рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░')
def valid_color(рдХреБрдВрдЬреА, val, env):
рдпрджрд┐ ['рд▓рд╛рд▓', 'рдиреАрд▓рд╛', 'рдкреАрд▓рд╛'] рдореЗрдВ рдорд╛рди рдирд╣реАрдВ рд╣реИ:
рдЕрдкрд╡рд╛рдж рдЙрдард╛рдПрдБ("рдЕрдорд╛рдиреНрдп рд░рдВрдЧ рдорд╛рди '%s'" % val)
vars.Add('рд░рдВрдЧ', рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛=valid_color)
рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЬреЛрдбрд╝реЗрдВ(рд╕реВрдЪреА)
рдПрдХ рд░реИрдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдХрдИ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рддреА рд╣реИ
рд╡рд╕реНрддреБред рд╕реВрдЪреА рдЯрдкрд▓ рдпрд╛ рд╕реВрдЪреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреЙрд▓ рд╡рд┐рдзрд┐.
рдСрдкреНрдЯ.AddVariables(
('рдбреАрдмрдЧ', '', 0),
('рд╕реАрд╕реА', 'рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░'),
('VALIDATE', 'рд╕рддреНрдпрд╛рдкрди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк',
'рдиреЙрдЯрд╕реЗрдЯ', рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рдХреЛрдИ рдирд╣реАрдВ),
)
рдЕрджреНрдпрддрди(env[рдЖрд░реНрдЧ])
рдпрд╣ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ env рдЕрдиреБрдХреВрд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде
рдЪрд░ред рдХреЛрдИ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрд░ рдЬреЛ рдирд╣реАрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЬреНрдЮрд╛рддрдЪрд░() рд╡рд┐рдзрд┐, рдиреАрдЪреЗ рджреА рдЧрдИ рд╣реИред
рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕реАрдзреЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Environment() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЪрд░ рдСрдмреНрдЬреЗрдХреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЪрд░=vars)
рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ) рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ
рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП (рд╡реИрд╢реНрд╡рд┐рдХ) рдкрд╛рдпрдерди рдЪрд░ рдХреЗ рдорд╛рди рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ
рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг.
рдЙрджрд╛рд╣рд░рдг:
рд╕реАрд╕реА = 'my_cc'
рдЕрдЬреНрдЮрд╛рддрдЪрд░()
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЪрд░ рд╡рд╛рд▓реЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдпрд╛ рд╡рд╣ рд╢рдмреНрджрдХреЛрд╖ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде Variables рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП
рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЪрд░=vars)
рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП, vars.UnknownVariables() рдореЗрдВ рдорд╛рди:
рдкреНрд░рд┐рдВрдЯ "рдЕрдЬреНрдЮрд╛рдд рдЪрд░: %s=%s" % (рдХреБрдВрдЬреА, рдорд╛рди)
рдмрдЪрд╛рдирд╛(рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо, env)
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдЪрд░реЛрдВ рдХреЛ рдирд╛рдордХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдЧрд▓реЗ рдЗрдирд╡реЛрдХреЗрд╢рди рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐
рд╡реИрд░рд┐рдПрдмрд▓ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдЪрд░ рдХреЗ рдмреАрдЪ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд░рдиред
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
vars = рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ (['variables.cache', 'custom.py'])
vars.рдЬреЛрдбрд╝реЗрдВ(...)
vars.рдЕрдкрдбреЗрдЯ(env)
vars.Save('variables.cache', env)
рдЬреЗрдирд░реЗрдЯрд╣реЗрд▓реНрдкрдЯреЗрдХреНрд╕реНрдЯ(env[рддрд░рд╣])
рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
Help() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП. env рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд╣ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬреЛ
рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЪрд░ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдирд╛
рддрд░рд╣ рдлрд╝рдВрдХреНрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░рд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рддрд░реНрдХ рд▓реЗрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ -1, 0 рдпрд╛ 1 (рдЬреИрд╕реЗ) рд▓реМрдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдорд╛рдирдХ рдкрд╛рдпрдерди рд╕реАрдПрдордкреА рд╕рдорд╛рд░реЛрд╣)ред
рд╕рд╣рд╛рдпрддрд╛(vars.GenerateHelpText(env))
рд╕рд╣рд╛рдпрддрд╛(vars.GenerateHelpText(env, sort=cmp))
рдлрд╝реЙрд░реНрдореЗрдЯрд╡реИрд░рд┐рдПрдмрд▓рд╣реЗрд▓реНрдкрдЯреЗрдХреНрд╕реНрдЯ(env, рдЪреБрдирдирд╛, рдорджрдж, рдЪреВрдХ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ)
рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдкреНрд░рд╛рд░реВрдкрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рд╣реЛрддрд╛ рд╣реИ
рд╡рд┐рдХрд▓реНрдкред рдЗрд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рд╕реАрдзреЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ()
рд▓реМрдЯрд╛рдП рдЧрдП рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдХреЛ рдмрдирд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ред рдЗрд╕реЗ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЬреЛ рдКрдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдиреЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ() рдХреЛрдИ рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рдбрд╛рд▓реЗрдЧрд╛
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╡рд░реНрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рд╡рд░реНрдгреЛрдВ рдХреЛ рд▓реМрдЯрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрджрд┐ рдЖрдк рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
def my_format(env, opt, help, default, actual):
fmt = "\n%s: рдбрд┐рдлрд╝реЙрд▓реНрдЯ=%s рд╡рд╛рд╕реНрддрд╡рд┐рдХ=%s (%s)\n"
fmt % (рдСрдкреНрдЯ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рд╕рд╣рд╛рдпрддрд╛) рд▓реМрдЯрд╛рдПрдБ
vars.FormatVariableHelpText = my_format
рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреИрдиреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдПрдХ
рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ:
рдмреВрд▓рд╡реЗрд░рд┐рдПрдмрд▓(рдХреБрдВрдЬреА, рдорджрдж, рдЪреВрдХ)
рдмреВрд▓рд┐рдпрди рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рдПрдБред рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХреБрдВрдЬреА, рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ рдЪреВрдХ, рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдорджрдж
рдЯреЗрдХреНрд╕реНрдЯ. рд╡рд┐рдХрд▓реНрдк рдорд╛рдиреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдЧрд╛ y, рд╣рд╛рдБ, t, <strong>рдЙрджреНрджреЗрд╢реНрдп</strong>1, on рдФрд░ рд╕рдм рд╕рдЪ рд╣реИ, рдФрд░
рдореВрд▓реНрдп n, рдирд╣реАрдВ, f, рдЕрд╕рддреНрдп0, рдмрдВрдж рдФрд░ рдХреЛрдИ рдирд╣реАрдВ рдЭреВрдард╛ рд╣реИред
рдПрдирдорд╡реИрд░рд┐рдПрдмрд▓(рдХреБрдВрдЬреА, рдорджрдж, рдЪреВрдХ, рдЕрдиреБрдордд_рдореВрд▓реНрдп[рдирдХреНрд╢рд╛, рдорд╛рдорд▓реЗ рдХреА рдЕрдирджреЗрдЦреА рдХрд░реЗрдВ])
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рдЯреНрдпреВрдкрд▓ рд▓реМрдЯрд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдЧрдгрд┐рдд рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреАред рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдХреБрдВрдЬреА, рдПрдХ
рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЪреВрдХ, рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдорджрдж рдкрд╛рда. рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓
рдЙрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдЕрдиреБрдордд_рдореВрд▓реНрдп рд╕реВрдЪреАред рд╡реИрдХрд▓реНрдкрд┐рдХ рдирдХреНрд╢рд╛ рддрд░реНрдХ рдПрдХ рд╣реИ
рд╢рдмреНрджрдХреЛрд╢ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реИрдз рдорд╛рдиреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдиреБрдордд_рдореВрд▓реНрдп рд╕реВрдЪреА. рдпрджрд┐ рдХрд╛ рдорд╛рди рдЕрдирджреЗрдЦрд╛_рдорд╛рдорд▓рд╛ 0 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рд╣реИ, рддреЛ рдорд╛рди
рдХреЗрд╕-рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╣реИрдВред рдпрджрд┐ рдХрд╛ рдорд╛рди рдЕрдирджреЗрдЦрд╛_рдорд╛рдорд▓рд╛ 1 рд╣реИ, рддреЛ рдорд╛рдиреЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ред рдпрджрд┐ рдХрд╛ рдорд╛рди рдЕрдирджреЗрдЦрд╛_рдорд╛рдорд▓рд╛ 2 рд╣реИ, рддреЛ рдорд╛рдиреЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓, рдФрд░ рд╕рднреА рдЗрдирдкреБрдЯ рдорд╛рди рд▓реЛрдЕрд░ рдХреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рд╕реВрдЪреАрдЪрд░(рдХреБрдВрдЬреА, рдорджрдж, рдЪреВрдХ, рдирд╛рдореЛрдВ[,рдирдХреНрд╢рд╛])
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рдЯреНрдпреВрдкрд▓ рд▓реМрдЯрд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдЧрдгрд┐рдд рдорд╛рдиреЛрдВ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрдЪреАред рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдХреБрдВрдЬреА,
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ рдЪреВрдХ, рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдорджрдж рдкрд╛рда. рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛
рдХреЗрд╡рд▓ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рд╕рдм, рдХреЛрдИ рдирд╣реАрдВ, рдпрд╛ рдореЗрдВ рдорд╛рди рдирд╛рдореЛрдВ рд╕реВрдЪреА. рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ
рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рднреА рдорд╛рди рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреАред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдирдХреНрд╢рд╛ рддрд░реНрдХ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рдиреВрдиреА рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдирд╛рдореЛрдВ рд╕реВрдЪреАред
рдкреИрдХреЗрдЬрд╡реИрд░рд┐рдПрдмрд▓(рдХреБрдВрдЬреА, рдорджрдж, рдЪреВрдХ)
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдкрде рдирд╛рдо рд╣реИ
рдкреИрдХреЗрдЬ рдЬрд┐рд╕реЗ рд╕рдХреНрд╖рдо, рдЕрдХреНрд╖рдо рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдкрде рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдХреБрдВрдЬреА, рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ рдЪреВрдХ, рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
рдорджрдж рдЯреЗрдХреНрд╕реНрдЯ. рд╡рд┐рдХрд▓реНрдк рдорд╛рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ рд╣рд╛рдБ, <strong>рдЙрджреНрджреЗрд╢реНрдп</strong>, on, рд╕рдХреНрд╖рдо or рдпрд╣рд╛рдБ рдЦреЛрдЬреЗрдВрдореЗрдВ
рдЬреЛ рдорд╛рдорд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪреВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдордирдорд╛рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдЖрдорддреМрд░ рдкрд░ рд╕рдХреНрд╖рдо рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдкрде рдирд╛рдо)ред
рд╡рд┐рдХрд▓реНрдк рднреА рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ рдирд╣реАрдВ, рдЕрд╕рддреНрдп, рдмрдВрдж or рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк.
рдкрдердЪрд░(рдХреБрдВрдЬреА, рдорджрдж, рдЪреВрдХ[рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛])
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдкрде рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ
рдирд╛рдо. рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдХреБрдВрдЬреА, рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ рдЪреВрдХ, рддрдерд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдорджрдж рдкрд╛рда. рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐
рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред SCons рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ
рддреИрдпрд╛рд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛: рдкрдердЪрд░.рдкрдердЕрд╕реНрддрд┐рддреНрд╡ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), рдЬреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдореМрдЬреВрдж рд╣реИ; рдкрдердЪрд░.PathIsFile, рдЬреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде
рдПрдХ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ; рдкрдердЪрд░.PathIsDir, рдЬреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рд╣реИ
рдПрдХ рдореМрдЬреВрджрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛; рдкрдерд╡реИрд░рд┐рдПрдмрд▓.PathIsDirCreate, рдЬреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рдкрде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдЧрд╛
рдореМрдЬреВрдж рд╣реИрдВ; рдФрд░ рдкрдердЪрд░.рдкрдерд╕реНрд╡реАрдХрд╛рд░, рдЬреЛ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрде рдирд╛рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
рдмрд┐рдирд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рддрд░реНрдХ, рдФрд░ рдЬреЛ рдЙрдкрдпреБрдХреНрдд рд╣реИ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдХреНрд╖рдо рд╣реЛрдВ
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕реЗ рддреАрди рддрд░реНрдХ рд▓реЗрдиреЗ рд╣реЛрдВрдЧреЗ
(рдХреБрдВрдЬреА, рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХрд╛ рдирд╛рдо; рд▓рд╣рд░, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ; рдФрд░
env, рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг) рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореВрд▓реНрдп рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ.
рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реБрд╕рдВрдЧрддрддрд╛ рдХреЗ рд╕рд╛рде рдХрдИ рдЪрд░ рдмрдирд╛рдиреЗ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ
рдПрдХ рд╣реА рдХреЙрд▓ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ рддрд░реАрдХрд╛:
vars.AddVariables(
BoolVariable('рдЪреЗрддрд╛рд╡рдиреА', '-Wall рдФрд░ рд╕рдорд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди', 1),
EnumVariable('рдбреАрдмрдЧ', 'рдбреАрдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдкреНрд░рддреАрдХ', 'рдирд╣реАрдВ'
рд╕реНрд╡реАрдХреГрдд_рдорд╛рди=('рд╣рд╛рдБ', 'рдирд╣реАрдВ', 'рдкреВрд░реНрдг'),
map={}, ignorecase=0), # рдХреЗрд╕ рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡
рд╕реВрдЪреА рдЪрд░('рд╕рд╛рдЭрд╛',
'рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд░рдирд╛',
'рд╕рднреА',
рдирд╛рдо = рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реВрдЪреА),
рдкреИрдХреЗрдЬрд╡реИрд░рд┐рдПрдмрд▓('x11',
'рдпрд╣рд╛рдБ рд╕реНрдерд╛рдкрд┐рдд X11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рд╣рд╛рдБ = рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЦреЛрдЬреЗрдВ)',
'рд╣рд╛рдБ'),
PathVariable('qtdir', 'рдЬрд╣рд╛рдБ Qt рдХрд╛ рдореВрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ', qtdir),
PathVariable('foopath', 'рдЬрд╣рд╛рдБ foo рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ', foopath,
рдкрдердЪрд░.PathIsDir),
)
рдкрдЯреНрдЯрд┐рдХрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕
RSI рдкрдЯреНрдЯрд┐рдХрд╛() рддрдерд╛ рдбрд┐рд░() рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕реА рдкрдЯреНрдЯрд┐рдХрд╛ рдФрд░ рдбрд┐рд░ рдиреЛрдбреНрд╕, рдХреНрд░рдорд╢рдГ. рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕,
рдХреНрд░рдорд╢рдГред рдЙрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рджреГрд╢реНрдпрдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ
рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА:
рдкрде
рджреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдмрд┐рд▓реНрдб рдкрдеред рдпрд╣ рдкрде рд╢реАрд░реНрд╖-рд╕реНрддрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЬрд╣рд╛рдБ рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ)ред рдмрд┐рд▓реНрдб рдкрде рд╡рд╣реА рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред
рд╕реНрд░реЛрдд рдкрде рдпрджрд┐ variant_dir рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ.
рдПрдмреНрд╕рдкрде
рджреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рдкрде.
srcрдиреЛрдб()
RSI srcрдиреЛрдб() рд╡рд┐рдзрд┐ рдПрдХ рдФрд░ рд▓реМрдЯрд╛рддреА рд╣реИ рдкрдЯреНрдЯрд┐рдХрд╛ or рдбрд┐рд░ рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реНрд░реЛрдд рдкрде
рджрд┐рдП рдЧрдП рдХрд╛ рдкрдЯреНрдЯрд┐рдХрд╛ or рдбрд┐рд░ред
# рд╢реАрд░реНрд╖ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╡рд░реНрддрдорд╛рди рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
Dir('.').рдкрде
# рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА('.').abspath
# рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ '.' рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢реАрд░реНрд╖ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рд╣реЛрддрд╛ рд╣реИред
Dir('#.').рдкрде
File('foo.c').srcnode().path # рджреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрд░реЛрдд рдкрде.
# рдмрд┐рд▓реНрдбрд░реНрд╕ рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:
foo = env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo.c')
рдкреНрд░рд┐рдВрдЯ "foo %s рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛"%foo.path
A рдбрд┐рд░ рдиреЛрдб рдпрд╛ рдкрдЯреНрдЯрд┐рдХрд╛ рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдбреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрддреНрдкрдиреНрди рдиреЛрдб рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖. A рдбрд┐рд░ рдиреЛрдб рдирдП рдиреЛрдбреНрд╕ рдХреЛ рдиреЛрдб рдХреЗ рднреАрддрд░ рд░рдЦреЗрдЧрд╛
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╣ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ. рдкрдЯреНрдЯрд┐рдХрд╛ рдиреЛрдб рдирдП рдиреЛрдбреНрд╕ рдХреЛ рдЕрдкрдиреЗ рдкреИрд░реЗрдВрдЯ рдиреЛрдб рдореЗрдВ рд░рдЦреЗрдЧрд╛
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЕрд░реНрдерд╛рдд, рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ "рдмрдЧрд▓ рдореЗрдВ")ред рдпрджрд┐ d рдПрдХ рдбрд┐рд░ (рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдиреЛрдб рдФрд░
f рдПрдХ рдкрдЯреНрдЯрд┐рдХрд╛ (рдлрд╝рд╛рдЗрд▓) рдиреЛрдб, рддреЛ рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
d.рдбрд╛рдпрд░(рдирд╛рдо)
рдХрд┐рд╕реА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ d рдирд╛рдорд┐рдд рдирд╛рдо.
dредрдлрд╝рд╛рдЗрд▓(рдирд╛рдо)
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ d рдирд╛рдорд┐рдд рдирд╛рдо.
d.рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐(рдирд╛рдо)
рдХреЗ рднреАрддрд░ рдПрдХ рдЕрдирд╕реБрд▓рдЭрд╛ рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ d рдирд╛рдорд┐рдд рдирд╛рдо.
f.рдбрд╛рдпрд░(рдирд╛рдо)
рдирд╛рдо рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдирд╛рдо рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ f.
fредрдлрд╝рд╛рдЗрд▓(рдирд╛рдо)
рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдирд╛рдо рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ f.
f.рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐(рдирд╛рдо)
рдирд╛рдордХ рдПрдХ рдЕрдирд╕реБрд▓рдЭрд╛ рдиреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдирд╛рдо рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ f.
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
# рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
incl = Dir('рд╢рд╛рдорд┐рд▓')
f = incl.рдлрд╝рд╛рдЗрд▓('header.h')
# рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
dist = Dir('рдкреНрд░реЛрдЬреЗрдХреНрдЯ-3.2.1)
src = dist.Dir('src')
# рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
cfile = рдлрд╝рд╛рдЗрд▓('sample.c')
hfile = cfile.рдлрд╝рд╛рдЗрд▓('sample.h')
# рд╕рдВрдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ = Dir('рджрд╕реНрддрд╛рд╡реЗрдЬрд╝')
html = docs.Dir('html')
рд╕реВрдЪрдХрд╛рдВрдХ = html.рдлрд╝рд╛рдЗрд▓('index.html')
рд╕реАрдПрд╕рдПрд╕ = index.рдлрд╝рд╛рдЗрд▓('app.css')
рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдПрд╕рд╕реАрдУрдПрдирдПрд╕
рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд╕реНрддреБрдПрдБ
рд╕реНрдХреИрдиреНрд╕ рдирдП рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг. In рд╕рд╛рдорд╛рдиреНрдп, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдЬрдм рдЖрдк рдХрд┐рд╕реА рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдЕрдиреНрдп рдмрд╛рд╣рд░реА рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдмрд╕ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдСрдмреНрдЬреЗрдХреНрдЯ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдХреЛрдИ рднреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдЕрдиреНрдп рдЯреВрд▓ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ
рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдиреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдбрд░ рд╣реИ, рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрди рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдпреБрдХреНрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рд╕реАрд╕реА, рд▓рд┐рдВрдХ, рдЖрджрд┐)ред
рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рдореНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдирд┐рд░реНрдорд╛рддрд╛ рд╕рдорд╛рд░реЛрд╣ред рдирд┐рд░реНрдорд╛рддрд╛ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ:
рдХрд╛рд░реНрдп
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рд╕реЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдФрд░ рдЙрд╕рдХреЗ рддрд░реНрдХреЛрдВ (рдЙрдкрдпреБрдХреНрдд) рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА
рддрд░реНрдХ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореИрдкрд┐рдВрдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп (рдпрджрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)
рдПрдХрд╛рдзрд┐рдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди), тАЛтАЛрдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди; рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ (рдЕрдЧрд▓рд╛ рджреЗрдЦреЗрдВ)
рдЕрдиреБрднрд╛рдЧ); рдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреА рд╕реВрдЪреАред
рдПрдХ рдХреНрд░рд┐рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рд╕реНрд░реЛрдд - рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, рд▓рдХреНрд╖реНрдп - рдПрдХ
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, env - рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг.
рдЙрдкрд╕рд░реНрдЧ
рд╡рд╣ рдЙрдкрд╕рд░реНрдЧ рдЬреЛ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЖрдЧреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
* рд╕реНрдЯреНрд░рд┐рдВрдЧ,
* рдкреНрд░рддрд┐рджреЗрдп рд╡рд╕реНрддреБ - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЕрдиреНрдп рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬреЛ рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ (рдП
рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА) рдФрд░ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ,
* рд╢рдмреНрджрдХреЛрд╢ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдкреНрд░рддреНрдпрдп (рдкрд╣рд▓реЗ рд╕реНрд░реЛрдд рдХрд╛) рд╕реЗ рдореИрдкрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рдХреЛ рд╕рдВрдЧрдд рд▓рдХреНрд╖реНрдп рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕реНрд░реЛрдд рдкреНрд░рддреНрдпрдп рдФрд░ рд▓рдХреНрд╖реНрдп рдЙрдкрд╕рд░реНрдЧ рджреЛрдиреЛрдВ
рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд▓рдХреНрд╖реНрдп рдЙрдкрд╕рд░реНрдЧ (
рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ 'рдореВрд▓реНрдп' рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ) рднреА рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХреНрд╖реНрдп
рдЙрдкрд╕рд░реНрдЧ рдХреЛ None рдХреБрдВрдЬреА рдорд╛рди рд╡рд╛рд▓реА рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET",
рдЙрдкрд╕рд░реНрдЧ = "рдлрд╝рд╛рдЗрд▓-")
def gen_prefix(env, рд╕реНрд░реЛрдд):
"рдлрд╝рд╛рдЗрд▓-" + env['рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо'] + '-' рд▓реМрдЯрд╛рдПрдБ
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET",
рдЙрдкрд╕рд░реНрдЧ = gen_prefix)
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET",
рдкреНрд░рддреНрдпрдп = { рдХреЛрдИ рдирд╣реАрдВ: "рдлрд╝рд╛рдЗрд▓-",
"$SRC_SFX_A": gen_prefix })
рдкреНрд░рддреНрдпрдп
рд╡рд╣ рдкреНрд░рддреНрдпрдп рдЬреЛ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рд╣реАред рдпрджрд┐ рдкреНрд░рддреНрдпрдп рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рд╕реНрдХреИрдиреНрд╕ рдПрдХ рдЬреЛрдбрд╝ рджреЗрдЧрд╛
'.' рдХреЛ рдкреНрд░рддреНрдпрдп рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ (рдпрд╛ рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдкреНрд░рд╛рдкреНрдд) рдЕрдЫреВрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ '.' рдХреЛ рдЖрд░рдВрдн рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET"
рдкреНрд░рддреНрдпрдп = "-рдлрд╝рд╛рдЗрд▓")
def gen_suffix(env, рд╕реНрд░реЛрдд):
"." + env['PLATFORM'] + "-file" рд▓реМрдЯрд╛рдПрдБ
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET",
рдкреНрд░рддреНрдпрдп = gen_suffix)
b = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET",
рдкреНрд░рддреНрдпрдп = { рдХреЛрдИ рдирд╣реАрдВ: ".sfx1",
"$SRC_SFX_A": gen_suffix })
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд_рдкреНрд░рддреНрдпрдп
рдХрд┐рд╕реА рднреА рд╕рддреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░, рд╕реНрдХреИрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
рдкреНрд░рддреНрдпрдп рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕рдореЗрдВ рднрд┐рдиреНрди рдкреНрд░рддреНрдпрдп рд╣реЛред (рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рдЕрдЫреВрддрд╛ рдЫреЛрдбрд╝рдирд╛ рд╣реИ рдЬреЛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдИ рд╣реИ
рдкреНрд░рддреНрдпрдп.)
b1 = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET"
рдкреНрд░рддреНрдпрдп = ".out")
b2 = рдмрд┐рд▓реНрдбрд░("build_it < $SOURCE > $TARGET"
рдкреНрд░рддреНрдпрдп = ".out",
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддреНрдпрдп)
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env['рдмрд┐рд▓реНрдбрд░реНрд╕']['B1'] = b1
env['рдмрд┐рд▓реНрдбрд░реНрд╕']['B2'] = b2
# "foo.txt" рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Ensure_suffix рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ.
env.B1('foo.txt', 'foo.in')
# "bar.txt.out" рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Ensure_suffix рд╕реЗрдЯ рд╣реИ.
env.B2('bar.txt', 'bar.in')
src_рдкреНрд░рддреНрдпрдп
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рддреНрдпрдпред рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреА рд╣реИред
рд▓рдХреНрд╖реНрдп_рд╕реНрдХреИрдирд░
рдПрдХ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдлрд╝рд╛рдЗрд▓ред рдЗрд╕ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдирд┐рд╣рд┐рдд рдкрд╛рддреЗ рд╣реИрдВ
рдХреЗрд╡рд▓ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ, рдирд╣реАрдВ рдПрд╕рдЯреА
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБред (рдиреАрдЪреЗ "рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ,
рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП.)
рд╕реНрд░реЛрдд_рд╕реНрдХреИрдирд░
рдПрдХ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЗрд╕ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рд╕реНрдХреИрдирд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ
рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдЦреЛрдЬреЗрдВ # рд╢рд╛рдорд┐рд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВред рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдбрд┐рд░рд╕реНрдХреИрдирд░ рд╕реНрдХреИрдирд░
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреЗрдбрд╝реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рд╕реНрдХреИрдиреНрд╕ рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд░ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛
рдХреЙрд▓ред (рдЕрдкрдирд╛ рд╕реНрдХреИрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ)
(рдЕрдкрдиреЗ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕)
рд▓рдХреНрд╖реНрдп_рдлреИрдХреНрдЯреНрд░реА
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдбрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛
SCons рдиреЛрдбреНрд╕ рдореЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА
target_factory рдорд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдбрд┐рд░, рдЬрдм рдмрд┐рд▓реНрдбрд░ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░
рдкреНрд░рд╡реЗрд╢, рдЬрдм рдмрд┐рд▓реНрдбрд░ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
MakeDirectoryBuilder = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ=my_mkdir, target_factory=Dir)
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Append(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'рдореЗрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА':рдореЗрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдмрд┐рд▓реНрдбрд░})
env.MakeDirectory('new_directory', [])
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ MakeDirectory Builder рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╕реНрд░реЛрдд рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП; рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдорд╛рди рд▓реЗрдЧрд╛
рддрд░реНрдХ рд╕реНрд░реЛрдд рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдпрд╛ рдкреНрд░рддреНрдпрдп рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдорд┐рд▓рд╛рди рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░
рд╕реНрд░реЛрдд рдирд╛рдо рдФрд░ рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛.
рд╕реНрд░реЛрдд_рдлреИрдХреНрдЯреНрд░реА
рдПрдХ рдлреИрдХреНрдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдбрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛
SCons рдиреЛрдбреНрд╕ рдореЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SCons рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА
source_factory рдорд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдбрд┐рд░, рдЬрдм рдмрд┐рд▓реНрдбрд░ рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ,
рдФрд░ рдкреНрд░рд╡реЗрд╢, рдЬрдм рдмрд┐рд▓реНрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ (рдпрд╛ рджреЛрдиреЛрдВ) рдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
CollectBuilder = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ=my_mkdir, source_factory=рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐)
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Append(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'рдХрд▓реЗрдХреНрдЯ':рдХрд▓реЗрдХреНрдЯрдмрд┐рд▓реНрдбрд░})
env.Collect('рд╕рдВрдЧреНрд░рд╣', ['рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛_рдирд╛рдо', 'рдлрд╝рд╛рдЗрд▓_рдирд╛рдо'])
emitter
рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА
рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд▓рдХреНрд╖реНрдп(рд▓рдХреНрд╖реНрдпреЛрдВ) рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред emitter рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рддрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реЛ рдпрд╛
рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА, рдпрд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╢рдмреНрджрдХреЛрд╢ред
(рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрд╕рд░реНрдЬрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреНрд░рдердо рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреНрдпрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(рдПрдорд┐рдЯрд░ рд╢рдмреНрджрдХреЛрд╖ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред)
рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рд╕реНрд░реЛрдд - рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, рд▓рдХреНрд╖реНрдп - рдПрдХ
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, env - рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдгред рдПрдХ рдЙрддреНрд╕рд░реНрдЬрдХ рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЯрдкрд▓ рдЬрд┐рд╕рдореЗрдВ рджреЛ рд╕реВрдЪрд┐рдпрд╛рдБ рд╣реИрдВ, рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА, рдФрд░
рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА.
рдЙрджрд╛рд╣рд░рдг:
def рдИ (рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
рд╡рд╛рдкрд╕реА (рд▓рдХреНрд╖реНрдп + ['foo.foo'], рд╕реНрд░реЛрдд + ['foo.src'])
# рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рд░рд▓ рд╕рдВрдмрдВрдзред
b = рдмрд┐рд▓реНрдбрд░("my_build < $TARGET > $SOURCE",
рдЙрддреНрд╕рд░реНрдЬрдХ = рдИ)
def e2(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
рд╡рд╛рдкрд╕реА (рд▓рдХреНрд╖реНрдп + ['bar.foo'], рд╕реНрд░реЛрдд + ['bar.src'])
# рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реВрдЪреА рдХрд╛ рд╕рд░рд▓ рд╕рдВрдмрдВрдзред
b = рдмрд┐рд▓реНрдбрд░("my_build < $TARGET > $SOURCE",
рдЙрддреНрд╕рд░реНрдЬрдХ = [рдИ, рдИреи])
# рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(MY_EMITTER = e)
b = рдмрд┐рд▓реНрдбрд░("my_build < $TARGET > $SOURCE",
рдПрдорд┐рдЯрд░ = '$MY_EMITTER')
# рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реВрдЪреА рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ред
env = рдкрд░реНрдпрд╛рд╡рд░рдг(EMITTER_LIST = [e, e2])
b = рдмрд┐рд▓реНрдбрд░("my_build < $TARGET > $SOURCE",
рдПрдорд┐рдЯрд░ = '$EMITTER_LIST')
# рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЙрддреНрд╕рд░реНрдЬрдХреЛрдВ рдХреЛ рд╕рдВрдмрджреНрдз рдХрд░рдирд╛
# рдкреНрд░рддреНрдпрдп рд╢рдмреНрджрдХреЛрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ.
def e_suf1(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
рд╡рд╛рдкрд╕реА (рд▓рдХреНрд╖реНрдп + ['another_target_file'], рд╕реНрд░реЛрдд)
def e_suf2(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
рд╡рд╛рдкрд╕реА (рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд + ['another_source_file'])
b = рдмрд┐рд▓реНрдбрд░("my_build < $TARGET > $SOURCE",
рдПрдорд┐рдЯрд░ = {'.suf1' : e_suf1,
'.suf2' : e_suf2})
рдмрд╣реБ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдирд╛ред рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдирд╛ред
рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рд▓рдХреНрд╖реНрдп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ; рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ
рд▓рдХреНрд╖реНрдп рд╕реЗ рд╕рдВрдмрджреНрдз рдкрд░реНрдпрд╛рд╡рд░рдг, рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг рдУрд╡рд░рд░рд╛рдЗрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдпрд╛
рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕рдВрдмрджреНрдз рдХрд░реЗрдВ.
env
рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдЬреЛ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред)
рдЬрдирдХ
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд▓рдХреНрд╖реНрдп(рд▓рдХреНрд╖реНрдпреЛрдВ) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╕реНрд░реЛрдд(рд╕реНрд░реЛрддреЛрдВ) рд╕реЗред рд▓реМрдЯрд╛рдИ рдЧрдИ рдХреНрд░рд┐рдпрд╛(рдХреНрд░рд┐рдпрд╛рдПрдБ) рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдЧрд▓рд╛ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ)ред
рдЬрдирд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдЪрд╛рд░ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рд╕реНрд░реЛрдд - рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, рд▓рдХреНрд╖реНрдп -
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, env - рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЗрддреБ - рдПрдХ рдмреВрд▓рд┐рдпрди
рд╡рд╣ рдорд╛рди рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рдЙрджрд╛рд╣рд░рдг:
def g(рд╕реНрд░реЛрдд, рд▓рдХреНрд╖реНрдп, env, for_signature):
рд╡рд╛рдкрд╕реА [["gcc", "-c", "-o"] + рд▓рдХреНрд╖реНрдп + рд╕реНрд░реЛрдд]
b = рдмрд┐рд▓реНрдбрд░(рдЬрдирд░реЗрдЯрд░=g)
RSI рдЬрдирдХ рдФрд░ рдХрд╛рд░реНрдп рджреЛрдиреЛрдВ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╣реА рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
src_рдмрд┐рд▓реНрдбрд░
рдЬрдм рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рддреНрдпрдп рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдмрд┐рд▓реНрдбрд░ рдХреЗ рдкреНрд░рддреНрдпрдпред рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрд╣реБ-рдЪрд░рдг рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХрд▓ рд╕реНрд░реЛрдд
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдбрд░ рдкреНрд░рддрд┐ рдХреЙрд▓ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд┐рд▓реНрдбрд░ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдИ рдмрд╛рд░ (рдкреНрд░рддреНрдпреЗрдХ рджрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░)ред рдПрдХ рд╕рд╛рде рдХрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рджреЗрдирд╛
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рдПрдХ UserError рдЕрдкрд╡рд╛рдж рдореЗрдВ рдЖрддрд╛ рд╣реИред
RSI рдЬрдирдХ рдФрд░ рдХрд╛рд░реНрдп рджреЛрдиреЛрдВ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╣реА рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрд░реЛрдд_ext_рдорд┐рд▓рд╛рди
рдЬрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рддрд░реНрдХ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрдм рдПрдХ
рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╕рднреА рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВред рдпрджрд┐ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕реНрд░реЛрдд рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдХрд╛рдиреВрдиреА рд╣реИ
рд╡рд┐рднрд┐рдиреНрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЬрд╛рдБрдЪ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рджрдмрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрд░реЛрдд_ext_рдорд┐рд▓рд╛рди рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдХреЛрдИ рдирд╣реАрдВ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЧреИрд░-рд╕рддреНрдп рдореВрд▓реНрдпред рд╕реНрд░реЛрдд_ext_рдорд┐рд▓рд╛рди is
рдЕрдХреНрд╖рдо рдХрд░рдирд╛, рд╕реНрдХреИрдиреНрд╕ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреНрдпрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛
рдЙрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдПрдЧреА рдХрд╛рд░реНрдп рд╢рдмреНрджрдХреЛрд╢ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреА рд╕реЗрдЯрд┐рдВрдЧ рд╕реНрд░реЛрдд_ext_рдорд┐рд▓рд╛рди рд░реЛрдХрддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ
рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдмреЗрдореЗрд▓ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рд╣реБрдИ foo.in рдФрд░ foo.рдЕрддрд┐рд░рд┐рдХреНрдд.
b = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ={'.in' : 'рдмрд┐рд▓реНрдб $SOURCES > $TARGET'},
source_ext_match = рдХреЛрдИ рдирд╣реАрдВ)
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'MyBuild':b})
env.MyBuild('foo.out', ['foo.in', 'foo.extra'])
env
рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдЬреЛ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред)
b = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ="рдмрд┐рд▓реНрдб < $SOURCE > $TARGET")
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'MyBuild' : b})
env.MyBuild('foo.out', 'foo.in', my_arg = 'xyzzy')
chdir
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреЛрдиреНрд╕ рдЗрд╕ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛(рдУрдВ) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рдЕрдЧрд░
la chdir рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдиреЛрдб рд╣реИ, scons рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛. рдпрджрд┐ chdir рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдиреЛрдб рдирд╣реАрдВ рд╣реИ рдФрд░ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ, рддреЛ рд╕реНрдХреЛрдиреНрд╕ рд╣реЛрдЧрд╛
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓реЗрдВ.
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдХреЛрдиреНрд╕ рдирд╣реАрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ
рдкрд╕рдВрдж $рдЯрд╛рд░рдЧреЗрдЯ рдФрд░ $рд╕реНрд░реЛрдд chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп - рдЕрд░реНрдерд╛рдд, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЕрднреА рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдВрдЧреЗ, рдФрд░
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк chdir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЧрд▓рдд рд╣реИред chdir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░реНрд╕
рдХреАрд╡рд░реНрдб рддрд░реНрдХ, рдЬреИрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
${TARGET.рдлрд╝рд╛рдЗрд▓} рдФрд░ ${рд╕реНрд░реЛрдд.рдлрд╝рд╛рдЗрд▓} рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░
рд╕реНрд░реЛрддред
b = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ="рдмрд┐рд▓реНрдб < ${SOURCE.file} > ${TARGET.file}",
рдЪреНрджрд┐рд░=1)
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'MyBuild' : b})
env.MyBuild('sub/dir/foo.out', 'sub/dir/foo.in')
рдЪреЗрддрд╛рд╡рдиреА: рдкрд╛рдпрдерди рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рди рд░рдЦрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ chdir рддрд░реНрдХ рд╣реЛрдЧрд╛ рдирд╣реАрдВ SCons рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ -j рд╡рд┐рдХрд▓реНрдк, рдХреНрдпреЛрдВрдХрд┐
SCons рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдзрд╛рдЧреЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрджрд▓рдирд╛.
рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рджрд┐рдП рдЧрдП рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ (рдЕрд░реНрдерд╛рдд, рдЬрдм
Builder() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЬрдм рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдгрд╛рд▓реА рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред
рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ рд╡рд╕реНрддреБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреЗрд╡рд▓ рд╣реЛрдЧрд╛
рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдмрд┐рд▓реНрдбрд░ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд▓рдХреНрд╖реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд (рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ)
рдХреЙрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рд░реНрдорд┐рдд)ред
рдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдХрдорд╛рдВрдб рдЬрдирд░реЗрдЯрд░
рдлрд╝рдВрдХреНрд╢рди, рдлрд╝рдВрдХреНрд╢рди рдХреНрд░рд┐рдпрд╛рдПрдБ, рдФрд░ рдПрдорд┐рдЯрд░ рдлрд╝рдВрдХреНрд╢рдиред
рдХрд╛рд░реНрдп рд╡рд╕реНрддреБрдПрдБ
RSI рдирд┐рд░реНрдорд╛рддрд╛() рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдирд╛ рдХрд╛рдо рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ рдХрд╛рд░реНрдп рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдмрджрд▓реЗрдВ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯред рдЖрдк рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдп() рд╡реИрд╢реНрд╡рд┐рдХ
рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕реЗ рддрдм рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдирд┐рд░реНрдорд╛рддрд╛() рдлрд╝рдВрдХреНрд╢рдиред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдпрд╛ рдпрд╣ рдмрд╕ рдЗрд╕реЗ рдХрд░рдиреЗ рджреЗрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЬрдм рдПрдХрд╛рдзрд┐рдХ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдЕрд▓рдЧ рдПрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ
рд╡рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.
RSI рдХрд╛рд░реНрдп() рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЧрдИ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдкреНрд░рдердо рддрд░реНрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░:
рдХрд╛рд░реНрдп
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд╛рд░
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдПрдХреНрд╢рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкрд╣рд▓реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ @ (рдПрдЯ-рд╕рд╛рдЗрди) рдореБрджреНрд░рдг рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛, рдпрд╛ - (рд╣рд╛рдЗрдлрд╝рди) рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрджреЗрд╢:
рдХреНрд░рд┐рдпрд╛('$CC -c -o $TARGET $SOURCES')
# рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдкрдВрдХреНрддрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ.
рдХреНрд░рд┐рдпрд╛('@build $TARGET $SOURCES')
# рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ
рдХреНрд░рд┐рдпрд╛('-рдмрд┐рд▓реНрдб $TARGET $SOURCES')
рд╕реВрдЪреА
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рдИ рдЬрд╛рддреА рд╣реИред
рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдЕрдВрджрд░ la
рд╕реВрдЪреА рд╕реНрд╡рдпрдВ рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЖрдВрддрд░рд┐рдХ рд╕реВрдЪреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдФрд░ рддрд░реНрдХ рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдпрд╣ рдХрд┐рд╕реА рддрд░реНрдХ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд╕реВрдЪреА рдХреЗ рднреАрддрд░ рд╕реВрдЪреА рдореЗрдВ рдХрдорд╛рдВрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛:
рдХреНрд░рд┐рдпрд╛([['cc', '-c', '-Dрд╕рдлреЗрдж рд╕реНрдерд╛рди', '-o', '$TARGET', '$SOURCES']])
рд╕рдорд╛рд░реЛрд╣
рдпрджрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рддреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдПрдХреНрд╢рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреАрди рдХреАрд╡рд░реНрдб рддрд░реНрдХ рд▓реЗрдиреЗ рдЪрд╛рд╣рд┐рдП, рд▓рдХреНрд╖реНрдп (рдПрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
рд▓рдХреНрд╖реНрдп рдлрд╛рдЗрд▓), рд╕реНрд░реЛрдд (рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ) рдФрд░ env (
рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг)ред рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд
рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕реНрд░реЛрдд рд╣реИрдВ, рддреЛ рддрд░реНрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо(рдирд╛рдо) рдЙрдирдХреЗ рдиреЛрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрд╛рдпрдерди str() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕:
рд▓рдХреНрд╖реНрдп_рдлрд╝рд╛рдЗрд▓_рдирд╛рдо = str(рд▓рдХреНрд╖реНрдп)
source_file_names = рдорд╛рдирдЪрд┐рддреНрд░(рд▓реИрдореНрдмреНрдбрд╛ x: str(x), рд╕реНрд░реЛрдд)
рдлрд╝рдВрдХреНрд╢рди рдХреЛ 0 рдпрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреЛрдИ рдирд╣реАрдВ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЗрдВ)ред рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд╡рд╛рдж рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЧреИрд░-рд╢реВрдиреНрдп рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
def build_it(рд▓рдХреНрд╖реНрдп = рдХреЛрдИ рдирд╣реАрдВ, рд╕реНрд░реЛрдд = рдХреЛрдИ рдирд╣реАрдВ, env = рдХреЛрдИ рдирд╣реАрдВ):
# рд╕реНрд░реЛрдд рд╕реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рд╡рд╛рдкрд╕реА 0
a = рдПрдХреНрд╢рди(build_it)
рдпрджрд┐ рдХреНрд░рд┐рдпрд╛ рддрд░реНрдХ рдЙрдкрд░реНрдпреБрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рддреЛ None рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рддрдм рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм
рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдПрдХреНрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдПрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ред рддрд░реНрдХ рдпрд╛ рддреЛ рдкрд╛рдпрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ.
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рд╣реЗрддреБ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдХреНрд░рд┐рдпрд╛ред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реНрдЯреНрд░рдлрд╝рдВрдХреНрд╢рди= рдХреАрд╡рд░реНрдб
рддрд░реНрдХред рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреАрди рдХреАрд╡рд░реНрдб рд▓реЗрдиреЗ рд╣реЛрдВрдЧреЗ
рддрд░реНрдХ: рд▓рдХреНрд╖реНрдп (рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ), рд╕реНрд░реЛрдд (рдПрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдФрд░ env (рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдорд╛рд╣реМрд▓) рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд
рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕реНрд░реЛрдд рд╣реИрдВ, рддреЛ рддрд░реНрдХ рдиреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓.
рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреБрдж рд╣реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реАрдПрдордбреАрд╕реНрдЯреНрд░= рдХреАрд╡рд░реНрдб рддрд░реНрдХред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЪрд░ рд╣реЛрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ $TARGET(S) рдФрд░
$SOURCE(S), рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдПрдХрд▓ рдЪрд░ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣реАрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдиреНрдпрдерд╛, SCons рд╕реНрд╡рдпрдВ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
def build_it(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
# рд╕реНрд░реЛрдд рд╕реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рд╡рд╛рдкрд╕реА 0
def string_it(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
"'%s' рд╕реЗ '%s' рдХрд╛ рдирд┐рд░реНрдорд╛рдг" рд▓реМрдЯрд╛рдПрдБ % (рд▓рдХреНрд╖реНрдп[0], рд╕реНрд░реЛрдд[0])
# рд╕реНрдерд┐рддрд┐рдЧрдд рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ.
f = рдПрдХреНрд╢рди(build_it, string_it)
s = Action(build_it, "'$SOURCE' рд╕реЗ '$TARGET' рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
# рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ.
f = рдПрдХреНрд╢рди(build_it, strfunction=string_it)
s = Action(build_it, cmdstr="'$SOURCE' рд╕реЗ '$TARGET' рдХрд╛ рдирд┐рд░реНрдорд╛рдг")
# рдЖрдк рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдЪрд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ.
l = рдПрдХреНрд╢рди(build_it, '$STRINGIT')
рддреАрд╕рд░рд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рддрд░реНрдХ, рдпрджрд┐ рдореМрдЬреВрдж рд╣реЛ, рддреЛ рдпрд╛ рддреЛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреА рд╕реВрдЪреА рдЬрд┐рдирдХреЗ рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рдХрд╛рд░реНрд░рд╡рд╛рдИ рддрдм рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рдХреНрд╖реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдмрджрд▓ рдЧрдИ рд╣реИред
рдЪрд░ рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд░рд▓рд┐рд╕реНрдЯ= рдХреАрд╡рд░реНрдб рдкреИрд░рд╛рдореАрдЯрд░; рдпрджрд┐ рджреЛрдиреЛрдВ рдореМрдЬреВрдж рд╣реИрдВ, рддреЛ рд╡реЗ
рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред рдпрд╣ рддрдм рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдмрджрд▓рддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЗрд╕рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрддреА, рдХреНрдпреЛрдВрдХрд┐
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЪрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ
рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдПрдХреНрд╢рди рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
def build_it(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env):
# 'XXX' рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
open(target[0], 'w').write(env['XXX'])
рд╡рд╛рдкрд╕реА 0
# рд╕реНрдерд┐рддрд┐рдЧрдд рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ.
a = рдПрдХреНрд╢рди(build_it, '$STRINGIT', ['XXX'])
# рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ.
a = рдПрдХреНрд╢рди(build_it, varlist=['XXX'])
RSI рдХрд╛рд░реНрдп() рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
chdir RSI chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ scons рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓рдирд╛ред рдпрджрд┐ chdir рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ
рдиреЛрдб, рд╕реНрдХреЛрдВрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░ chdir рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ
рдпрд╛ Node рдФрд░ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ, рддреЛ scons рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдХреЛрдиреНрд╕ рдирд╣реАрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдЬреИрд╕реЗ
$рдЯрд╛рд░рдЧреЗрдЯ рдФрд░ $рд╕реНрд░реЛрдд chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп - рдЕрд░реНрдерд╛рдд, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлрд╝рд╛рдЗрд▓
рдирд╛рдо рдЕрднреА рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп SConstruct рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдВрдЧреЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк
chdir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЧрд▓рддред chdir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдмрд┐рд▓реНрдбрд░реНрд╕,
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреИрд╕реЗ ${TARGET.рдлрд╝рд╛рдЗрд▓} рдФрд░ ${рд╕реНрд░реЛрдд.рдлрд╝рд╛рдЗрд▓}
рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
a = Action("рдмрд┐рд▓реНрдб < ${SOURCE.file} > ${TARGET.file}",
рдЪреНрджрд┐рд░=1)
exitstatfunc RSI рдХрд╛рд░реНрдп() рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рднреА рд▓реЗрддрд╛ рд╣реИ exitstatfunc рдХреАрд╡рд░реНрдб рддрд░реНрдХ
рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ (рдпрд╛ рд╡рд╛рдкрд╕реА рдорд╛рди) рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдПрдХ рдордирдорд╛рдирд╛ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдореВрд▓реНрдп рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЛ рд╡рд┐рд╢реЗрд╖ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдФрд░ рдПрд╕рдХреЙрдиреНрд╕ рдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣рдореЗрд╢рд╛ рд╕рдлрд▓ рд╣реЛ:
def рд╣рдореЗрд╢рд╛_рд╕рдлрд▓(s):
# рд╣рдореЗрд╢рд╛ 0 рд▓реМрдЯрд╛рдПрдВ, рдЬреЛ рд╕рдлрд▓рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ.
рд╡рд╛рдкрд╕реА 0
a = Action("рдмрд┐рд▓реНрдб < ${SOURCE.file} > ${TARGET.file}",
exitstatfunc=рд╣рдореЗрд╢рд╛_рд╕рдлрд▓)
рдмреИрдЪ_рдХреБрдВрдЬреА RSI рдмреИрдЪ_рдХреБрдВрдЬреА рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХрд╛рдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рдПрдХрд╛рдзрд┐рдХ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдХрд╛рдзрд┐рдХ рдкрд╛рд╕ рдХрд░рдХреЗ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ "рдмреИрдЪ рд╕рдВрдХрд▓рди" рд╣реИ
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Microsoft рдХреЗ Visual C / C++ рдЬреИрд╕реЗ рдХрд┐рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдПрдХрд▓ рдЖрд╣реНрд╡рд╛рди рдкрд░
рд╕рдВрдХрд▓рдХ) рдпрджрд┐ рдмреИрдЪ_рдХреБрдВрдЬреА рддрд░реНрдХ рдХреЛрдИ рднреА рдЧреИрд░-рдЧрд▓рдд, рдЧреИрд░-рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рдорд╛рди рд╣реИ,
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рд╕реНрдХреИрдиреНрд╕ рдПрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдПрдХ рд╣реА рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХрд▓ рдЖрд╣реНрд╡рд╛рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпрд╛ рдлрд╝рдВрдХреНрд╢рдиред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреА
рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп рд╕рд╛рде рд╣реА) рдХреЗрд╡рд▓ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЙрди рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдм рд╕реЗ рдмрджрд▓ рдЧрдП рд╣реИрдВ рдЬрдм рд╕реЗ рдЙрдирдХреЗ рд▓рдХреНрд╖реНрдп рдмрджрд▓реЗ рдЧрдП рдереЗ
рдмрдирд╛рдпрд╛ред
рдЙрджрд╛рд╣рд░рдг:
a = рдПрдХреНрд╢рди('рдмрд┐рд▓реНрдб $CHANGED_SOURCES', рдмреИрдЪ_рдХреА=рд╕рддреНрдп)
RSI рдмреИрдЪ_рдХреБрдВрдЬреА рддрд░реНрдХ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреБрдВрдЬреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдмреИрдЪ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХрддреНрд░рд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди "рдмреИрдЪреЛрдВ" рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреИрдЪ_рдХреБрдВрдЬреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рд▓реЗрдиреЗ рд╣реЛрдВрдЧреЗ:
рдХрд╛рд░реНрдп
рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБ.
env
рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг.
рд▓рдХреНрд╖реНрдп
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╕реВрдЪреА.
рд╕реНрд░реЛрдд
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреА рд╕реВрдЪреА.
рд▓реМрдЯрд╛рдИ рдЧрдИ рдХреБрдВрдЬреА рдЖрдо рддреМрд░ рдкрд░ рддрд░реНрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП,
рдХрд┐рд╕реА рднреА рдЙрдЪрд┐рдд рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рддрдп рдХрд░рдирд╛ рдХрд┐ рдПрдХрд╛рдзрд┐рдХ рдЖрд╣реНрд╡рд╛рдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрджрд╛рд╣рд░рдг, рдП рдмреИрдЪ_рдХреБрдВрдЬреА рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдХреЛ рд▓реМрдЯрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗ env рддрд░реНрдХ рдЬреЛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рд╕реНрдХреИрдиреНрд╕ рдмреИрдЪ-рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛
рдЙрд╕ рдЪрд░ рдХреЗ рдорд┐рд▓рд╛рди рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп, рдпрд╛ рд╢рд╛рдпрдж рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ id() рдХреА
рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдХреИрдиреНрд╕ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдмреИрдЪ-рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛
рдЙрд╕реА рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХреЛрдИ рдирд╣реАрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐
рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рдХрд┐рд╕реА рднреА рдмреИрдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдЖрджреЗрд╢ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдПрдХ рдЕрд▓рдЧ рдЖрд╣реНрд╡рд╛рди рджреНрд╡рд╛рд░рд╛ред рдЙрджрд╛рд╣рд░рдг:
def рдмреИрдЪ_рдХреБрдВрдЬреА(рдХрд╛рд░реНрд░рд╡рд╛рдИ, рд╡рд╛рддрд╛рд╡рд░рдг, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд):
tdir = рд▓рдХреНрд╖реНрдп[0].dir
рдпрджрд┐ tdir.name == 'рд╡рд┐рд╢реЗрд╖':
# рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХрд╛ рдмреИрдЪ-рдирд┐рд░реНрдорд╛рдг рди рдХрд░реЗрдВ
# рд╡рд┐рд╢реЗрд╖/ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ.
рдХреЛрдИ рдирд╣реАрдВ рд▓реМрдЯрд╛
рд╡рд╛рдкрд╕реА (рдЖрдИрдбреА(рдХрд╛рд░реНрд░рд╡рд╛рдИ), рдЖрдИрдбреА(env), tdir)
a = рдПрдХреНрд╢рди('рдмрд┐рд▓реНрдб $CHANGED_SOURCES', рдмреИрдЪ_рдХреБрдВрдЬреА=рдмреИрдЪ_рдХреБрдВрдЬреА)
рдХрдИ рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдп рдХрд╛рд░реНрдп
рд╕реНрдХреИрдиреНрд╕ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддреЗ рд╣реИрдВ
рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реЗрд░рдлреЗрд░ред рдпреЗ рдПрдВрдЯ рдмрд┐рд▓реНрдб рдореЗрдВ "рдХрд╛рд░реНрдпреЛрдВ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ
рдЙрдкрдХрд░рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд░рд┐рдЯрд░реНрди рд▓реМрдЯрд╛рдПрдВ
рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рдЙрдЪрд┐рдд рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдореЗрдВ
рд╢рдмреНрджрд╛рд╡рд▓реА, рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИрдВ рдлрд╝реИрдХреНрдЯрд░реА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ.)
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрди рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рджреЛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХреЗ рд╣реИрдВ
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдкрдХреЛ SConscript рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддреЗ рд╕рдордп рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рд╕реНрдкрд░реНрд╢('рдлрд╝рд╛рдЗрд▓'))
рджреВрд╕рд░рд╛, рдЖрдк рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╕реВрдЪреА рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ. рдЖрджреЗрд╢
рд╡рд┐рдзрд┐ред рдпрд╣ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╣реЗрд░рдлреЗрд░ рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рд╣рд░реА рдЖрджреЗрд╢реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реБрдП рдмрд┐рдирд╛:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(TMPBUILD = '/tmp/builddir')
env.Command('foo.out', 'foo.in',
[рдПрдордХреЗрдбреАрдЖрдИрдЖрд░('$TMPBUILD'),
рдХреЙрдкреА('$TMPBUILD', '${SOURCE.dir}'),
"рд╕реАрдбреА $TMPBUILD && рдореЗрдХ",
рд╣рдЯрд╛рдПрдВ('$TMPBUILD')])
рдЪрд╛рдореЛрдж(рдЧрдВрддрд╡реНрдп, рдореЛрдб)
рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдбред рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(Chmod('рдлрд╝рд╛рдЗрд▓', 0755))
env.Command('foo.out', 'foo.in',
['$TARGET', '$SOURCE' рдХреЙрдкреА рдХрд░реЗрдВ),
chmod('$TARGET', 0755)])
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐(рдЧрдВрддрд╡реНрдп, ")
рдПрдХ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛ " рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЧрдВрддрд╡реНрдп
рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛. рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рдХреЙрдкреА рдХрд░реЗрдВ('foo.output', 'foo.input'))
env.Command('рдмрд╛рд░.рдЖрдЙрдЯ', 'рдмрд╛рд░.рдЗрди',
рдХреЙрдкреА('$TARGET', '$SOURCE'))
рдорд┐рдЯрд╛рдирд╛(рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐[рдЕрд╡рд╢реНрдп_рдореМрдЬреВрдж_рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП])
рдПрдХ рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐, рдЬреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рд╣реИ, рддреЛ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрд╡рд╢реНрдп_рдореМрдЬреВрдж_рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдкрд╛рдпрдерди рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА рдЬрд╛рдПрдЧреА
рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдЕрд╡рд╢реНрдп_рдореМрдЬреВрдж=0, рдЕрд░реНрдерд╛рдд, рдХреНрд░рд┐рдпрд╛ рдЪреБрдкрдЪрд╛рдк рдХреБрдЫ рдирд╣реАрдВ рдХрд░реЗрдЧреА
рдпрджрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рд╣рдЯрд╛рдПрдБ('/tmp/buildroot'))
env.Command('foo.out', 'foo.in',
['${TARGET.dir}' рд╣рдЯрд╛рдПрдВ),
рдорд╛рдИрдмрд┐рд▓реНрдбрдПрдХреНрд╢рди])
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рд╣рдЯрд╛рдПрдБ('file_that_must_exist', must_exist=1))
рдордХрджрд┐рд░(рджреАрд░)
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рджреАрд░ . рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(Mkdir('/tmp/outputdir'))
env.Command('foo.out', 'foo.in',
[рдПрдордХреЗрдбреАрдЖрдИрдЖрд░('/tmp/builddir'),
рдХреЙрдкреА('/tmp/builddir/foo.in', '$SOURCE'),
"рд╕реАрдбреА /tmp/builddir && make",
рдХреЙрдкреА('$TARGET', '/tmp/builddir/foo.out')])
рдХрджрдо(рдЧрдВрддрд╡реНрдп, ")
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ " рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдПрдБ рдЧрдВрддрд╡реНрдп
рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛. рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ('рдлрд╝рд╛рдЗрд▓.рдЧрдВрддрд╡реНрдп', 'рдлрд╝рд╛рдЗрд▓.рд╕реНрд░реЛрдд'))
env.Command('рдЖрдЙрдЯрдкреБрдЯ_рдлрд╝рд╛рдЗрд▓', 'рдЗрдирдкреБрдЯ_рдлрд╝рд╛рдЗрд▓',
[рдорд╛рдИрдмрд┐рд▓реНрдбрдПрдХреНрд╢рди,
рдореВрд╡('$TARGET', 'file_created_by_MyBuildAction')])
рдЫреВрдирд╛(рдкрдЯреНрдЯрд┐рдХрд╛)
рдПрдХ рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░ рд╕рдВрд╢реЛрдзрди рд╕рдордп рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ рдкрдЯреНрдЯрд┐рдХрд╛ред рдЙрджрд╛рд╣рд░рдг:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ(рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ('рдлрд╝рд╛рдЗрд▓_рдХреЛ_рд╕реНрдкрд░реНрд╢_рдХрд┐рдпрд╛_рдЬрд╛рдП'))
env.Command('рдорд╛рд░реНрдХрд░', 'рдЗрдирдкреБрдЯ_рдлрд╝рд╛рдЗрд▓',
[рдорд╛рдИрдмрд┐рд▓реНрдбрдПрдХреНрд╢рди,
рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ('$TARGET')])
рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
рдХрд┐рд╕реА рдЖрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реНрдХреИрдиреНрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдкреНрд░рдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЬреЛ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВред рдЪрд░ рдПрдХ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ $ рдЙрдкрд╕рд░реНрдЧред
рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, scons рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд
рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рдЧрдП рд╣реИрдВ
рдЕрдВрддрд┐рдо рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп
рдЙрди рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ рдЙрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рддрдм рд╕реЗ рдмрджрд▓ рдЧрдП рд╣реИрдВ
рд▓рдХреНрд╖реНрдп рдЕрдВрддрд┐рдо рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрд░реЛрдд
рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕реНрд░реЛрдд рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдпрд╛ рдкрд╣рд▓реЗ рд╕реНрд░реЛрдд рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рдпрджрд┐ рдПрдХрд╛рдзрд┐рдХ рд╕реНрд░реЛрдд рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рд╕реНрд░реЛрдд
рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо.
TARGET рдореЗрдВ
рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпреЗ рдЬрд╛ рд░рд╣реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдпрд╛ рдпрджрд┐ рдкрд╣рд▓реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рдХрдИ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рд▓рдХреНрд╖реНрдп
рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпреЗ рдЬрд╛ рд░рд╣реЗ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо.
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд╕реНрд░реЛрдд
рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬрд┐рдирдореЗрдВ рдирд╣реАрдВ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рдЧрдпрд╛
рд▓рдХреНрд╖реНрдп рдЕрдВрддрд┐рдо рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд_рд▓рдХреНрд╖реНрдп
рдЙрди рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ рдЙрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рдирд╣реАрдВ рдмрджрд▓
рдЬрдм рд╕реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдВрддрд┐рдо рдмрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЪрд░ рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдгред)
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░ CC='cc', рд▓рдХреНрд╖реНрдп=['foo'], рдФрд░
рд╕реНрд░реЛрдд=['foo.c', 'bar.c']:
рдХреНрд░рд┐рдпрд╛='$CC -c -o $TARGET $SOURCES'
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛:
рд╕реАрд╕реА -рд╕реА -рдУ рдлреВ рдлреВ.рд╕реА рдмрд╛рд░.рд╕реА
рдирд╛рдо рдХреЛ рдореВрд▓ рдирд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ ({}) рд╕реЗ рдШреЗрд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдЕрдХреНрд╖рд░ред рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрдЬрд╝ рдХреЗ рднреАрддрд░, рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдирд╛рдо рдореЗрдВ рдкрд╛рдпрдерди рд╕реНрд▓рд╛рдЗрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╕реВрдЪреА рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЖрдЗрдЯрдо рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
рд╕реНрдЯреНрд░рд┐рдВрдЧ:
${рд╕реНрд░реЛрдд[1]}
рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛:
рдмрд╛рд░.рд╕реА
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рдЪрд░ рдирд╛рдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╢реЛрдзрдХ рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрдВрддрд░реНрд╡реЗрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕реЗрдЬрд╝ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛:
рдЖрдзрд╛рд░
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рдЖрдзрд╛рд░ рдкрде, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдкреНрд░рддреНрдпрдп рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред
рджреАрд░
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ.
рдкрдЯреНрдЯрд┐рдХрд╛
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рднрд╛рдЧ рдХреЛ рдЫреЛрдбрд╝рдХрд░.
рдлрд╝рд╛рдЗрд▓рдмреЗрд╕
рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдореВрд▓ рдирд╛рдо, рдХрд┐рд╕реА рднреА рдкреНрд░рддреНрдпрдп рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдкреНрд░рддреНрдпрдп
рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп.
рдПрдмреНрд╕рдкрде
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░реНрдг рдкрде рдирд╛рдо.
POSIX
рдкрде рдХрд╛ POSIX рд░реВрдк, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ / (рдлреЙрд░рд╡рд░реНрдб рд╕реНрд▓реИрд╢) рдирд╣реАрдВ
рдмреИрдХрд╕реНрд▓реИрд╢ред рдпрд╣ рдХрднреА-рдХрднреА рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдкрде рдХрд┐рд╕реА рдмреИрдХрд╕реНрд▓реИрд╢ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдиреНрдп (POSIX) рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдлрд╝рд╛рдЗрд▓ред
srcpath
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░(). рдпрджрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рддред
srcdir
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░()ред рдЕрдЧрд░
рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рднрд╛рдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЖрд░рдПрд╕рдЖрд░рд╕реАрдкрде
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо
рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░(). рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдкрде
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд.
рдЖрд░рдПрд╕рдЖрд░рд╕реАрдбрд┐рд░
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдпреБрдХреНрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рд╡реИрд░рд┐рдПрдВрдЯрдбрд╛рдпрд░(). рдпрджрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рднрд╛рдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╢реЛрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдЧрд╛:
$TARGET => рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдлрд╝рд╛рдЗрд▓.x
${TARGET.base} => рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдлрд╝рд╛рдЗрд▓
${TARGET.dir} => рдЙрдк/dir
${TARGET.рдлрд╝рд╛рдЗрд▓} => рдлрд╝рд╛рдЗрд▓.x
${TARGET.filebase} => рдлрд╝рд╛рдЗрд▓
${TARGET.suffix} => .x
${TARGET.abspath} => /top/dir/sub/dir/file.x
SConscript('src/SConscript', variant_dir='sub/dir')
$SOURCE => рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдлрд╝рд╛рдЗрд▓.x
${SOURCE.srcpath} => src/file.x
${SOURCE.srcdir} => src
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА('/usr/repository')
$SOURCE => рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдлрд╝рд╛рдЗрд▓.x
${SOURCE.rsrcpath} => /usr/repository/src/file.x
${SOURCE.rsrcdir} => /usr/repository/src
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордирдорд╛рдиреЗ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рд╕рдВрд╢реЛрдзрдХреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдмрд╕ рд╣реИрдВ
рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛ TARGET, SOURCES, рдЖрджрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ) рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ "рдкрд╛рдпрдерди рдХреЛрдб рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рджреЗрдЦреЗрдВред
рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЪрд░ рдирд╛рдо рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд░ред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд╛рд░ рддрд░реНрдХ рд▓реЗрдиреЗ рдЪрд╛рд╣рд┐рдП: рд▓рдХреНрд╖реНрдп - рдЗрд╕рдХреА рд╕реВрдЪреА
рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕, рд╕реНрд░реЛрдд - рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА, env - рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг,
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЗрддреБ - рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдмрд┐рд▓реНрдб рд╕рд┐рдЧреНрдиреЗрдЪрд░ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред SCons рд╡рд╣ рд╕рдм рдХреБрдЫ рдбрд╛рд▓реЗрдЧрд╛ рдЬреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ:
def foo(рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env, for_signature):
"рдмрд╛рд░" рд▓реМрдЯрд╛рдПрдВ
# $BAR рдХреЛ "bar baz" рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛
env=рдкрд░реНрдпрд╛рд╡рд░рдг(FOO=foo, BAR="$FOO baz")
рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдХрд░ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡рд╣ рдХреНрд▓рд╛рд╕ рдЬреЛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░рддрд╛ рд╣реИ рдЬрдм
__рдкреБрдХрд╛рд░рдирд╛__() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд▓рдЧреНрди рддрд╛рдХрд┐ рддрд░реНрдХ рдЗрдВрд╕реНрдЯреИрдВрд╕рд┐рдПрд╢рди рд╕реЗ рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВ
рдХрдХреНрд╖рд╛ рдХрд╛:
рдХреНрд▓рд╛рд╕ рдлреВ(рдСрдмреНрдЬреЗрдХреНрдЯ):
def init(рд╕реНрд╡рдпрдВ, рдЖрд░реНрдЧ):
рд╕реНрд╡.рдЖрд░реНрдЧ = рдЖрд░реНрдЧ
def __call__(рд╕реНрд╡рдпрдВ, рд▓рдХреНрд╖реНрдп, рд╕реНрд░реЛрдд, env, for_signature):
self.arg + " рдмрд╛рд░" рд▓реМрдЯрд╛рдПрдВ
# $BAR рдХреЛ "рдореЗрд░реЗ рддрд░реНрдХ рдмрд╛рд░ рдмрд╛рдЬрд╝" рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
env=рдкрд░реНрдпрд╛рд╡рд░рдг(FOO=foo, BAR="${FOO('my argument')} baz")
рд╡рд┐рд╢реЗрд╖ рдЫрджреНрдо-рдЪрд░ $( рдФрд░ $) рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЬреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдХрд╛рд░рдг рдмрдирдирд╛ - рдЕрд░реНрдерд╛рдд, рдЬреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ред $( рдФрд░ $) рд╣реЛрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ $( рдФрд░ $)
рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди:
echo рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рд╣реБрдЖ $( $TODAY $). > $TARGET
рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛:
echo рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг $TODAY рд╣реБрдЖ. > $TARGET
рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХрдорд╛рдВрдб рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛрдЧрд╛:
рдЗрдХреЛ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рд╣реБрдЖ . > $TARGET
рдЕрдЬрдЧрд░ рдХреЛрдб рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
рдХрд┐рд╕реА рднреА рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рднреАрддрд░ ${-} рдЬреЛрдбрд╝реЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдкрд╛рдпрдерди 'eval' рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╛рдпрдерди рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде
рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ:
env['COND'] = 0
env.Command('foo.out', 'foo.in',
'''echo ${COND==1 рдФрд░ 'FOO' рдпрд╛ 'BAR'} > $TARGET''')
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЖрджреЗрд╢ рдпрд╛ рддреЛ рд╣реЛрдЧрд╛
рдЗрдХреЛ FOO > foo.out
or
рдЗрдХреЛ рдмрд╛рд░ > foo.out
env['COND'] рдХреЗ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрдм рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИред рдореВрд▓реНрдпрд╛рдВрдХрди
рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддрдм рдирд╣реАрдВ рдЬрдм SConscript рдкрдврд╝реА рдЬрд╛ рд░рд╣реА рд╣реЛрддреА рд╣реИред рддреЛ рдЕрдЧрд░
env['COND'] рдХреЛ рдмрд╛рдж рдореЗрдВ SConscript рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ COND, FOO рдФрд░ BAR рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рд╣реИрдВ
рдЪрд░, рдФрд░ рдЙрдирдХреЗ рдорд╛рди рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред FOO рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА
рддрддреНрд╡реЛрдВ рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
env=рдкрд░реНрдпрд╛рд╡рд░рдг()
env['COND'] = 0
env['FOO'] = ['foo1', 'foo2']
env['рдмрд╛рд░'] = 'рдмрд╛рд░рдмрд╛рд░'
env.Command('foo.out', 'foo.in',
'echo ${COND==1 рдФрд░ FOO рдпрд╛ BAR} > $TARGET')
# рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
# рдЗрдХреЛ тАЛтАЛрдлрд╝реВ1 рдлрд╝реВ2 > рдлрд╝реВ.рдЖрдЙрдЯ
SCons рдирд┐рд░реНрдорд╛рдг рдЪрд░реЛрдВ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
рддрд╛рд░
рдЬрдм рдорд╛рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреА рд╕реНрдкреЗрд╕-рдбрд┐рд▓реАрдорд┐рдЯреЗрдб рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рддрд░реНрдХред
рд╕реВрдЪреА
рдЬрдм рдорд╛рди рдПрдХ рд╕реВрдЪреА рд╣реИ рддреЛ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реВрдЪреА рдХрд╛ рддрддреНрд╡ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреНрдп
рдЬреЛ рдХреБрдЫ рднреА рд╕реВрдЪреА рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ рдЙрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ.
рдирдИ рдкрдВрдХреНрддрд┐
рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг (\n) рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реАрдорд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдиреНрдпреВрд▓рд╛рдЗрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЕрдиреНрдп рд╕рднреА рдХреЗ рдмрд╛рдж рдХреА рдЬрд╛рддреА рд╣реИ
рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдЗрд╕рд▓рд┐рдП рддрд░реНрдХреЛрдВ (рдЬреИрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбреЗрдб рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
рдиреНрдпреВрд▓рд╛рдЗрди рдЕрдХреНрд╖рд░ред рдпрд╣ рд╕реАрдорд╛ рд╕рдВрднрд╡рддрдГ SCons рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред
рд╕реНрдХреИрдирд░ рд╡рд╕реНрддреБрдПрдБ
рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрдХреИрдирд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирдП рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ. рд╕реНрдХреИрдирд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
рд╕рдорд╛рд░реЛрд╣
рдпрд╣ рдпрд╛ рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 1) рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдиреЛрдб (рдлрд╝рд╛рдЗрд▓) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ
рд╕рд╛рдордЧреНрд░реА; рдпрд╛: 2) рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЬреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)
(рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП) рдЕрдиреНрдп рд╕реНрдХреИрдирд░реНрд╕ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рддрд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреАрди рдпрд╛ рдЪрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рд▓реЗрдиреЗ рд╣реЛрдВрдЧреЗ
рддрд░реНрдХ:
def рд╕реНрдХреИрдирд░_рдлрд╝рдВрдХреНрд╢рди(рдиреЛрдб, рдПрдирд╡реА, рдкрде):
def рд╕реНрдХреИрдирд░_рдлрд╝рдВрдХреНрд╢рди(рдиреЛрдб, env, рдкрде, arg=рдХреЛрдИ рдирд╣реАрдВ):
RSI рдиреЛрдб рддрд░реНрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрдВрддрд░рд┐рдХ SCons рдиреЛрдб рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ str(рдиреЛрдб) рд╕реЗрд╡рд╛ рдореЗрд░реЗ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдиреЛрдб.get_contents() рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП.
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╕реНрдХреИрдирд░ рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ, рдЗрд╕рд▓рд┐рдП
рд╕реНрдХреИрдирд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╕реНрдХреИрди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ
рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
RSI env рддрд░реНрдХ рд╕реНрдХреИрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред рдЗрд╕рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдХрд╛ рдЙрдкрдпреЛрдЧ env.рд╢рдмреНрджрдХреЛрд╢() рд╡рд┐рдзрд┐.
RSI рдкрде рддрд░реНрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ (рдпрд╛ рд╕реВрдЪреА) рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдЯрдкрд▓ рд╣реЛрдЧрд╛ рдкрде_рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)
RSI arg рддрд░реНрдХ рд╡рд╣ рддрд░реНрдХ рд╣реИ рдЬреЛ рд╕реНрдХреИрдирд░ рдмрдирд╛рддреЗ рд╕рдордп рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрджрд┐ рдХреЛрдИ рд╣реЛред
рдирд╛рдо
рд╕реНрдХреИрдирд░ рдХрд╛ рдирд╛рдоред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрдХреИрдирд░ рдХреА рдЖрдВрддрд░рд┐рдХ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд░реНрдХ
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдЬреЛ, рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕реНрдХреИрдирд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
(рдКрдкрд░ рд╡рд░реНрдгрд┐рдд) рдФрд░ рдкрде рдлрд╝рдВрдХреНрд╢рди (рдиреАрдЪреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ)ред
рдЖрдХрд╛рд╢
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реВрдЪреА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕реНрдХреИрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рджрд┐рдП рдЧрдП рдиреЛрдб. рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рддрд░реНрдХ рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреА
рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдпреЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣ рд╕реНрдХреИрдирд░ рд╕реНрдХреИрди рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИред рдпрджрд┐
рддрд░реНрдХ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрде_рдлрд╝рдВрдХреНрд╢рди
рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЪрд╛рд░ рдпрд╛ рдкрд╛рдБрдЪ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг, рдПрдХ
SConscript рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓рд╛ рд▓рдХреНрд╖реНрдп рдерд╛
рдкрд░рд┐рднрд╛рд╖рд┐рдд, рд▓рдХреНрд╖реНрдп рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА, рд╕реНрд░реЛрдд рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА, рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ
рд╕реНрдХреИрдирд░ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рдереАред рдкрде_рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╛рдЗрдВрдбрдкрд╛рдердбрд╛рдпрд░реНрд╕() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкрде_рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдирд╛рдо рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп
(рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рдирд╛ред)
рдиреЛрдб_рдХреНрд▓рд╛рд╕
Node рдХрд╛ рд╡рд╣ рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рдЗрд╕ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЕрдиреНрдп
рд╕реНрдХреИрдирд░ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЪрд▓рд╛рдП рдЬрд╛рдПрдВрдЧреЗ
рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЛрдб_рдлреИрдХреНрдЯреНрд░реА рд╕рдорд╛рд░реЛрд╣.
рдиреЛрдб_рдлреИрдХреНрдЯреНрд░реА
рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛
рдЗрд╕ рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдб рдХрд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд░реНрдЧред
рд╕реНрдХреИрди_рдЪреЗрдХ
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ, рдПрдХ рдиреЛрдб (рдлрд╝рд╛рдЗрд▓) рдФрд░ рдПрдХ рдирд┐рд░реНрдорд╛рдг
рдкрд░реНрдпрд╛рд╡рд░рдг, рдФрд░ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдиреЛрдб рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рд░реНрднрд░рддрд╛рдПрдБред рдЗрд╕ рдЬрд╛рдБрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреИрдирд░ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЙрд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рддрдм рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЛрдб рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЧрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ
рдореМрдЬреВрджред
рдкреБрдирд░рд╛рд╡рд░реНрддреА
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдзреНрд╡рдЬ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╕реНрдХреИрдирд░ рдХреЛ рдкреБрдирдГ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕реНрдХреИрдирд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВред рдЬрдм рдпрд╣ рдзреНрд╡рдЬ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдиреЛрдб
рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ рд╕реНрдХреИрди рдХреА рдЬрд╛ рд░рд╣реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕реНрдХреИрдирд░ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдирд╣реАрдВ (рдХреЗ рд▓рд┐рдП)
рдЙрджрд╛рд╣рд░рдг) рд╕реНрдХреИрди рдХреА рдЬрд╛ рд░рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ #include рдкрдВрдХреНрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рднреАред
рдкреБрдирд░рд╛рд╡рд░реНрддреА рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕реЗ рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдиреЛрдбреНрд╕ рдкрд╛рдП рдЧрдП рдФрд░ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдпрд╣
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд╕рдореВрд╣ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдХреИрдиреНрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ рд╕реЛрд░реНрд╕рдлрд╝рд╛рдЗрд▓рд╕реНрдХреИрдирд░ рд╡рд╣ рд╡рд╕реНрддреБ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╕реНрддреБ(),
рд╕рд╛рдЭрд╛рдСрдмреНрдЬреЗрдХреНрдЯ(), рддрдерд╛ рд╕реНрдереИрддрд┐рдХрдСрдмреНрдЬреЗрдХреНрдЯ() рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЛ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕реНрдХреИрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реЛрд░реНрд╕рдлрд╝рд╛рдЗрд▓рд╕реНрдХреИрдирд░.add_scanner() рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреИрдирд░ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдиреНрд╕ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдЬреЛ рд▓рдХреНрд╖реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рддрд╛ рд╣реИ рдпрд╛
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝:
def xyz_scan(рдиреЛрдб, env, рдкрде):
рд╕рд╛рдордЧреНрд░реА = node.get_text_contents()
# рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ.
XYZрд╕реНрдХреИрдирд░ = рд╕реНрдХреИрдирд░(xyz_scan)
рд╕реЛрд░реНрд╕рдлрд╝рд╛рдЗрд▓рд╕реНрдХреИрдирд░.add_scanner('.xyz', XYZрд╕реНрдХреИрдирд░)
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('my_prog', ['file1.c', 'file2.f', 'file3.xyz'])
рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░
SCons рдФрд░ рдЗрд╕рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ
рдкрд╛рдпрдердиред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рдЕрдирдЬрд╛рди рд▓реЛрдЧреЛрдВ рдХреЛ рдлрдВрд╕рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
.C рдкрдЯреНрдЯрд┐рдХрд╛ рдкреНрд░рддреНрдпрдп
SCons рдЕрдкрд░-рдХреЗрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ .C рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ, рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рд╕реНрдЯрдоред рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реЗ рдХреЗрд╕-рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╕рд┐рд╕реНрдЯрдо рдкрд░, SCons рдПрдХ
рдПрдХ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ .C рдкреНрд░рддреНрдпрдп рдХреЛ C++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Windows рдЬреИрд╕реЗ рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░,
SCons рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ .C рдкреНрд░рддреНрдпрдп рдХреЛ C рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
.F рдкрдЯреНрдЯрд┐рдХрд╛ рдкреНрд░рддреНрдпрдп
SCons рдЕрдкрд░-рдХреЗрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ .F рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ, рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рд╕реНрдЯрдоред рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реЗ рдХреЗрд╕-рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╕рд┐рд╕реНрдЯрдо рдкрд░, SCons рдПрдХ
рдПрдХ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ .F рдкреНрд░рддреНрдпрдп рдХреЛ рдлреЛрд░реНрдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ
рдорд╛рдирдХ рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ред рд╡рд┐рдВрдбреЛрдЬ рдЬреИрд╕реЗ рдХреЗрд╕-рдЗрдирд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╕рд┐рд╕реНрдЯрдо рдкрд░, SCons рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ
рдкрдВрдЬреАрдХрд░рдг рд╢реБрд▓реНрдХ .F рдкреНрд░рддреНрдпрдп рдХреЛ рдПрдХ рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ред
Windows: Cygwin рдЯреВрд▓реНрд╕ рдФрд░ Cygwin рдЕрдЬрдЧрд░ рдмрдирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдЕрдЬрдЧрд░
рд╕рд┐рдЧрд╡рд┐рди (Cygwin) рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдЕрдзрд┐рдХ POSIX-рдЬреИрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдгред рд╕рд┐рдЧреНрд╡рд┐рди рдкрд╛рдпрдерди рд╕рд╣рд┐рдд рд╕рд┐рдЧреНрд╡рд┐рди рдЙрдкрдХрд░рдг рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ,
рднрд╛рдЧ, UNIX-рдЬреИрд╕реЗ рдкрде рдирд╛рдореЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рдЧрд╡рд┐рди
рдЙрдкрдХрд░рдг рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ /cygdrive/c/mydir рдЬреИрд╕реЗ Cygwin рдкрде рдирд╛рдо рдХреЛ рд╕рдорддреБрд▓реНрдп рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ
C:/mydir рдХрд╛ Windows рдкрдердирд╛рдо (C:\mydir рдХреЗ рд╕рдорддреБрд▓реНрдп).
рдкрд╛рдпрдерди рдХреЗ рд╡реЗ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ рдореВрд▓ рд╡рд┐рдВрдбреЛрдЬ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ python.org рдФрд░
ActiveState рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, Cygwin рдкрде рдирд╛рдо рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
Cygwin рдЙрдкрдХрд░рдгреЛрдВ (рдЬреИрд╕реЗ рдХрд┐ рдкрд╛рдпрдерди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХрд╛ рдореВрд▓ рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдгред
рдЬреАрд╕реАрд╕реА, рдмрд╛рдЗрд╕рди рдФрд░ рдлреНрд▓реЗрдХреНрд╕) рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ "рдорд┐рд╢реНрд░рдг рдФрд░ рдорд┐рд▓рд╛рди"
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрде рдирд╛рдореЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ.
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдкрдирд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ: gcc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп,
SCons рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Cygwin-рдкреНрд░рджрддреНрдд рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; Microsoft Visual C/C++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
(рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рдВрдбреЛрдЬ рдХрдВрдкрд╛рдЗрд▓рд░) python.org рдпрд╛ рдкрд╛рдпрдерди рдХреЗ ActiveState рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
SCons рдЪрд▓рд╛рдПрдБ.
Windows: scons.рдмреИрдЯ рдкрдЯреНрдЯрд┐рдХрд╛
рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░, SCons рдХреЛ рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ scons.рдмреИрдЯ рдлрд╝рд╛рдЗрд▓. рдЗрд╕рдореЗрдВ (рдХрдо рд╕реЗ рдХрдо)
рджреЛ рдкрд░рд┐рдгрд╛рдо:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рд▓рдЧрд╛рдиреЗ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реНрдХреЙрдиреНрд╕ "FOO=BAR" "BAZ=BLEH"
рджреВрд╕рд░рд╛, рд╕рд┐рдЧрд╡рд┐рди рд╢реЗрд▓ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рд╕реНрдХреИрдиреНрд╕
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЖрджреЗрд╢ред рдЖрдк рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
scons.рдмреИрдЯ Cygwin рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ, рдпрд╛ рдирд╛рдордХ рдПрдХ рд░реИрдкрд░ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдХрд░ рд╕реНрдХреИрдиреНрд╕
.
MinGW
MinGW bin рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрдкрдХреЗ PATH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдпрд╛ PATH рдЪрд░ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
SCons рдХреЛ MinGW рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ENV рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдХреЗ рдЕрдВрддрд░реНрдЧрддред
рдореВрд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рддрд╣рдд рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ, SCons MinGW рдЯреВрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВрдЧреЗ
Cygwin рдЙрдкрдХрд░рдгреЛрдВ рдкрд░, рдпрджрд┐ рд╡реЗ рджреЛрдиреЛрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдмрд┐рди рдХреЗ рдХреНрд░рдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛
PATH рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ MSVC рдФрд░ MinGW рджреЛрдиреЛрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВ рдФрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ
MSVC рдХреЗ рдмрдЬрд╛рдп MinGW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ SCons рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ MinGW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реЛрдЧрд╛
рдЙрдкрдХрд░рдг=['mingw']
Environment() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ SCons MinGW рдХреА рддреБрд▓рдирд╛ рдореЗрдВ MSVC рдЯреВрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдЧрд╛
рдЯреВрд▓реНрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ|
рдЙрджрд╛рд╣рд░рдг
SCons рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдХрд╛рд░реНрдпред
рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдХрд▓рди рд╕реЗ a рд╕рд┐рдВрдЧрд▓ рд╕реНрд░реЛрдд рдкрдЯреНрдЯрд┐рдХрд╛
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
рдиреЛрдЯ: рд▓рдХреНрд╖реНрдп рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ ("scons foo" рдпрд╛ "scons
foo.exe") рдпрд╛ рдПрдХ рдмрд┐рдВрджреБ ("scons.") рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗред
рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдХрд▓рди рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = рд╡рд┐рднрд╛рдЬрд┐рдд('f1.c f2.c f3.c'))
рдХреА рд╕реНрдерд╛рдкрдирд╛ a рд╕рдВрдХрд▓рди рдЭрдВрдбрд╛
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CCFLAGS = '-g')
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
Search RSI рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП .h рдлрд╝рд╛рдЗрд▓реЗрдВ
рдзреНрдпрд╛рди рджреЗрдВ: рдЖрдкрдХреЛ рдирд╣реАрдВ рд╣рд╛рде рд╕реЗ -I рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CCFLAGS рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред SCons рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛
CPPPATH рд╕реЗ рджрд╛рдпрд╛рдБ -I рд╡рд┐рдХрд▓реНрдк.
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPPATH = ['.'])
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
Search рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдХреЗ рд▓рд┐рдП .h рдлрд╝рд╛рдЗрд▓реЗрдВ
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPPATH = ['рд╢рд╛рдорд┐рд▓1', 'рд╢рд╛рдорд┐рд▓2'])
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
рдЗрдорд╛рд░рдд a рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.StaticLibrary(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = рд╡рд┐рднрд╛рдЬрд┐рдд('l1.c l2.c'))
env.StaticLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = ['l3.c', 'l4.c'])
рдЗрдорд╛рд░рдд a рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = ['l5.c', 'l6.c'])
env.SharedLibrary(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = рд╡рд┐рднрд╛рдЬрд┐рдд('l7.c l8.c'))
рдЬреЛрдбрд╝рдиреЗ a рд╕реНрдерд╛рдиреАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ a рдХрд╛рд░реНрдпрдХреНрд░рдо
env = рдкрд░реНрдпрд╛рд╡рд░рдг(LIBS = 'mylib', LIBPATH = ['.'])
env.Library(рд▓рдХреНрд╖реНрдп = 'mylib', рд╕реНрд░реЛрдд = рд╡рд┐рднрд╛рдЬрд┐рдд('l1.c l2.c'))
env.Program(рд▓рдХреНрд╖реНрдп = 'prog', рд╕реНрд░реЛрдд = ['p1.c', 'p2.c'])
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрдкрдХрд╛ рдЦреБрдж рдХреА рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд╕реНрддреБ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк рдмрд┐рд▓реНрдбрд░ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпрдп рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
SCons рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
bld = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ = 'pdftex < $SOURCES > $TARGET'
рдкреНрд░рддреНрдпрдп = '.pdf',
src_suffix = '.tex')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'PDFBuilder' : bld})
env.PDFBuilder(рд▓рдХреНрд╖реНрдп = 'foo.pdf', рд╕реНрд░реЛрдд = 'foo.tex')
# рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд "bar.tex" рд╕реЗ "bar.pdf" рдмрдирд╛рддрд╛ рд╣реИ
env.PDFBuilder(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = 'рдмрд╛рд░')
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЖрд░рдВрднреАрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд┐рд▓реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдКрдкрд░ рдмрдирд╛рдП рдЧрдП рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ env.Program(), env.Object() рдЬреИрд╕реЗ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
env.StaticLibrary(), рдЖрджрд┐.
рдЬреЛрдбрд╝рдирд╛ рдЖрдкрдХрд╛ рдЦреБрдж рдХреА рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд╕реНрддреБ рд╕реЗрд╡рд╛ рдореЗрд░реЗ an рд╡рд╛рддрд╛рд╡рд░рдг
bld = рдмрд┐рд▓реНрдбрд░(рдХрд╛рд░реНрд░рд╡рд╛рдИ = 'pdftex < $SOURCES > $TARGET'
рдкреНрд░рддреНрдпрдп = '.pdf',
src_suffix = '.tex')
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Append(рдмрд┐рд▓реНрдбрд░реНрд╕ = {'PDFBuilder' : bld})
env.PDFBuilder(рд▓рдХреНрд╖реНрдп = 'foo.pdf', рд╕реНрд░реЛрдд = 'foo.tex')
env.Program(рд▓рдХреНрд╖реНрдп = 'рдмрд╛рд░', рд╕реНрд░реЛрдд = 'bar.c')
рдЖрдк BUILDERS рдирд┐рд░реНрдорд╛рдг рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкрд╛рдпрдердирд┐рдХ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
рдЬреИрд╕реЗ рдХрд┐:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env['BUILDERS]['PDFBuilder'] = bld
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрдкрдХрд╛ рдЦреБрдж рдХреА рд╕реНрдХреИрдирд░ рд╡рд╕реНрддреБ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╕реНрдХреИрдирд░ ( рдХреЗрдлрд╝рд╛рдЗрд▓_рд╕реНрдХреИрди() рдлрд╝рдВрдХреНрд╢рди) рдХрд┐
рдпрд╣ рдХрд┐рд╕реА рдЦреЛрдЬ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рди рдкрд░ рдореМрдЬреВрдж рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рд╣реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╢рд╛рдорд┐рд▓
рд╕реНрдХреИрди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВред рдпрд╣ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рди рд▓реЗрдЧрд╛ рдХрд┐ рд╕рднреА рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рдореМрдЬреВрдж рд╣реИрдВ
рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛:
рдЖрдпрд╛рдд рдлрд┐рд░ рд╕реЗ
include_re = re.compile(r'^include\s+(\S+)$', re.M)
def kfile_scan(рдиреЛрдб, env, рдкрде, рдЖрд░реНрдЧ):
рд╕рд╛рдордЧреНрд░реА = node.get_text_contents()
рд╢рд╛рдорд┐рд▓ = include_re.findall(рд╕рд╛рдордЧреНрд░реА)
env.File(рд╢рд╛рдорд┐рд▓) рд▓реМрдЯрд╛рдПрдБ
kscan = рд╕реНрдХреИрдирд░(рдирд╛рдо = 'kfile',
рдлрд╝рдВрдХреНрд╢рди = kfile_scan,
рддрд░реНрдХ = рдХреЛрдИ рдирд╣реАрдВ,
рд╕реНрдХреЗрдпрд╕ = ['.k'])
рд╕реНрдХреИрдирд░реНрд╕ = рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ().рдбрд┐рдХреНрд╢рдирд░реА('рд╕реНрдХреИрдирд░реНрд╕')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рд╕реНрдХреИрдирд░реНрд╕ = рд╕реНрдХреИрдирд░реНрд╕ + [kscan])
env.Command('foo', 'foo.k', 'kprocess < $SOURCES > $TARGET')
bar_in = рдлрд╝рд╛рдЗрд▓('bar.in')
env.Command('рдмрд╛рд░', bar_in, 'kprocess $SOURCES > $TARGET')
bar_in.target_scanner = kscan
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдХреИрди рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░рдиреА рд╣реЛрдЧреА
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣рд╛рдБ, рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдлрд╝рд╛рдЗрд▓() рдиреЛрдбреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдХрд╛рд░реНрдп
рд╕рд╛рдкреЗрдХреНрд╖ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рд╕реЗ рддреБрд░рдВрддред
рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╛рди рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ (рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рдХрд╛ рдкрде рдЦреЛрдЬрддрд╛ рд╣реИ
рдЬреИрд╕рд╛ рдорд╛рдИрдкрд╛рде рдирд┐рд░реНрдорд╛рдг рдЪрд░) рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ:
рдЖрдпрд╛рдд рдлрд┐рд░ рд╕реЗ
рдЖрдпрд╛рдд os
include_re = re.compile(r'^include\s+(\S+)$', re.M)
def my_scan(рдиреЛрдб, env, рдкрде, рдЖрд░реНрдЧ):
рд╕рд╛рдордЧреНрд░реА = node.get_text_contents()
рд╢рд╛рдорд┐рд▓ = include_re.findall(рд╕рд╛рдордЧреНрд░реА)
рдпрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ == []:
рд╡рд╛рдкрд╕реА []
рдкрд░рд┐рдгрд╛рдо = []
inc рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдкрде рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП:
рдлрд╝рд╛рдЗрд▓ = str(dir) + os.sep + inc
рдпрджрд┐ os.path.exists(рдлрд╝рд╛рдЗрд▓):
рдкрд░рд┐рдгрд╛рдо.append(рдлрд╝рд╛рдЗрд▓)
рддреЛрдбрд╝рдирд╛
env.File(рдкрд░рд┐рдгрд╛рдо) рд▓реМрдЯрд╛рдПрдВ
рд╕реНрдХреИрдирд░ = рд╕реНрдХреИрдирд░(рдирд╛рдо = 'myscanner',
рдлрд╝рдВрдХреНрд╢рди = my_scan,
рддрд░реНрдХ = рдХреЛрдИ рдирд╣реАрдВ,
рд╕реНрдХрд╛рдИрдЬрд╝ = ['.x'],
рдкрде_рдлрд╝рдВрдХреНрд╢рди = FindPathDirs('MYPATH')
)
рд╕реНрдХреИрдирд░реНрд╕ = рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ().рдбрд┐рдХреНрд╢рдирд░реА('рд╕реНрдХреИрдирд░реНрд╕')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рд╕реНрдХреИрдирд░реНрд╕ = рд╕реНрдХреИрдирд░реНрд╕ + [рд╕реНрдХреИрдирд░],
MYPATH = ['incs'])
env.Command('foo', 'foo.x', 'xprocess < $SOURCES > $TARGET')
RSI рдлрд╛рдЗрдВрдбрдкрд╛рдердбрд╛рдпрд░реНрд╕рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд () рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ
рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ) рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧрд╛ $MYPATH
рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рдпрд╣ SCons рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рджреЗрддрд╛ рд╣реИ incs/foo.inc , рднрд▓реЗ рд╣реА рдлрд╝реВ.x рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд▓рд╛рдЗрди рд╢рд╛рдорд┐рд▓ foo.inc рдХреЗрд╡рд▓ред рдпрджрд┐ рдЖрдкрдХреЛ рдЦреЛрдЬ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ рдкрде_рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреИрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рддрд░реНрдХ, рдЬреИрд╕реЗ
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
# MYPATH рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ
def pf(env, dir, target, source, arg):
рд╢реАрд░реНрд╖_рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ = Dir('#').abspath
рдкрд░рд┐рдгрд╛рдо = []
рдпрджрд┐ env рдореЗрдВ 'MYPATH':
env['MYPATH'] рдореЗрдВ p рдХреЗ рд▓рд┐рдП:
рдкрд░рд┐рдгрд╛рдо.append(top_dir + os.sep + p)
рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдБ
рд╕реНрдХреИрдирд░ = рд╕реНрдХреИрдирд░(рдирд╛рдо = 'myscanner',
рдлрд╝рдВрдХреНрд╢рди = my_scan,
рддрд░реНрдХ = рдХреЛрдИ рдирд╣реАрдВ,
рд╕реНрдХрд╛рдИрдЬрд╝ = ['.x'],
рдкрде_рдлрд╝рдВрдХреНрд╢рди = pf
)
рдмрдирд╛рдирд╛ a рд╢реНрд░реЗрдгреАрдмрджреНрдз рдмрдирд╛рдПрдБ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА SConscript рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ
рдЙрд╕ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛.
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
SConscript('sub/SConscript')
рдЙрдк/рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
# sub/foo.c рд╕реЗ sub/foo рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
SConscript('dir/SConscript')
рдЙрдк/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
# sub/dir/foo.c рд╕реЗ sub/dir/foo рдмрдирд╛рддрд╛ рд╣реИ
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
рд╢реЗрдПрд░ рдХрд░реЗрдВ рдЪрд░ рдХреЗ рдмреАрдЪ рд╕реНрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ
рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ Export() рдФрд░ Import() рдЪрд░реЛрдВ рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ.
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг()
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
рдирд┐рд░реНрдпрд╛рдд("env")
SConscript('рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/SConscript')
рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдЖрдпрд╛рдд("env")
env.Program(рд▓рдХреНрд╖реНрдп = 'foo', рд╕реНрд░реЛрдд = 'foo.c')
рдЗрдорд╛рд░рдд рд╡рд┐рднрд┐рдиреНрди рд╡реЗрд░рд┐рдПрдВрдЯ рд╕реЗ la рд╡рд╣реА рд╕реНрд░реЛрдд
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SConscript рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ variant_dir рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╡реИрд░рд┐рдПрдВрдЯ рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реГрдХреНрд╖:
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
cppdefines = ['FOO']
рдирд┐рд░реНрдпрд╛рдд("cppdefines")
SConscript('src/SConscript', variant_dir='foo')
cppdefines = ['рдмрд╛рд░']
рдирд┐рд░реНрдпрд╛рдд("cppdefines")
SConscript('src/SConscript', variant_dir='bar')
src/SConscript:
рдЖрдпрд╛рдд рдХрд░реЗрдВ("cppdefines")
env = рдкрд░реНрдпрд╛рд╡рд░рдг(CPPDEFINES = cppdefines)
env.Program(рд▓рдХреНрд╖реНрдп = 'src', рд╕реНрд░реЛрдд = 'src.c')
"cppdefines" рдЪрд░ рдХреЛ рдХрд┐рд╕реА рднрд┐рдиреНрди рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Export() рд╡рд┐рдзрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
рд╣рд░ рдмрд╛рд░ рд╣рдо SConscript рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред
рд╢реНрд░реЗрдгреАрдмрджреНрдз рдмрдирд╛рдПрдБ of рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдВрдХреНрдб - a рдХрд╛рд░реНрдпрдХреНрд░рдо
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env = рдкрд░реНрдпрд╛рд╡рд░рдг(LIBPATH = ['#libA', '#libB'])
рдирд┐рд░реНрдпрд╛рдд('env')
SConscript('libA/SConscript')
SConscript('libB/SConscript')
SConscript('рдореБрдЦреНрдп/SConscript')
libA/SConscript:
рдЖрдпрд╛рдд('env')
env.рд▓рд╛рдЗрдмреНрд░реЗрд░реА('a', рд╕реНрдкреНрд▓рд┐рдЯ('a1.c a2.c a3.c'))
libB/SрдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдЖрдпрд╛рдд('env')
env.Library('b', рд╕реНрдкреНрд▓рд┐рдЯ('b1.c b2.c b3.c'))
рдореБрдЦреНрдп/рдПрд╕рдХреЙрдиреНрд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдЖрдпрд╛рдд('env')
рдИ = env.рдХреЙрдкреА(LIBS = ['a', 'b'])
рдИ.рдкреНрд░реЛрдЧреНрд░рд╛рдо('foo', рд╕реНрдкреНрд▓рд┐рдЯ('m1.c m2.c m3.c'))
LIBPATH рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ '#' рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рддрд╛рдХрд┐ рдЬрдм рд╡реЗ Main/SConscript рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВ рддреЛ рд╡реЗ "Main/libA" рдореЗрдВ рди рдмрджрд▓ рдЬрд╛рдПрдВред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 'a' рдФрд░ 'b' рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ SCons рдХреЛ рдЙрдкрдпреБрдХреНрдд рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ
рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, POSIX рдкрд░ 'liba.a'
рд╕рд┐рд╕реНрдЯрдо, рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ 'a.lib')ред
рдЕрдиреБрдХреВрд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╕реЗ la рдЖрджреЗрд╢ рд▓рд╛рдЗрди.
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓ custom.py.
vars = рдЪрд░('custom.py')
vars.Add('CC', 'рд╕реА рд╕рдВрдХрд▓рдХ.')
env = рдкрд░реНрдпрд╛рд╡рд░рдг(рдЪрд░=vars)
рд╕рд╣рд╛рдпрддрд╛(vars.GenerateHelpText(env))
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ C рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
рд╕реНрдХреЙрдиреНрд╕ "CC=my_cc"
рдпрд╛ custom.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ:
рд╕реАрд╕реА = 'my_cc'
рдпрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
$ рд╕реНрдХреЙрдиреНрд╕ -h
рд╕реАрд╕реА: рд╕реА рдХрдореНрдкрд╛рдЗрд▓рд░.
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдХреЛрдИ рдирд╣реАрдВ
рд╡рд╛рд╕реНрддрд╡рд┐рдХ: cc
рдХрд╛ рдкреНрд░рдпреЛрдЧ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рджреГрд╢реНрдп рд╕реА + + рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╣реЗрдбрд░
рдЪреВрдВрдХрд┐ windows.h рдореЗрдВ рд╕рдм рдХреБрдЫ рдФрд░ рд░рд╕реЛрдИ рдХрд╛ рд╕рд┐рдВрдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП Microsoft рдПрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд╣реЗрдбрд░ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА
рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЗрдбрд░ред рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓реНрдб рд╣реЗрдбрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп
рдиреБрд╕реНрдЦрд╛ "StdAfx.cpp" рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╣реЗрдбрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ
"StdAfx.h", рдФрд░ рдлрд┐рд░ "StdAfx.h" рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╣реЗрдбрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░
рдЕрдВрдд рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╕рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреНрд░рдердо рд╣реЗрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ "StdAfx.h" рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╕реНрдЯреИрдбрдПрдлрд╝рдПрдХреНрд╕.рдПрдЪ:
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
StdAfx.рд╕реАрдкреАрдкреА:
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
рдлреВ.рд╕реАрдкреАрдкреА:
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
/* рдХреБрдЫ рдХрд╛рдо рдХрд░реЛ */
рдмрд╛рд░.рд╕реАрдкреАрдкреА:
#рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛
/* рдХреБрдЫ рдЕрдиреНрдп рдХрд╛рдо рдХрд░реЗрдВ */
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env=рдкрд░реНрдпрд╛рд╡рд░рдг()
env['PCHSTOP'] = 'StdAfx.h'
env['PCH'] = env.PCH('StdAfx.cpp')[0]
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('MyApp', ['Foo.cpp', 'Bar.cpp'])
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП PCH рдмрд┐рд▓реНрдбрд░, рддрдерд╛ PCH рдФрд░ PCHSTOP рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рдирд┐рд░реНрдорд╛рдг рдЪрд░ред рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓реНрдб рд╣реЗрдбрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП MSDN рд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд░реЗрдВ
/Yc, /Yu, рдФрд░ /Yp рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝.
рдХрд╛ рдкреНрд░рдпреЛрдЧ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рджреГрд╢реНрдп рд╕реА + + рдмрд╛рд╣рд░реА debugging рдХрд░реЗрдВ-
рдЪреВрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдФрд░ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдЙрдирдХреЗ
рдЖрдХрд╛рд░ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕реЗ PDB рдлрд╝рд╛рдЗрд▓ рдХрд╣рддреЗ рд╣реИрдВред SCons PDB рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдкреАрдбреАрдмреА рдирд┐рд░реНрдорд╛рдг рдЪрд░.
рдПрд╕рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ:
env=рдкрд░реНрдпрд╛рд╡рд░рдг()
env['PDB'] = 'MyApp.pdb'
env.рдкреНрд░реЛрдЧреНрд░рд╛рдо('MyApp', ['Foo.cpp', 'Bar.cpp'])
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП PDB рдирд┐рд░реНрдорд╛рдг рдЪрд░ рд╣реЗрддреБ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
рд╡рд╛рддрд╛рд╡рд░рдг
SCONS_LIB_DIR
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ SCons Python рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдЬреИрд╕реЗ
/home/aroach/scons-src-0.01/src/engine).
рд╕реНрдХреЙрдиреНрд╕рдлреНрд▓реИрдЧреНрд╕
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬреЛ рд╕реНрдХреЛрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдПрдЧреА, рдЙрдирдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди рд╕реНрдХреЙрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ