เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบ makepp_extending เบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบ OnWorks เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเบเบฃเบตเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบซเบผเบฒเบเปเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเปเบฅเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator
เปเบเบเบเบฒเบ:
NAME
makepp_extending -- เบงเบดเบเบตเบเบฒเบเบเบฐเบซเบเบฒเบ makepp เปเบเบเปเบเป Perl
เบฅเบฒเบเบฅเบฐเบญเบฝเบ
Makepp เบเบฒเบเปเบเปเบกเปเบเบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบฝเบเบเปเปเบเบทเปเบญเปเบซเปเปเบเบเบเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบ Perl เปเบฅเบฑเบเบเปเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป
เปเบเบตเปเบกเบเบฑเบเบเบฑเบ เบซเบผเบทเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเบทเปเบเปเบเปเบฒเบเบงเบเบซเบเบถเปเบ.
เปเบเบโเบเบปเปเบงโเปเบ เบญเปเบทเบ on เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ Perl เบฅเบฐเบซเบฑเบ to เบเบฒเบเปเบฎเบฑเบเบงเบฝเบ เบเบฑเบ เปเบเปเบเปเปเบฒ
เปเบเปเบฅเบฐ makefile เบญเบฒเปเบชเบขเบนเปเปเบเบเบธเบเบเบญเบเบเบปเบเปเบญเบ. เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบดเบเบฒเบกเปเบเบซเบเบถเปเบ makefile เบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบ
เบเปเบฒเบเบดเบเบฒเบกเปเบ makefile เบญเบทเปเบ. เบเบธเบเบเบฑเบเบเบฑเบเบเบปเปเบงเปเบเบฅเบงเบกเบเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเบเบฑเบเปเบปเบ
เบเบฑเบเบเบฑเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบปเบงเบซเบเบฑเบเบชเบทเบเบทเบเบเปเบฒเปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเปเบเบเบธเบเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบถเปเบ.
เบเบปเบงเปเบ Makefile เบเบทเบเปเบเบฑเบเปเบงเปเปเบเบฑเบ Perl scalars เปเบเบเบธเบเบเบฑเปเบ. (เบกเบตเบเปเปเบเบปเบเปเบงเบฑเปเบ
เบเบตเป: เบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบปเบงเปเบเปเบเบฑเปเบ CC เปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง
เบเบฐเบเบดเบเบฑเบเปเบเบฑเบเบซเบเปเบฒเบเบตเปเบเบตเปเบเปเปเบกเบตเบเบฒเบเปเบเปเบเบฝเบ. เปเบเบปเปเบฒเบซเบกเบฒเบเบชเบฐเปเบเบฒเบฐ vars, เปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ vars เปเบฅเบฐ
vars เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบเปเปเปเบซเบฑเบเบเปเบงเบเบงเบดเบเบตเบเบตเป.) เบเบฑเปเบเบเบฑเปเบเบฅเบฐเบซเบฑเบ Perl เปเบเปเบเบตเปเบเปเบฒเบเบเบฝเบเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบซเบกเบปเบ
makefile เบเบปเบงเปเบ. เบเบปเบงเปเบเบเบปเปเบงเปเบฅเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเบธเบ "Mpp::global". เปเบเบดเปเบ
เบเบปเบงเปเบ Makefile เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ.
เปเบเปเบฅเบฐเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ (ifperl / ifmakeperl, perl / makeperl, sub / makeub), the
เบซเบเปเบฒเบเบตเป (perl / makeperl, เปเบเบเบเบตเป / makemap) เปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ (perl / makeperl) เบชเปเบฒเบฅเบฑเบ
เบเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบ Perl เปเบเบเบเบปเบเปเบ makefile เบกเบฒเปเบเบชเบญเบเบฅเบปเบเบเบฒเบ. เบเปเบฒเบญเบดเบเปเบกเปเบเปเบเปเป
Perl เบเบปเบเบเบฐเบเบด, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเปเบญเบเปเบเปเบเปเบฒเบเปเบฒเบซเบเปเบฒ "f_" เบเบฑเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเบฒเบเบเปเปเปเบ, เบเปเบฒ
เบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเบซเบฒเบซเบเปเบฒเบเบตเป makepp. เบเบปเบงเปเบเบเบตเบชเบญเบเบเปเบฒเบญเบดเบเบเปเบฒเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ
เบเบฒเบเบเบฐเบซเบเบฒเบเบเบปเบงเปเบเปเบเบเปเบฎเบฑเบเปเบซเปเบฎเบนเบเปเบเบ, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบชเบญเบเปเบเบปเปเบฒ "$" เบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ Perl เปเบเบดเปเบ.
เบเบฒเบเบเบฑเบเบเบฒเบเบชเบดเปเบเบชเบธเบเปเบกเปเบเบเบดเปเบชเบเปเบเบฒเบฐเบงเปเบฒเบเปเปเบกเบนเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบ makepp (เบเบถเปเบเบเบฑเบเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบญเบเบเปเบฒเบ).
เปเบเบเบชเปเบฒเบเบเบฐเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเบงเบดเบเบฒเบเบตเปเบเบทเปเบญเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบเปเบงเบเบเบฒเบเบญเบญเบเบเบฒเบกเบเบปเบเบเบฐเบเบด. เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบ a
brute force เบญเบญเบ. เปเบเบเบฐเบเบงเบเบเบฒเบเบเบปเปเบเบเปเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบกเบต "END" เบเบฑเบเปเบเปเบเปเบฒเบเปเบฒเบเบกเบต
เบเบฒเบเบเบฑเบเบเบฒเบเปเบเบฅเปเบเบปเปเบงเปเบฅเบเบเบงเบเปเบเบปเบฒเบญเบฒเบเบเบฐเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบ flushed. เปเบเปเบเปเบฒเบเบเบงเบเปเบเป lexical เบเบตเปเบเบฑเบเบชเบฐเปเบซเบก
filehandles, เปเบเบดเปเบเบเบดเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเบญเบญเบเปเบเบเบญเบเบเบญเบเปเบเบ.
เปเบเบฅเบฐเบซเบฑเบ Perl เบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบปเบเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบซเบผเบทเบเปเบฒเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบฒเบเบเปเบฒเบเบปเบ, เบกเบฑเบเปเบกเปเบ
เบเบปเบเบเบฑเบเบเปเบฒเบก. เบเบฅเบฑเบญเบ "END" เบเบฐเบเปเปเบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เปเบเปเบเบปเบงเบเบฑเบเบเบฒเบเปเบเบฅเปเบเบปเปเบงเปเบฅเบเปเบเปเบฎเบฑเบเบเบฒเบ flushed เบชเปเบฒเบฅเบฑเบเบเปเบฒเบ. เปเบเป
"เบเบฒเบเบเปเบฒเบฅเบฒเบ" เบเบญเบเบงเบฑเบเบเบธเบเบปเปเบงเปเบฅเบเบเบฐเบเปเปเบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบ.
เปเบเบตเปเบกเบเบทเปเบก เปเบซเบกเป เบเบปเบเปเบฅเบทเปเบญเบ เบซเบเปเบฒเบเบตเป
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบฑเบเบเบฑเบเปเบซเบกเปเปเบซเปเบเบฑเบ repertoire เบเบญเบ makepp เปเบเบเบเบฝเบเปเบเปเบเปเบฒเบเบปเบ Perl subroutine เบเบญเบ
เบเบทเปเบเบฝเบงเบเบฑเบเปเบเปเบกเบตเบเปเบฒเบเปเบฒเบซเบเปเบฒเบเบญเบ "f_". เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
เบเปเบญเบ f_myfunc {
$argument เบเบญเบเบเปเบญเบ = &arg; # เบเบฑเปเบเบเบทเปเบเบฒเบเปเบเปเบเบฝเบ.
เบเบญเบเบเปเบญเบ( undef, $mkfile, $mkfile_line ) = @_; # เบเบทเปเบเบฒเบเปเบเปเบเบฝเบ.
... เปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบตเป
เบเบฑเบเบเบทเบ $return_value;
}
XYZ := $(myfunc my func arguments)
เบเปเบฒเบซเบเปเบฒเบเบตเปเบเบญเบเปเบเบปเปเบฒเบเปเปเบกเบตเบเปเปเปเบเปเปเบเปเบ, เบเปเปเบกเบตเบซเบเบฑเบเบเบตเปเบเบฐเปเบฎเบฑเบ. เบเปเบฒเบซเบเปเบฒเบเบตเปเบเบญเบเปเบเบปเปเบฒเปเบเปเปเบงเบฅเบฒเบซเบเบถเปเบ
argument, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ, เปเบเป accessor & arg เบเปเบฒเบเปเปเบเบทเปเบญเปเบซเปเปเบเปเบกเบฑเบ. เบเปเบฒโเปเบเบปเปเบฒ
เบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเปเบเปเบเบฝเบเบซเบผเบฒเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ "args" เบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบกเบงเบเบเบปเบเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบเบตเปเบเบงเบเบเบฐเบเบทเบเบชเบปเปเบเปเบเบซเบฒ "f_" เปเบเป.
function, เบเบทเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบเบฑเบ, เบงเบฑเบเบเบธ makefile เปเบฅเบฐเบเบปเบงเบญเบฐเบเบดเบเบฒเบเปเบชเบฑเปเบเบชเปเบฒเบฅเบฑเบ
เบเปเปเบเบงเบฒเบก. เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบฎเบนเบเปเบเบ & arg เบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเปเบฅเบฐเบเบตเบเปเบฒเบญเบดเบ.
เบเบปเบงเปเบเบทเปเบญเบกเบเปเป & arg เปเบเบดเปเบเปเบเบเบชเบดเปเบเบเปเปเปเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบเปเบฒเบ: เบเปเบฒเบเบฒเบเปเบเปเบเบฝเบเปเบกเปเบเปเบฅเปเบง
เบเบฐเบซเบเบฒเบ (เปเบเบฑเปเบ: เบเบญเบเบซเบฒเบเบทเปเบเบญเบเบเบฑเบเบเบฑเบเปเบ "$(my$(function) arg)" arg เปเบกเปเบ
เบเปเบฒเบเปเบเปเบเบฑเบเบชเบฐเบเบฃเบดเบ เปเบฅเบฐเบเบฝเบเปเบเปเบเบฑเบเบเบทเบเบกเบฒ. เบเปเบฒเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบเปเบญเบเบเบฒเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบปเบง, เบเบตเปเปเบกเปเบ
เบเปเบฅเบฐเบเบตเบเบปเบเบเบฐเบเบด, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเบดเบเบชเบฐเบเบฃเบดเบ. เปเบเบทเปเบญเบเบกเบท & arg เบเบฐเบซเบเบฒเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบ,
เปเบเบดเปเบเบกเบฑเบเบเปเบญเบเบเบฒเบเบงเบฑเบเบเบธ makefile เปเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบต 2 เบเบญเบเบกเบฑเบ.
เบเปเบฒเบเปเบฒเบเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเปเบเปเบเบฝเบเบซเบผเบฒเบ, เบญเบฒเบเบเบฐเปเบเบฑเบเบเบปเบงเปเบฅเบเบเบตเปเบเปเบฝเบเปเบเบ, เบงเบฝเบเบเบฒเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบเบ "args".
เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเปเบเป 3 เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบเบฑเบ arg, เบเบงเบเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบเบตเปเบกเปเบเบตเบก:
เบชเบนเบเบชเบธเบ: เบเบณเบเบงเบเบเบญเบ args (เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ 2): เปเบซเป ~0 (maxint) เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเบดเปเบเบชเบธเบ
เบเปเบณเบชเบธเบ: เบเบณเบเบงเบเบเบญเบ args (เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ 0 เบเปเบฒเบชเบนเบเบชเบธเบเปเบกเปเบ ~0, เบญเบฑเบเบญเบทเปเบเบเบทเบเบฑเบเบเบฑเบเบเปเบฒเบชเบนเบเบชเบธเบ)
only_comma: เบซเปเบฒเบกเบเบดเบเบเบทเปเบเบเบตเปเบญเปเบญเบกเปเบเบทเปเบญเบเปเบฒเบเบเบธเบ, เบเบปเบเบเบฐเบเบดเบชเบณเบฅเบฑเบเบเบทเปเบเบตเปเบเปเปเปเบกเปเบเบเบทเปเปเบเบฅเป
เบชเบนเบเบชเบธเบเบเบตเปเปเบเบ, เปเบเปเบขเปเบฒเบเปเปเบญเบเบกเบตเปเบเบทเปเบญเบเปเบฒเบเบเบธเบเบชเบนเบเบชเบธเบเบเปเบญเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบเบ
เบเบฒเบเปเบเปเบเบฝเบ. เบเบฒเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฑเบเบเบฑเบ buildin เบเบญเบ makepp:
my($prefix, $text) = args $_[0], $_[1], $_[2], 2, 2, 1; # เบเบณเบเบณเปเปเบฒ
เบชเปเบฒเบฅเบฑเบ $cond เบเบญเบเบเปเบญเบ ( args $_[0], undef, $_[2], ~0 ) ... # เปเบฅเบฐ, เบซเบผเบท
my @args= args $_[0], $_[1], $_[2], ~0, 1, 1; # เปเบ
my( $filters, $words ) = args $_[0], $_[1], $_[2]; # เบเบปเบงเบเบญเบ
เบเบฑเบเบเบฑเบเบเบงเบเบชเบปเปเบเบเบทเบ scalar string (เบเปเปเปเบกเปเบ array) เปเบเบดเปเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบทเบเปเบชเปเปเบเบปเปเบฒเปเบเปเบ
เบเปเปเบเบงเบฒเบกเบขเบนเปเปเบเบเบธเบเบเบฑเปเบ.
เบเปเบฒเบเบฑเบเบเบฑเบเบเบญเบเบเปเบฒเบเบเบปเบเบเปเปเบเบดเบเบเบฒเบ, เบกเบฑเบเบเบงเบเบเบฐเบเบฒเบเปเบเบเปเบเปเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ Perl die เบเบปเบเบเบฐเบเบด.
เบเบตเปเบเบฐเบเบทเบเบเบฑเบเปเบเบ makepp เปเบฅเบฐเบเปเปเบเบงเบฒเบกเบชเบฐเปเบเบเบเปเปเบเบดเบเบเบฒเบเบเบตเปเบชเบฐเปเบเบเบเบทเปเปเบเบฅเปเปเบฅเบฐเบชเบฒเบ
เบเปเบฒเบเบงเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฐเบเบทเบเบเบดเบกเบญเบญเบ.
เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเปเปเบกเบตเบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบซเบเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป; เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบฅเป, เบเปเบฒเปเบเบตเบเบเบฒเบ
เบเปเบฒเบชเบฑเปเบ shell, เปเบฅเบฐเบญเบทเปเบเป.
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบเบฒเบเบปเบเบขเบนเปเปเบเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบ
เบซเบเบถเปเบเบเบฑเปเบเปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบเบฒเบเบปเบเบขเบนเปเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบกเปเบเบเบฐเบซเบเบฒเบเบชเบญเบเบเบฑเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบปเปเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเบเปเบฒเปเบเบปเปเบฒ
เบเบฑเบเบเบฑเบเบกเบตเบเบปเบเบเปเบฒเบเบเบฝเบเปเบฅเบฐเบกเบตเบขเบนเปเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบชเปเบฒเบฅเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบซเบเบถเปเบ.
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก (เปเบเบเบชเบฐเปเบเบฒเบฐ, cwd) เปเบเบซเบเปเบฒเบเบตเปเบเบฐเปเบกเบตเบเบเบฐ
เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบปเบเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบ Makefile เบเบตเป
เบเบฑเบเบเบฑเบเบเบทเบเบเบฐเปเบกเบตเบเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบเปเบฒเบเบตเปเปเบกเปเบเบเบฑเบเบซเบฒเบชเปเบฒเบฅเบฑเบเบเปเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบซเบเปเบฒเบเบตเปเบเบญเบเบเปเบฒเบ
เบญเบฒเบโเบเบฐโเปเบเบดเปเบโเบเบฒเบโเบชเบดเปเบโเบเบฒเบโเบขเปเบฒเบโเปเบเบฑเปเบโเบเบตเปโ:
เบเปเบญเบ f_foo {
...
chdir $makefile->{CWD};
... เปเบเบฑเบเบเบปเปเบ.
}
เบเบฒเบเบงเบฒเบ เบซเบเปเบฒเบเบตเป เปเบเบปเปเบฒเปเบเปเบ a Perl เปเบกเบเบนเบ
เบเปเบฒเบเปเบฒเบเปเบญเบปเบฒเบซเบเปเบฒเบเบตเปเปเบเบปเปเบฒเปเบเปเบเปเบเบฅเปเบฅเบงเบก, เบเปเบฒเบเบเบฐเบกเบตเบซเบเบถเปเบเบชเปเบฒเปเบเบปเบฒเบเปเป Makeppfile เปเบเบดเปเบ
เปเบเปเบกเบฑเบ. เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบงเบเบกเบฑเบเปเบเบฑเบเปเบกเบเบนเบ Perl เบเบปเบเบเบฐเบเบดเบเบตเปเบกเบต "เบเบนเปเบชเบปเปเบเบญเบญเบ"
เบเบฒเบเปเบเปเบเบญเบ, เปเบฅเบฐเบเปเบฒเปเบเปเบกเบฑเบ. เบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบเปเบซเบผเบเปเบงเบเบถเปเบ เปเบฅเบฐเบเบฐเบซเบเบฑเบเปเปเบงเบเบเบงเบฒเบกเบเบณ:
perl {เปเบเป mymodule }
perl {
เปเบเป::เปเบกเบเบนเบเบเบญเบเบเปเบญเบ; # เปเบชเป : เปเบเปเบเบงเปเบซเบกเปเบเบฑเปเบเบเบฑเปเบเบเบตเปเบเปเปเปเบเปเบเบทเบเบงเบดเปเบเบฒเบฐเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบ
}
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฑเบเบเบฑเบเบเปเบฒเบเปเบเบฒเบกเบเบปเบเบเบฐเบเบดเบเบตเปเบกเบตเบขเบนเปเปเบ Makefile (เปเบเบฑเปเบ "f_"
functions, "arg" เบซเบผเบท "args"), เบเปเบฒเบเบเปเบญเบเปเบชเปเปเบชเบฑเปเบเบเบตเปเปเบเบปเปเบฒเปเบเปเบเปเบกเบเบนเบเบเบญเบเบเปเบฒเบ:
เปเบเป Mpp::Subs;
เบเปเปเปเบชเบเปเบกเปเบเบงเปเบฒเปเบกเบเบนเบเบเบฐเบขเบนเปเปเบเบเบธเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเปเบงเบฒเบเบฑเบเบเบฑเบเปเบเบเบเบปเบ
เบเบฐเบเบปเบเบขเบนเปเปเบ makefile. เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ, เบซเบผเบทเบเบฒเบเบเปเปเบชเปเบฒเบ
เบเบทเปเบเบตเปเบกเบตเบซเบเปเบฒเบเบตเป "เบเบนเปเปเบ" เบเบญเบ Perl.
เบเบฒเบเปเบ เบเบฒเบเบเบญเบ Perl scripts
เบเปเบฒเบเปเบฒเบเปเบเบซเบฒเบชเบฐเบเบดเบ Perl เบเบฒเบเบเบญเบเบเปเบฒเบ "เบฅเบฐเบเบปเบ", เบซเบผเบทเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ, makepp เบเบฐเปเบเบ a
เบเบฐเบเบงเบเบเบฒเบเปเบซเบกเป (เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบชเบธเบเบเปเบฒเบ) เปเบฅเบฐเบเบดเบเบเบฒเบเปเบเบเบฒเบชเบฒ perl เบเบตเปเบซเปเปเปเบซเบกเป.
เบเปเปเบกเบตเบซเบเบฑเบเบเบดเบเบเบปเบเบเบฐเบเบดเบเบฑเบเบชเบดเปเบเบเบฑเปเบ, เบเบปเบเปเบงเบฑเปเบเบงเปเบฒเบกเบตเบงเบดเบเบตเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบงเปเบฒ:
&เบเปเบฒเบชเบฑเปเบ เบเบฒเบเปเบเปเบเบฝเบ...
เบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ. เบกเบฑเบเบเบฐเปเบเบซเบฒเบซเบเปเบฒเบเบตเป เบเปเบฒเบชเบฑเปเบ เบเปเบงเบเบเบณเบเบณเปเปเบฒ "c_", เปเบฅเบฐ
เบเปเบฒเบเบกเบฑเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญ (เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบญเปเบฒเบเปเบเบดเบเปเบเบ makepp - เบเปเปเบเบทเบเบฑเบเบเบฑเบ
Shell) เบเบฒเบเปเบเปเบเบฝเบ. เบเปเบฒเบเปเปเบเบปเบเบเบฑเบเบเบฑเบเบเบฑเปเบเบเปเบฒเบง, เบเบตเปเบเบฐเบเปเบฒเบเบชเบฒเบเบเบฑเบเปเบปเบเปเบเบซเบฒ
"เปเบฅเปเบ".
sub c_mycmd { เบเบญเบเบเปเบญเบ @args = @_; ... }
$(phony callcmd):
&mycmd 'arg with space' arg2 "arg3" # เปเบเบซเบฒ c_mycmd
%.เบญเบญเบ: %.in
&myscript -o $(output) $(input) # เปเบเบซเบฒ myscript เบเบฒเบเบเบญเบ
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเปเบฒเบเบเบฒเบเปเบเบเบญเบเบเบญเบ buildins, เปเบซเปเบเปเบฒเบเปเบเป
เบเบฒเบเปเบฅเบทเบญเบเบกเบฒเบเบเบฐเบเบฒเบเบเบฝเบงเบเบฑเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเบกเบต, เปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฒเบ I/O เปเบเบปเบฒเปเบเบปเปเบฒเปเบซเป.
เบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบ "Mpp::Cmds::frame" เปเบกเปเบเบเบดเบเบเบฒเบกเบเปเบงเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเปเบฅเบทเบญเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเบฝเบงเบเบญเบ
buildins (เบชเบนเบเบชเบธเบเปเบกเปเบ "qw(fi I โโo O rs)"). เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเปเบฅเบทเบญเบเบเบญเบเบเปเบฒเบเปเบญเบ
overriding เบซเบเบถเปเบเปเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเบฒเบเบเบฑเบเปเบซเปเบเบปเบงเบญเบฑเบเบชเบญเบเบเบฝเบงเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเบกเบฒเบเบเบฐเบเบฒเบ.
เปเบเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบเบญเบเบเบปเบเปเบญเบเบเบทเบเบฅเบฐเบเบธเปเบเบฑเบ "[qw(n name), \$ref, เบญเบฒเบ, เบเปเบญเบ]". เบชเบญเบเบญเบฑเบ เบเบณ เบญเบดเบ
เบญเบปเบเบเบฐเบเบญเบเปเบกเปเบเบเบทเปเบชเบฑเปเบเปเบฅเบฐเบเบฒเบง, เบเบดเบเบเบฒเบกเบกเบฒเบเปเบงเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบปเบงเปเบเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเปเบเบ
boolean เบชเปเบฒเบฅเบฑเบเบงเปเบฒเบเบฐเปเบญเบปเบฒเบเบฒเบเปเบเปเบเบฝเบ. เปเบเบเบเปเปเบกเบตเบเบฒเบ arg, เบเบปเบงเปเบเปเบกเปเบ
เปเบเบตเปเบกเบเบถเปเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบเบเบตเปเบเบฒเบเปเบฅเบทเบญเบเปเบกเปเบเปเบซเป, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบกเบนเบเบเปเบฒเบเบฒเบเปเบฅเบทเบญเบเบเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบกเบฑเบ.
sub c_my_ocmd { # เบเปเบฅเบฐเบเบตเบเบปเบเบเบฐเบฅเบดเบเบเบปเบเบเบฐเบเบด
เบเปเบญเบเบเบดเปเบ @ARGV = @_;
Mpp::Cmds::frame {
... เบเบดเบกเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบตเปเบเปเบงเบ @ARGV, เบเบตเปเบกเบตเบเบปเบงเปเบฅเบทเบญเบเบญเบญเบเปเบฅเปเบงเบญเบฑเบเบเบฐเปเบเบกเบฑเบ
} 'f', qw(o O);
}
sub c_my_icmd { # เบเปเบฅเบฐเบเบตเบเปเบญเบเบเปเปเบกเบนเบเปเบเบเบเบปเบเบเบฐเบเบดเบกเบต 2 เบเบฒเบเปเบฅเบทเบญเบ
เบเปเบญเบเบเบดเปเบ @ARGV = @_;
เบเบญเบเบเปเบญเบ($เบชเบฑเปเบ, $เบเบฒเบง);
Mpp::Cmds::frame {
... เปเบฎเบฑเบเบญเบฑเบเบเบตเปเบเบฑเบ <>
} qw(i I rs), # s เบฅเบฐเบเบธเบเบฝเบเปเบเป --separator, เบเปเปเปเบกเปเบ -s
[qw(s short), \$short], # เบเปเปเบกเบตเบเบฒเบเปเบฅเบทเบญเบ arg -> $short == 1
[qw(l long), \$long, 1, sub { warn "got arg $long"}];
}
เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเป upcases เบเบฝเบเปเบเปเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบญเบดเบเบเบญเบเปเบเปเบฅเบฐ input
เบเบฑเบเบเบถเบ (เปเบเบปเปเบฒเบเบฑเบ "&sed '$$_ = "\u\L$$_"'"):
เบเปเบญเบ c_uc {
เบเปเบญเบเบเบดเปเบ @ARGV = @_;
Mpp::Cmds::frame {
เบเบดเบก "\u\L$_" เปเบเบเบฐเบเบฐเบเบตเป <>;
} 'f', qw(i I o O rs);
}
เบเบฒเบเปเบเบเปเบญเบเปเบกเปเบเบตเปเบเบทเบเบเบฑเบเบเบฒเบเปเบเบเบเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบกเบตเบเปเบญเบเปเบกเปเบเบตเปเบกเบตเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบ
เบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเปเบเบฑเปเบโ: เบเบฒเบโเปเบเบตเบโเปเบเบฅโเปโเบญเบทเปเบเปโ.
Mpp::Cmds::perform {... } 'เบเปเปเบเบงเบฒเบก';
เบเบตเปเบเบฐเบญเบญเบเบเปเปเบเบงเบฒเบกเบเปเบงเบ "--verbose" (เบเบตเปเบเบธเบเบเปเบฒเบชเบฑเปเบเบเบญเบกเบฎเบฑเบ) iff the
เบเปเบฒเบชเบฑเปเบเบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ. เปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฑเบเบเบฐเปเบกเบตเบเบงเปเบฒเบเปเปเบเบทเบเบเปเบญเบ, เบกเบฑเบเบเบฒเบเบเปเบงเบ
เบเปเปเบเบงเบฒเบกเบเบฐเบเบดเปเบชเบ.
เปเบฅเปเบ script เบเบฒเบเปเบเปเบเบฝเบ...
เบเบตเปเปเบกเปเบเบซเบเปเบฒเบเบตเป Perl เบเบปเบเบเบฐเบเบดเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเบชเบฐเบเบฒเบเบเบฒเบ Perl เปเบเปเบเบฒเบเปเบ makefile เบเบญเบเบเปเบฒเบ.
เบกเบฑเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบฎเบนเบเปเบเบเบเบฒเบเปเบเปเบเบฝเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบเบปเบ, เปเบเปเบกเบฑเบเปเบฅเปเบเบชเบฐเบเบดเบ Perl เบเบฒเบเปเบ
เบเบฐโเบเบงเบโเบเบฒเบโเปเบโเบเบฑเบโเบเบธโเบเบฑเบโ. เบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ makepp, เบซเบเปเบฒเบเบตเป perl เบซเบผเบทเบซเบเปเบฒเบเบตเปเบเบญเบเบเปเบฒเบเปเบญเบ
เบเบฑเปเบเปเบกเปเบเบเบฐเบเบงเบเบเบฒเบเปเบฅเปเบ makepp. เปเบเปเบชเปเบฒเบฅเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเบฑเบเบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบ
เบกเบฑเบ. เบชเบฐเบเบฃเบดเบเปเบเปเบเบทเบเบงเบดเปเบเบฒเบฐเบซเบผเบฒเบเปเบเบทเปเบญเปเบเบปเปเบฒเบเบตเปเบกเบฑเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒ, เปเบเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบชเปเบเบปเบงเบเบดเบเปเบเป
เปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ lib, เบเบฑเปเบเบเบตเป pod2html เปเบฎเบฑเบ. lib เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบ, เบเบฑเปเบเบเบฑเปเบ
เบงเปเบฒโเบกเบฑเบโเบกเบตโเบขเบนเปโเปเบฅเปเบงโ:
perl { เปเบเป mylib } # เบเบทเบเปเบเบเบญเบญเบเปเบเบฑเบเบเบปเบเปเบเบเบเบฑเบเปเบปเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบเบทเบ
%.เบญเบญเบ: %.in
makeperl { เปเบฅเปเบ qw'myscript -o $(output) $(input)' }
เบเปเบฒเบชเบฐเบเบดเบเปเบญเบตเปเบเบงเปเบฒ "เบญเบญเบ", เบเบดเบเบเบปเบงเบญเบฐเบเบดเบเบฒเบเปเบเบฅเปเบกเบฒเบเบเบฐเบเบฒเบเบซเบผเบทเบญเบตเบเปเบชเปเบฅเบฐเบเบปเบ
เปเบเบทเปเบญเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบซเบผเบฑเบเบเบฒเบเบกเบฑเบ (เปเบเบตเบเปเบเบฅเป, เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ ...), เบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฑเบเบซเบฒเบเบฑเบ "เปเบฅเปเบ". เบเปเบฒ
เบเปเบฒเบเปเบญเบตเปเบเบงเปเบฒ "เปเบฅเปเบ" เบเบฒเบเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบเบซเบผเบทเบซเบเปเบฒเบเบตเป perl, makepp เบชเบฒเบกเบฒเบเบเบทเบเบฅเบปเบเบเบงเบเบซเบผเบท
เบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบฝเบเปเบเปเปเบเบตเบเบเบถเปเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบ makepp.
เบเปเบฒเบเปเบฒเบเบกเบตเบเบฑเบเบซเบฒเบซเบเบถเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเปเบฒเบเปเบเบดเบ, เบเปเบฒเปเบเบตเบเบเบฒเบ script เบเบฒเบเบเบญเบ, เปเบเบฑเปเบ: เบเบฒเบ
เปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบเบ. เบเบฒเบเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบกเปเบเบกเบตเบเบฑเบเบซเบฒเบซเบเปเบญเบ, เปเบเบเบชเบฐเปเบเบฒเบฐเบเปเปเปเบกเปเบ
เปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบญเบญเบเปเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก,
เบเบปเบเปเบงเบฑเปเบเปเบ Windows.
เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ เบเบญเบโเบเปเบฒเบ เบเบญเบเบเบปเบเปเบญเบ เบฅเบฒเบเปเบเบฑเบ เบงเบดเบเบตเบเบฒเบ
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเปเบญเบเบเบฒเบ makepp เบเบดเบเปเบฅเปเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเปเบเบเปเบเปเปเบเบฑเบเบเบดเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบชเปเบฒเบฅเบฑเบ
เบเบปเบงเบขเปเบฒเบ, เบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเบกเบตเบเบฒเบเบชเบญเบเบเบตเปเบเบถเปเบเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ. เบเบปเบเบเบฐเบเบด, เบเปเบฒเบเปเบฒเบ
เบเบฒเบโเบเปเบฝเบโเปเบเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเบเบตเปโเปเบเปเบโเบเบฑเบโ, เบเปเบฒเบโเบเปเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบ relink เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบตเปโเบเบถเปเบโเบเบฑเบโเบกเบฑเบโเปเบเบฒเบฐโเบงเปเบฒโ
เบเบฒเบเปเบเบทเปเบญเบกเปเบเบเปเบกเปเบเปเบฎเบฑเบเปเบเปเบงเบฅเบฒเปเบฅเปเบ. (เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบงเปเบฒ relinking executable
เบญเบฒเบเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ, เบเบถเปเบเปเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเปเบญเบเบเปเปเปเบเปเปเบฎเบฑเบเปเบซเปเบเบตเปเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.) เบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ makepp
เบเบตเปเบเปเบญเบเปเบฎเบฑเบเบเบทเบเบฒเบเบกเบตเบฅเบฒเบเปเบเบฑเบเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบเบฐเบเปเบฝเบเปเบเบ.
เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบซเบผเบฒเบเบงเบดเบเบต. เบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเบตเปเบชเบธเบเปเบกเปเบเบเบฒเบเบชเปเบฒเบเปเบซเบกเปเบเบญเบเบเปเบฒเบเปเบญเบ
เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบ (เปเบซเปเปเบญเบตเปเบเบงเปเบฒ "shared_object"). เปเบเบปเปเบฒเบเบฐเปเบเปเบงเบดเบเบตเบฅเบฒเบเปเบเบฑเบเบเบตเป
เบเบฝเบเปเบเปเบเปเบฝเบงเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเบทเปเบญเบกเบเปเป binaries, เปเบเบฑเปเบเบเบตเป:
myprogram : *.o lib1/lib1.so lib2/lib2.so
: เบฅเบฒเบเปเบเบฑเบ shared_object
$(CC) $(inputs) -o $(output)
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบชเปเบฒเบเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบ.
เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบฑเบเปเบปเบเบเปเบญเบเปเบเบฑเบเบเบฑเปเบเบฎเบฝเบเบเบญเบเบเบปเบเปเบญเบ, เปเบฅเบฐเบซเปเบญเบเบฎเบฝเบเบเปเบญเบเบกเบตเบเบฒเบเบญเบฑเบเบเบดเปเบชเบ
เบฅเบฒเบเบเบฒเบ (เปเบเบดเปเบ Mpp/Signature.pm เปเบเบเบฒเบเปเบเบเบขเบฒเบเบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ). เบเบทเปเบเบญเบเบซเปเบญเบเบฎเบฝเบเบเปเบญเบเปเบเบฑเบ
เบเปเบฒเบเปเบฒเบซเบเปเบฒเบเปเบงเบ "Mpp::Signature::", เบเบฑเปเบเบเบฑเปเบเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบซเปเบญเบเบฎเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเบเบทเบเปเบญเบตเปเบ
"Mpp::เบฅเบฒเบเปเบเบฑเบ::shared_object". เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบชเปเบฒเบเปเบเบฅเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ shared_object.pm เปเบฅเบฐเปเบชเป
เบกเบฑเบเปเบเบปเปเบฒเปเบเปเบ Mpp::เบฅเบฒเบเปเบเบฑเบ directory somewhere เปเบ Perl เบเบฐเบเบญเบเบกเบตเปเบชเบฑเปเบเบเบฒเบ; เบชเบฐโเบเบฒเบโเบเบตเปโเบเบตเปโเบเปเบฒเบโเบเบตเปโเบชเบธเบโ
เบญเบฒเบเบเบฐเบขเบนเปเปเบ Mpp/เบฅเบฒเบเปเบเบฑเบ เปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ makepp (เปเบเบฑเปเบ:
/usr/local/share/makepp/Mpp/เบฅเบฒเบเปเบเบฑเบ เบซเบผเบทเบเปเบญเบเปเบเบเปเบเบฒเบกเบเบตเปเบเปเบฒเบเบเบดเบเบเบฑเปเบเบกเบฑเบ).
เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบตเปเบเบฑเบเปเบเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบญเบเปเบเบปเปเบฒเปเบเปเบเบซเปเบญเบเบฎเบฝเบเบเบตเป, เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบขเปเบฒเบเบฅเบฐเบญเบฝเบ
เปเบญเบเบฐเบชเบฒเบเบเบตเป Mpp/เบฅเบฒเบเปเบเบฑเบ.pm เปเบฅเบฐเบญเบฒเบเบเบฐเปเบเบฑเบเบเบทเบเบฑเบ Mpp/Signature/exact_match.pm เปเบ makepp เปเบเป
เบเบฒเบโเปเบเปโเบเบฐโเบเบฒเบโ. เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเปเบกเปเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบซเบผเบฒเบเปเบเบฑเบ
เบเบปเบเปเบเบเบฒเบเบฅเบปเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง; เบเปเบฒเปเบเบฅเปเปเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบปเบเบเบตเป
เบฅเบฒเบเปเบเบฑเบ, เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฅเปเปเบกเปเบเบชเบดเปเบเบญเบทเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบญเบตเบเปเบชเปเบเบฒเบเบเบปเบเบเบฐเบเบดเบเบญเบ makepp
เบเบปเบโเปเบโเบฅเบฒเบโเปเบเบฑเบโ. เบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบชเบธเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบทเบเบฒเบเบชเบทเบเบเบญเบเบเบฒเบ
"Mpp::Signature::c_compilation_md5", เปเบเบดเปเบเปเบเบฑเบเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบกเบฑเบเบเบฐเบเบทเบเปเบฅเบทเบญเบ.
เปเบกเบทเปเบญ makepp เบฎเบฑเบเบฎเบนเปเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเบกเบเปเป.
เบเบฑเปเบเบเบฑเปเบเปเบเบฅเป Mpp/Signature/shared_object.pm เบญเบฒเบโเบเบฐโเบเบฐโเบเบญเบโเบเปเบงเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
เปเบเปเบขเปเบฒเบเปเบเบฑเปเบเบเบฑเบ;
package Mpp::เบฅเบฒเบเปเบเบฑเบ::shared_object;
เปเบเป Mpp::เบฅเบฒเบเปเบเบฑเบ::c_compilation_md5;
@ISA เบเบญเบเบเบงเบเปเบฎเบปเบฒ = qw(Mpp::เบฅเบฒเบเปเบเบฑเบ::c_compilation_md5); # เบเบปเปเบเบเบญเบเปเบเบดเบเบเบฒเบเบชเบทเบเบเบญเบ.
$shared_object เบเบญเบเบเบงเบเปเบฎเบปเบฒ = เบญเบงเบเบเบญเบ \@ISA; # เบเบดเปเบเบชเปเบงเบเบเบญเบ magic เบเบตเปเบเปเบงเบเปเบซเป makepp เบเบญเบเบซเบฒ
# เปเบเบฃเปเบเบฑเบเบเปเบญเบเบชเบณเบฅเบฑเบเบงเบดเบเบตเบเบตเป. เบเบฑเบเปเบปเบ
# เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเปเบญเบเบกเบตเบญเบฑเบเปเบเบญเบฑเบเปเบถเปเบเบญเบฑเบเบเบตเป.
# เบเบธเบเบเปเบฒเบเปเปเปเบเปเปเบเป, เบเบฝเบเปเบเปเบงเบฑเบเบเบธเปเบเป.
# เปเบเบเบฑเบเบเบธเบเบฑเบเบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเปเบญเบตเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบญเบ
# เปเบเบปเปเบฒเปเบฒเบ เบซเบผเบทเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบตเปเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเปเบกเปเบเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง:
เบฅเบฒเบเปเบเบฑเบเบเปเบญเบ {
เบเบญเบเบเปเบญเบ ($self, # เบญเบฑเบเบเบตเปเบเบฐเบเบทเบเบฑเบเบเบฑเบ $shared_object.
$finfo) = @_; # เปเบเบเบชเปเบฒเบเบเบดเปเบชเบเบเบตเปเบเบฐเบเบญเบเบเปเบงเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบ
# makepp เบฎเบนเปเบเปเบฝเบงเบเบฑเบเปเบเบฅเปเบเบตเป. เปเบเบดเปเบ
# Mpp/File.pm เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ.
if ($finfo->{NAME} =~ /\.s[oa]$/) { # เบเบทเปเปเบเบฅเปเบฅเบปเบเบเปเบฒเบเบเปเบงเบ .so เบซเบผเบท .sa?
เบเบฑเบเบเบทเบ $finfo->file_exists ? 'เบกเบตเบขเบนเป': '';
# เบชเบฐเปเบซเบกเบตเบชเบปเปเบเบเบทเบเบฅเบฒเบเปเบเบฑเบเบเบฝเบงเบเบฑเบเบเปเบฒเปเบเบฅเป
# เบกเบตเบขเบนเป. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบฅเบฒเบเปเบเบฑเบเปเบกเปเบ
# string "เบกเบตเบขเบนเป".
}
Mpp::เบฅเบฒเบเปเบเบฑเบ::c_compilation_md5::เบฅเบฒเบเปเบเบฑเบ;
# เบเปเบฒเปเบเบฅเปเบเปเปเบชเบดเปเบเบชเบธเบเบเปเบงเบ .so เบซเบผเบท .sa,
# เบกเบญเบเปเบฒเบเปเบซเปเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบปเบเบเบฐเบเบดเบเบญเบ makepp.
}
เปเบเบฅเปเบเบตเปเปเบเปเบเบทเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบฑเบเบเบปเบงเบขเปเบฒเบเปเบเบเบฒเบเปเบเบเบขเบฒเบ makepp, เบกเบตเบเบฒเบเบชเปเบงเบเปเบเบตเปเบกเปเบเบตเบก
เบเปเบฒเปเบซเบฑเบ
เบเบฑเบเปเบญเบตเบ, เปเบเบฑเบเบซเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบถเปเบเบเปเปเปเบฎเบฑเบเปเบซเปเบญเบฑเบเบเบตเปเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ? เบเบต, เบกเบตเปเบงเบฅเบฒเบเปเบฝเบ a
เบซเปเบญเบเบชเบฐเปเบธเบเบเบตเปเปเบเปเบเบเบฑเบเบเบฐเบเปเบญเบเบกเบตเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเปเบเบผเปเบเบผเบกเบเบญเบเบเปเบฒเบเบเบทเบเปเปเป. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเปเบเบตเบโเบกเบตโเบเบฒเบโเบเปเบฝเบโเปเบเบโเบเบฑเบโเบซเบกเบปเบโ
เบชเบฑเบโเบเบฒโเบฅเบฑเบโเบเบตเปโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเปเบเปเบโเบเบฑเบโเบเปเบฒโเบเบปเบโ, เบซเบผเบทโเบชเบฑเบโเบเบฒโเบฅเบฑเบโเบเบตเปโเบกเบฑเบโเบเบถเปเบโเบเบฑเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเบญเบทเปเบเปโ
เบชเปเบฒเบฅเบฑเบ, relink เบเบฒเบเบเบฑเปเบเบญเบฒเบเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ.
เบเบปเบงเบขเปเบฒเบ, เบชเบปเบกเบกเบธเบเบงเปเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบเบเบฑเบเปเบเปเบฎเบฝเบเบฎเปเบญเบเบเบฒเบเปเบเบเบเบฒเบเบเปเบญเบเบเบตเปเปเบเบเบเบฒเบเบเบญเบเปเบเบปเปเบฒ
เบชเบฐเบซเบเบญเบ. เบเบปเบงเบขเปเบฒเบ, เบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบปเปเบฒเบเปเบฝเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบญเบเบเบตเปเบกเบฑเบเปเบเบซเบฒเบเบฒเบเบเบญเบ
subroutine "xyz()". เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบเปเบฒเบเปเบเปเบเบปเบงเปเบฅเบทเบญเบ "-E" เบซเบผเบท "--export-dynamic" เบเบฑเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป
(เบชเปเบฒเบฅเบฑเบ GNU binutils; เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบญเบทเปเบเปเบกเบตเบเบทเปเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ), เบชเบฑเบเบเบฒเบฅเบฑเบ "xyz()" เบญเบฒเบเบเบฐเบเปเป
เบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบงเบฅเบฒเปเบฅเปเบเปเบเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบกเบตเบขเบนเปเปเบเปเบเบผเปเบเบผเบกเบเบญเบเปเบเบปเปเบฒ.
เบฎเปเบฒเบเปเบฎเบเบเบงเปเบฒเปเบเบปเปเบฒ, เบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบปเปเบฒเบเปเบฒเบเบปเบ "xyz()" เปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบญเบทเปเบ (เปเบเบซเบฒเบกเบฑเบ เบฅเบตเบเบเบต), เบเบฑเปเบโเบเบตเปโ:
my_program: main.o lib1/lib1.so xyz/libxyz.a
เบเบฑเบเบเบฑเปเบเปเบเป "libxyz" เปเบเบฑเบ .a เปเบเบฅเปเปเบฅเบฐเบเปเปเปเบกเปเบ a เบเบฑเปเบเบเบฑเปเบ, เปเบเบฅเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ "xyz()" เบญเบฒเบเบเบฐเบเปเปเบเบทเบเบเบถเบเปเบเบปเปเบฒ
เบเบทเบเบเปเบญเบเบเบฒเบ libxyz.a เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบเปเบฒเบ relink binary เบเบญเบเบเปเบฒเบ.
Mpp::เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบฑเบเบเบงเบเบเบธเบกเบเปเปเบเบฝเบเปเบเปเบชเบฐเบเบฃเบดเบเบเบตเปเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบเบงเปเบฒ a
เปเบเบฅเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เปเบเป algorithm เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฝเบเบเบฝเบเบชเบฐเบเบฃเบดเบ. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเป
เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบ "target_newer" เปเบเบเบฒเบเปเบเบเบขเบฒเบ makepp เบเบฝเบเปเบเปเบฎเบฝเบเบฎเปเบญเบเปเบซเป
เปเบเบปเปเบฒเปเบฒเบเปเบกเปเบเปเปเปเบเบงเปเบฒเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เปเบเบเบฐเบเบฐเบเบตเปเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบ "exact_match" (เปเบฅเบฐ
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเบเบถเปเบเบเบฑเบเบกเบฑเบ, เปเบเบฑเปเบ "md5" เปเบฅเบฐ "c_compilation_md5") เบฎเบฝเบเบฎเปเบญเบเปเบซเป
เปเบเบฅเปเบกเบตเบฅเบฒเบเปเบเบฑเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบชเปเบฒเบเบซเบผเปเบฒเบชเบธเบ.
เบเบตเปเปเบกเปเบเบเบฒเบเบงเบดเบเบตเบฅเบฒเบเปเบเบฑเบเบญเบทเปเบเปเบเบตเปเบญเบฒเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบ, เปเบเบทเปเบญเบเปเบงเบเปเบซเปเบเปเบฒเบเบฎเบฑเบเบฎเบนเป
เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเป. เบเปเบฒเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบเบเบฝเบเบเป, เบเบฒเบเบชเปเบงเบเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบเบตเปเบชเบธเบเบญเบฒเบเบเบฐเปเบเบฑเบ
เบฅเบงเบกโเปเบเบปเปเบฒโเปเบโเปเบ makeppโ:
ยท เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบชเบณเบฅเบฑเบเบซเปเบญเบเบชเบฐเปเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเบเบตเปเบชเบปเปเบเบเบทเบ checksum เบเบญเบเบเบฑเบเปเบปเบเบเบตเปเบชเบปเปเบเบญเบญเบเปเบฅเปเบง
เบชเบฑเบเบเบฒเบฅเบฑเบ, เปเบฅเบฐเบชเบฑเบเบเบฒเบฅเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบฑเบเบเปเบญเบเบเบฒเบเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบญเบทเปเบเป. เบเบตเปโเปเบเปโเปเบโเปเบเปโ
เบเบฑเบเบซเบฒเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ, เปเบฅเบฐเบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเบทเบเบเปเบญเบเบเบฒเบเปเบเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเบเบซเบกเบปเบ.
เปเบเปเบกเบตเบเบฒเบเบเบฐเบเบฒเบเบฒเบกเบเบปเบเบฅเบญเบเปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเบฒเบเปเบเบเบขเบฒเบ makepp (เปเบเบดเปเบ
Mpp/Signature/shared_object.pm), เปเบเปเบกเบฑเบเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ GNU binutils เปเบฅเบฐ ELF เปเบเบปเปเบฒเบเบฑเปเบ
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบเบฑเบเบเบธเบเบฑเบ.
ยท เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบเปเปเบชเบปเบเปเบเบเบฒเบเบเบฐเบเบฑเบเบเบฒเบงเบฑเบเบเบตเบเบตเปเบเบฝเบเปเบงเปเปเบเปเบเบฅเป. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเปเบเบปเปเบฒ
เบชเปเบฒเบเบ .c เปเบเบฅเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเปเบเปเบเบฒเบเปเบเบเบเบฒเบเบเบตเปเบฎเบฝเบเบฎเปเบญเบเปเบซเปเปเบชเปเบชเบฒเบ
เปเบโเปเบเบโเบเบตเปโ:
static char * date_stamp = "เบชเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบงเบฑเบเบเบต 01 เปเบกเบชเบฒ 2004 เปเบเบเบเปเปเบกเบตเปเบ";
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเบเบฝเบเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบเปเปเบชเบปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเบชเบฐเปเบเบกเบงเบฑเบเบเบตเปเบเบเบชเบฐเปเบเบฒเบฐ.
เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบชเบฐเปเบเบกเบงเบฑเบเบเบตเปเบกเปเบเบชเบดเปเบเบเบฝเบงเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, makepp เบเบฐเบเปเปเบชเปเบฒเบเปเบซเบกเป.
ยท เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบเบดเบเปเบฅเปเบฅเบฒเบเปเบเบฑเบเปเบเปเบเบเบเบปเบเบเบฐเบเบด, เปเบเปเบเปเปเบชเบปเบเปเบ
เบเบฒเบเปเบญเบทเปเบญเบเบญเบตเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบฐเบชเปเบฒเบเปเบซเบกเป. เบเบตเปเบญเบฒเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบ
เปเบเบฅเปเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบขเปเบฒเบเปเบเปเบเบดเบ; เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเปเบชเปเบฒเบเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบซเบเบถเปเบ,
makepp เบเบฐเบเบทเบเบเบฑเบเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบทเบเปเบซเบกเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเบฅเปเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ - เปเบญเบเบฐเบฅเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเปเบฝเบ
เบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
ยท เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเปเปเบชเบปเบเปเบเบเปเบฒเปเบซเบฑเบเปเบเปเบเบฅเปเบขเบฒเบ, เปเบเบฑเบ
"c_compilation_md5" เบงเบดเบเบตเบเบฒเบเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเปเปเบชเบปเบเปเบเบเปเบฒเปเบซเบฑเบเปเบเปเบเบฅเป C.
ยท เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเปเบญเบเบฐเบชเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเป checksums เบเบฝเบเปเบเป
เบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบตเปเบเบนเปเบชเบฐเบเบฑเบเปเบญเบเบฐเบชเบฒเบเบเปเบญเบเบเบฒเบเปเบฅเบฐเบเปเปเบชเบปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบญเบทเปเบเปเบเปเปเบเบฑเบเปเบซเบผเปเบ
เบเบทเปเบ.
เบเบฑเบเบเปเปเปเบฅเปเบง
เปเบญเบเบฐเบชเบฒเบเบเบตเปเบเบฑเบเบเปเปเปเบฅเปเบงเปเบเบทเปเบญ. เบกเบฑเบเบเบงเบเบเบฐเบเบงเบกเปเบญเบปเบฒเบงเบดเบเบตเบเบฒเบเบเบฝเบเปเบเบทเปเบญเบเบชเบฐเปเบเบเบเบญเบเบเปเบฒเบเปเบญเบเบชเปเบฒเบฅเบฑเบ
เบฅเบงเบกเบกเบตเปเบเบฅเป เปเบฅเบฐเบชเบดเปเบเบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ.
เปเบเป makepp_extending เบญเบญเบเปเบฅเบเปเปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ onworks.net