เด‡เด‚เด—เตเดฒเต€เดทเตเดซเตเดฐเดžเตเดšเตเดธเตเดชเดพเดจเดฟเดทเต

Ad


OnWorks เดซเต†เดตเดฟเด•เตเด•เต‹เตบ

makepp_variables - เด•เตเดฒเต—เดกเดฟเตฝ เด“เตบเดฒเตˆเดจเดฟเตฝ

เด‰เดฌเตเดฃเตเดŸเต เด“เตบเดฒเตˆเตป, เดซเต†เดกเต‹เดฑ เด“เตบเดฒเตˆเตป, เดตเดฟเตปเดกเต‹เดธเต เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ MAC OS เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‚เดŸเต† OnWorks เดธเต—เดœเดจเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดฆเดพเดคเดพเดตเดฟเตฝ makepp_variables เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

Ubuntu Online, Fedora Online, Windows online emulator เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ MAC OS เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจเดฟเด™เตเด™เดจเต†เดฏเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเต—เดœเดจเตเดฏ เด“เตบเดฒเตˆเตป เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต OnWorks เดธเต—เดœเดจเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดฆเดพเดคเดพเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดตเตเดจเตเดจ makepp_variables เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเดพเดฃเดฟเดคเต.

เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดซเต†เดกเต‹เดฑเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดตเดฟเตปเดกเต‹เดธเต เดธเดฟเดฎเตเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• MACOS เดธเดฟเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดชเดŸเตเดŸเดฟเด•:

NAME


makepp_variables -- makepp-เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

เดตเดฟเดตเดฐเดฃเด‚


?: $*,
$+,
$/,
$<,
$?,
$@,
$^,
=,
!=,
&=,
+=,
:=,
;=,
?=, A: AR,
เด†เตผเดซเตเดฒเดพเด—เตเด•เตพ,
AS, C: DC,
CFLAGS,
"เดฎเดพเดฑเตเดฑเด‚_เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚",
เดฎเดพเดฑเตเดฑเดฟเดฏ_เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ,
CURDIR,
CXX,
CXXFLAGS, D: "เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚",
"เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚", F: F77,
เดŽเดซเตเดธเดฟ,
"เดซเต‹เดฑเดšเตเดšเต", I: เด‡เตปเดชเตเดŸเตเดŸเต,
เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ, L: LD,
LEX,
LIBTOOL, M: เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•,
เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•,
เดฎเต‡เด•เตเด•เตเดซเตเดฒเดพเด—เตเด•เตพ,
MAKEINFO,
MAKEPP_DEBUG,
เดฎเต‡เด•เตเด•เตเดซเตเดฒเดพเด—เตเด•เตพ,
_MAKEPPFLAGS,
MAKEPP_LN_CP,
"makepp_percent_subdirs",
"makepp_require_phony",
makepp_signature_C_flat,
"makepp_simple_concatenation",
MAKEPP_VERSION, O: "เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต",
"เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ", P: เดชเต‡เตพ,
เดชเดฟเดกเดฌเตเดฒเตเดฏเตเดกเดฟ, R: เด†เตผเดŽเด‚,
เดฑเต‚เดŸเตเดŸเต, S: เดทเต†เตฝ,
"เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš_เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เตพ",
เด…เดŸเตเด•เตเด•เดฟเดฏ_เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ,
"เดคเดฃเตเดŸเต", T: เดฒเด•เตเดทเตเดฏเด‚,
เดŸเดพเตผเด—เต†เดฑเตเดฑเตเด•เตพ, V: VPATH, Y: YACC

เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดชเดฒ เดธเตเดฅเดฒเด™เตเด™เดณเดฟเดฒเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเดฃเด‚
variables เดŽเดจเตเดจเดคเต makefile-เตฝ เด’เดฐเดฟเดŸเดคเตเดคเต เดฎเดพเดคเตเดฐเดฎเต‡ เดตเดฟเดตเดฐเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเต‚ เดŽเดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเดจเดพเดฃเต
เด…เดคเต เดฎเดพเดฑเดฟเดฏเดพเตฝ, เดตเดฟเดตเดฐเด™เตเด™เดณเตเดŸเต† เดฐเดฃเตเดŸเต เดชเด•เตผเดชเตเดชเตเด•เตพ เดชเตเดฑเดคเตเดคเตเดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด…เดชเด•เดŸเดตเตเดฎเดฟเดฒเตเดฒ
เดธเดฎเดจเตเดตเดฏเด‚.

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดชเต‡เดฐเตเด•เตพ เด•เต‡เดธเต เดธเต†เตปเดธเดฟเดฑเตเดฑเต€เดตเต เด†เดฃเต. เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเตฝ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดชเต‡เดฐเตเด•เตพ เดชเดฒเดคเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚
เด•เดฅเดพเดชเดพเดคเตเดฐเด™เตเด™เตพ, เดชเด•เตเดทเต‡ เดจเดฟเด™เตเด™เตพ เด…เดฒเตเดฒเดพเดคเต† เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดคเดพเตฝ เดฎเต‡เด•เตเด•เดชเตเดชเดฟเดจเต เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดคเต เดคเดŸเตเดŸเดฟเดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ
เด†เตฝเดซเดพเดจเตเดฏเต‚เดฎเต†เดฑเดฟเด•เต เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ, "_", "-" เดŽเดจเตเดจเดฟเดต.

เด“เดฐเต‹ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดฃเตเดŸเต, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด’เดฐเต เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚
เดฎเดฑเตเดฑเต‡เดคเตŠเดฐเต เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเดฒเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ
เดจเดฟเดฐเดตเดงเดฟ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ, เด…เดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดจเดฒเตเดฒ เดฎเดพเตผเด—เด‚ เด…เดตเดฏเดฟเตฝ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดชเตŠเดคเตเดตเดพเดฏ เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด• เดŽเดจเตเดจเดคเดพเดฃเต
เดซเดฏเตฝ (เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ เด•เดพเดฃเตเด•) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เด—เตเดฒเต‹เดฌเตฝ" เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•.

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต
เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดพเด‚:

ยท เด’เดฐเต เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเดจเตเดณเตเดณเดฟเตฝ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟเดฏเต‡เด•เตเด•เดพเด‚. เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต
เดˆ; เดคเดพเดดเต† เดจเต‡เดพเด•เตเด•เตเด•.

เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เด‡เดคเตเดชเต‹เดฒเต† เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเต‡เด•เตเด•เดพเด‚:

makepp CFLAGS=-O2 my_program

เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฎเต‡เด•เตเด•เตเดซเดฏเดฒเตเด•เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดคเดพเตฝ, CFLAGS เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดŽเดฒเตเดฒเดพเดตเดฐเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเตเดฐเดšเดฐเดฟเดชเตเดชเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚
เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ. เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เดธเตเดตเดฏเดฎเต‡เดต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเดจเตเดจเต
เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เดณเดฟเดฒเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ.

เดŽเดชเตเดชเต‹เดดเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, makefile เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฃเด‚.
เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดตเด—เดฃเดฟเด•เตเด•เตเด•เดฏเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เด…เดคเต เดชเดฐเดฟเดทเตเด•เดฐเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เดฎเดพเดฃเต เด‰เดฆเตเดฆเต‡เดถเตเดฏเด‚.
"เด“เดตเตผเดฑเตˆเดกเต" เดฎเต‹เดกเดฟเดซเดฏเตผ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเตเด•เตเด•เต เดฎเตเดฎเตเดชเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดŽเดจเตเดจเดพเตฝ เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ
เด•เต€เดตเต‡เดกเต เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ, เด•เตเดฐเดฎเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเดฒเดพเดฃเต เด“เดตเตผเดฑเตˆเดกเต เดตเต‡เดฐเดฟเดฏเดจเตเดฑเต
เดŽเดชเตเดชเต‹เดดเตเด‚ เดคเดพเดดเต† เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. "เด“เดตเตผเดฑเตˆเดกเต" เดฎเต‹เดกเดฟเดซเดฏเตผ เดเดคเต เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเดฟเดจเตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดฌเดพเดงเด•เดฎเดพเด•เต‚
เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เดณเต† เดธเตเดตเดพเดงเต€เดจเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

ยท เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเต† เด’เดฐเต makepp เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฏเดฟ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เดพเด‚.
เด’เดฐเต เดฎเต‡เด•เตเด•เตโ€Œเดซเตˆเตฝ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตฝ เด•เตเดฐเดฎเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเดฒเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เตพ
เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ, เดŽเดจเตเดจเดพเตฝ "-e" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "--environment-overrides" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚
เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด“เดชเตเดทเตป.

เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเดฒเดพเดฃเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต

X = 1
เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ := abcd
CC ?= gcc
CFLAGS += -เดฎเดคเดฟเตฝ
VAR เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•
var เดฒเตˆเตป 1
var เดฒเตˆเตป 2
enddef
เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ PATH := $(PWD):$(PATH)
เด†เด—เต‹เดณ MYPROJECT.INFO = เดŽเดฒเตเดฒเดพ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เดณเดฟเดฒเตเด‚ เด•เดพเดฃเต‡เดฃเตเดŸ เดตเดฟเดตเดฐเด™เตเด™เตพ

เดฎเต‚เดฒเตเดฏเด™เตเด™เตพเด•เตเด•เต เดšเตเดฑเตเดฑเตเดฎเตเดณเตเดณ เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดชเดฟเดจเตเดจเดฟเตฝ เดจเดฟเตฝเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เดตเตเดฏเดคเตเดฏเดธเตเดค เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดตเตเดฏเดคเตเดฏเดธเตเดค เด…เตผเดคเตเดฅเด™เตเด™เดณเตเดฃเตเดŸเต.

เดฒเด˜เตเดตเดพเดฏ เดจเดฟเดฏเดฎเดจเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ

=
VARIABLE = เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ = เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เดŽเดฒเตเดฒเดพ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเตเด•เดณเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดธเดพเดงเดพเดฐเดฃ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเดพเดฃเดฟเดคเต. เดฆเดฟ
"$(VARIABLE)" เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด†เด•เตเดจเตเดจเดคเต เดตเดฐเต† เดตเดฒเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ
เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดŽเดตเดฟเดŸเต†เดฏเต‹ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ:

X = 1
Y = $(X)
X = 2

เดชเดฟเดจเตเดจเต€เดŸเต เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเตฝ "$(Y)" เดŽเดจเตเดจเดคเต "2" เด†เดฏเดฟ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเด‚.

เดชเตŠเดคเตเดตเต‡, เดจเดฟเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ "=" เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ ":=" (เดšเตเดตเดŸเต† เด•เดพเดฃเตเด•) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚, เด•เดพเดฐเดฃเด‚ เด…เดคเต
เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเดšเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเดฎเดฏเด™เตเด™เดณเตเดฃเตเดŸเต
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดฎเดพเดฑเตเดฑเดฟเดตเดฏเตเด•เตเด•เดพเตป. เด•เต‚เดŸเดพเดคเต†, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฎเต‡เด•เตเด•เต เดซเดฏเตฝ เดŽเดดเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚
GNU make เด…เดฒเตเดฒเดพเดคเต† เดฎเต‡เด•เตเด•เดฟเดจเตเดฑเต† เดšเดฟเดฒ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดพเด•เตเด•เตเดตเต‡เตผเดกเต-เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต, เด…เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เดฟเดฒเตเดฒ
เดšเต‹เดฏเตเดธเต: เดจเดฟเด™เตเด™เตพเด•เตเด•เต "=" เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เต‚.

:=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ := expr
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด• := expr

เด‡เดคเต "VARIABLE = expr" เดŽเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต, เดตเดฒเดคเต เดตเดถเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเต เด’เดดเดฟเด•เต†
เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดธเดฎเดฏเดคเตเดคเต เด’เดฐเดฟเด•เตเด•เตฝ เดŽเดจเตเดจเต‡เด•เตเด•เตเด‚. เด…เด™เตเด™เดจเต† เดŽเด™เตเด•เดฟเตฝ

X := 1
Y:= $(X)
X := 2

"$(Y)" เดชเดฟเดจเตเดจเต€เดŸเต เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเตฝ "1" เด†เดฏเดฟ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดšเต†เดฏเตเดฏเตเด‚, เด•เดพเดฐเดฃเด‚ เด…เดคเดพเดฃเต "$(X)"
"$(Y)" เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดชเตเดชเต‹เตพ.

;=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ ;= expr
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด• ;= expr

เดตเดฒเดคเตเดตเดถเดคเตเดคเต เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเดŸเดคเตเดคเดฟเดฏเดคเตŠเดดเดฟเดšเตเดšเดพเตฝ เด‡เดคเต "VARIABLE := expr" เดŽเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต
เด†เดฆเตเดฏ เด‰เดชเดฏเต‹เด— เดธเดฎเดฏเดคเตเดคเต เดฎเดพเดคเตเดฐเด‚, เดคเตเดŸเตผเดจเตเดจเต เด“เตผเดฎเตเดฎเดฟเด•เตเด•เตเด•. เดšเต†เดฒเดตเต‡เดฑเดฟเดฏเดตเตผเด•เตเด•เต เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต
เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต‡ เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเตเด•เตพ, เดŽเดจเตเดจเดพเตฝ เดŽเดชเตเดชเต‹เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ
เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•:

VAR1 ;= $(เดชเต‡เตพ เดšเต†เดฒเดตเต‡เดฑเดฟเดฏ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด•เตพ)
VAR2 ;= $(เดทเต†เตฝ เดฌเดพเดนเตเดฏ เด•เดฎเดพเตปเดกเต)

เดชเดดเดฏ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‡เดตเดฟเดŸเต† ":=" เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, เด‡เดคเต เด’เดฐเดฟเด•เตเด•เดฒเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเตเด•.
เดŽเดจเตเดจเดพเตฝ เดˆ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เดจเดฟเด™เตเด™เตพ เดจเดฟเดฒเดตเดฟเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ
เดฎเต‚เดฒเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดจเดฟเดฐเดตเดงเดฟ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเด‚
เดคเดพเดดเต† เดšเตผเดšเตเดš เดšเต†เดฏเตเดค "เด—เตเดฒเต‹เดฌเตฝ" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเด•.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏ เด•เตเดฐเดฎเด‚ เดจเดฟเตผเดฌเดจเตเดงเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดฎเตผเดคเตเดฅเดฎเดพเดฏ เดฎเดพเตผเด—เดฎเดพเดฏเดฟ เด‡เดคเต เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด…เดคเต เด…เด™เตเด™เดฟเดจเต†เดฏเต†เด™เตเด•เดฟเตฝ
เด‡เดคเตเดชเต‹เดฒเต† เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดตเตเด‚ เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต
เด’เดฐเต เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฎเต‚เดฒเตเดฏเดฎเตเดฃเตเดŸเต, เด†เดฆเตเดฏ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เด† เดฒเด•เตเดทเตเดฏเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณเดคเดพเดฃเต, เดคเตเดŸเตผเดจเตเดจเต
เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฎเต‚เดฒเตเดฏเด‚ เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเดฒเตเด‚ เดชเดฑเตเดฑเดฟเดจเดฟเตฝเด•เตเด•เตเด‚. เด‡เดคเตŠเดฐเต เดฌเด—เต เด†เดฃเต
เดญเดพเดตเดฟเดฏเดฟเตฝ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

+=
VARIABLE += expr
VARIABLE += expr เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเตเดฎเตเดชเดคเตเดคเต† เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เด•เตŠเดฃเตเดŸเต เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเด™เตเด•เดฟเตฝ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเตเดฎเตเดชเต ":=" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดธเตˆเตป เดšเต†เดฏเตโ€Œเดคเดฟเดฐเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดตเดฒเดคเตเดญเดพเด—เด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเต
เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต.

&=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ &= เดŽเด•เตเดธเตเดชเดฟเด†เตผ
VARIABLE &= expr เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เด•เตŠเดฃเตเดŸเต เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเตเดฎเตเดชเดคเตเดคเต† เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เดฟเดจเต† เดฎเตเตปเดจเดฟเดฑเตเดคเตเดคเตเดจเตเดจเต.
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเตเดฎเตเดชเต ":=" เดŽเดจเตเดจเดคเดฟเดจเตŠเดชเตเดชเด‚ เดจเตฝเด•เดฟเดฏเดฟเดฐเตเดจเตเดจเต†เด™เตเด•เดฟเตฝ, เดตเดฒเดคเต เดตเดถเดฎเดพเดฃเต
เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดฟ.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "CFLAGS" เดŽเดจเตเดจเต เด‰เดฑเดชเตเดชเตเดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เตเด—เด‚, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเต‡เด•เตเด•เดพเด‚,
เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ "-เดตเดพเตพ" เดŽเดจเตเดจเดคเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดˆ เดฐเดฃเตเดŸเต เดตเดฐเดฟเด•เดณเดพเดฃเต:

CFLAGS = -O2 # เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เดพเด‚
CFLAGS เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด• &= -เดตเดพเตพ # เดจเดฟเดฐเตเดชเดพเดงเดฟเด•เดฎเดพเดฏเดฟ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดจเดฟเดถเตเดšเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดชเดดเดฏ เดฎเต‡เด•เตเด•เตโ€Œเดซเดฏเดฒเตเด•เดณเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‡เดคเตเดชเต‹เดฒเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเต เดตเดถเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต
เด…เดจเดจเตเดคเดฎเดพเดฏ เด†เดตเตผเดคเตเดคเดจเด‚ เดคเดŸเดฏเดพเตป ":=" เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดฐเด‚ เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚:

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ := เดŽเด•เตเดธเตเดชเตเดฐเตผ $(เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ)

?=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ ?= expr
เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด• VARIABLE ?= expr # เด‰เดชเดฏเต‹เด—เดถเต‚เดจเตเดฏเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เดจเดฟเดฏเดฎเดชเดฐเดฎเดพเดฃเต

เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเต‡เดฐเดคเตเดคเต† เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚
makefile, เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ. เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เด†เดฃเต
เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดคเตเดฒเตเดฏเดฎเดพเดฃเต

ifndef เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ = เดŽเด•เตเดธเตเดชเตเดฐเตผ
endif

!=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ != เดทเต†เตฝ เด•เดฎเดพเตปเดกเต
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ != เดทเต†เตฝ เด•เดฎเดพเตปเดกเต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เดทเต†เตฝ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เดฎเดพเตปเดกเดฟเดจเตเดฑเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
เด‡เดคเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดคเตเดฒเตเดฏเดฎเดพเดฃเต

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ := $(เดทเต†เตฝ เด•เดฎเดพเตปเดกเต)

เดฎเตพเดŸเตเดŸเดฟเดฒเตˆเตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

"เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•" เดŽเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เดฎเตพเดŸเตเดŸเดฟเดฒเตˆเตป เดคเตเดฒเตเดฏเดฎเดพเดฃเต. เดฆเดฟ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดถเต‡เดทเดฎเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด“เดชเตเดทเดฃเดฒเดพเดฃเต. เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเดพเตฝ, เด…เดคเต "เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต
=". "&=", "+=" เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เด‡เดตเดฟเดŸเต† เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต, เด…เดตเตผ เด‡เดคเต เด’เดŸเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต
เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเต‡เด•เตเด•เดพเตพ เดชเตเดคเดฟเดฏ เดตเดฐเดฟเดฏเตเดณเตเดณ เดชเดดเดฏ เดฎเต‚เดฒเตเดฏเด‚. เดŽ เด’เดดเดฟเด•เต† เดฎเดฑเตเดฑเตŠเดจเตเดจเตเด‚ เด‰เดฃเตเดŸเดพเด•เดฐเตเดคเต
เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเตเด•เตเด•เต เดถเต‡เดทเด‚ เด•เดฎเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเด•, เด…เดคเดพเดฏเดคเต เดฎเต‚เดฒเตเดฏเด‚ เด…เดŸเตเดคเตเดค เดตเดฐเดฟเดฏเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด• :=
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดตเดฐเดฟ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดตเดฐเดฟ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดจเตเดจเดพเด‚ เดตเดฐเดฟ
endef

เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•
...
enddef

"เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต" เดฎเตเดฎเตเดชเตเดณเตเดณ เด•เต€เดตเต‡เดกเตเด•เตพ "เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เด—เตเดฒเต‹เดฌเตฝ" เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด’เดจเตเดจเดฟเดจเตเดฑเต† เดธเด‚เดฏเต‹เดœเดจเดฎเดพเด•เดพเด‚
"เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•".

เดจเตเดฏเต‚เดฒเตˆเดจเตเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ "เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•" เดŽเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚
เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต Perl-เตฝ เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เดพเด‚). ("endef" เด‡เดคเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต
GNU เดจเดฟเตผเดฎเตเดฎเดพเดฃเดตเตเดฎเดพเดฏเตเดณเตเดณ เด…เดจเตเดฏเต‹เดœเตเดฏเดค. เดจเดฟเด™เตเด™เตพเด•เตเด•เต "enddef" เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.) เด‡เดคเต เดชเตเดฐเดพเดฅเดฎเดฟเด•เดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต
"เด•เดพเตปเดกเต เด•เดฎเดพเตปเดกเต เดธเต€เด•เตเดตเตปเดธเตเด•เตพ", เด‰เดฆเดพ., เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต:

COMPILE_C_PROGRAM เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•
@&เดŽเด•เตเด•เต‹ "เด•เดฎเตเดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเต $(เด‡เตปเดชเตเดŸเตเดŸเต)"
@$(CC) $(CFLAGS) $(CPPFLAGS) $(เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)
endef

เดคเตเดŸเตผเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดฎเตพเดŸเตเดŸเดฟ-เดฒเตˆเตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเดฐเดตเดงเดฟ เดจเดฟเดฏเดฎเด™เตเด™เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ:

%.o : %.c
$(COMPILE_C_PROGRAM)

$(ARCH)/%.o : $(ARCH)/%.c
$(COMPILE_C_PROGRAM)

เด’เดฐเต เดจเตเดฏเต‚เดฒเตˆเดจเดฟเดจเตเดชเด•เดฐเด‚ เด’เดฐเต เด…เตผเดฆเตเดงเดตเดฟเดฐเดพเดฎเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด‡เดคเต‡ เดชเตเดฐเดญเดพเดตเด‚ เดจเต‡เดŸเดพเดจเดพเด•เตเดฎเต†เดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•,
เด•เดพเดฐเดฃเด‚ เดทเต†เตฝ เด…เดคเดฟเดจเต† เด’เดฐเต เด•เดฎเดพเตปเดกเต เดกเดฟเดฒเดฟเดฎเต€เดฑเตเดฑเตผ เด†เดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,

COMPILE_C_PROGRAM = @echo "เด•เด‚เดชเตˆเดฒเดฟเด‚เด—เต $(เด‡เตปเดชเตเดŸเตเดŸเต)"; \
$(CC) $(CFLAGS) $(CPPFLAGS) $(เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)

เด…เตผเดฆเตเดงเดตเดฟเดฐเดพเดฎเด‚ เดชเต‡เดณเดฟเดจเต† เดทเต†เดฒเตเดฒเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเดคเตเดคเดฟเดตเดฟเดŸเดพเตป เดชเตเดฐเต‡เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเตŠเดดเดฟเดšเตเดšเดพเตฝ, เด‡เดคเต‡ เดซเดฒเดฎเตเดฃเตเดŸเดพเด•เตเด‚.
เด•เดฎเดพเตปเดกเต เดจเต‡เดฐเดฟเดŸเตเดŸเตเด‚ เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚. เด“เดฐเต‹เดจเตเดจเตเด‚ เด‡เดŸเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚
เดฌเดฟเตฝเดฑเตเดฑเตเด‡เตป เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เด’เดฐเต เดตเดฐเดฟเดฏเดฟเตฝ, เด…เดคเดพเดฏเดคเต เดจเดฟเด™เตเด™เตพ เดฌเดพเดนเตเดฏเดฎเดพเดฏ เดชเตเดฐเดคเดฟเดงเตเดตเดจเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดฃเด‚
เด…เตผเดฆเตเดงเดตเดฟเดฐเดพเดฎ เด•เต‡เดธเต.

"define" เดŽเดจเตเดจเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด•เดคเดฏเตเดฃเตเดŸเต, เด…เดคเดพเดฏเดคเต "define X :=" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ a-เตฝ
เด‡เดคเดฟเดจเด•เด‚ ":=", "เดŽเด•เตเดธเต &=" เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•เดฏเตเด‚ "เดŽเด•เตเดธเต +=" เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดค เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดฆเดฟ
"$(เดทเต†เตฝ เด•เดฎเดพเตปเดกเต ...)" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฌเดฟเตฝเดŸเตเดŸเดฟเตป "$(&เด•เดฎเดพเตปเดกเต ...)" เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดชเตเดคเดฟเดฏ เดฒเตˆเดจเตเด•เตพ เดฐเต‚เดชเดพเดจเตเดคเดฐเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ
เด‡เดŸเด™เตเด™เตพ.

เดŽเด•เตเดธเตเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดฒเต‡เด•เตเด•เต เด‰เดชเดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ

VAR เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ...
เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ VAR = เดฎเต‚เดฒเตเดฏเด‚
เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ VAR += เดฎเต‚เดฒเตเดฏเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เด†เดฆเตเดฏ เดซเต‹เด‚ เด‰เดชเดชเตเดฐเต‹เดธเดธเตเดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดเดคเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเตเด‚
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เด…เดชเตเดชเต‹เตพ เด‰เดฃเตเดŸเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดซเต‹เด‚, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดฎเดพเดคเตเดฐเด‚ เดฌเดพเดงเด•เดฎเดพเดฃเต
เด‰เดŸเตป เดคเดจเตเดจเต† เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต. เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดตเด•เดญเต‡เดฆเด™เตเด™เดณเตเด‚ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต.

เดชเด™เตเด•เดฟเดŸเตเดจเตเดจเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดŸเดจเต€เดณเด‚ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ

เด†เด—เต‹เดณ VAR...
เด†เด—เต‹เดณ VAR = เดฎเต‚เดฒเตเดฏเด‚
เด†เด—เต‹เดณ VAR &= เดฎเต‚เดฒเตเดฏเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เด†เดฆเตเดฏ เดซเต‹เด‚ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเต† เดŽเดฒเตเดฒเดพ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพเด•เตเด•เตเด‚ เด†เด—เต‹เดณเดฎเดพเดฏเดฟ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. เด…เดตเดฏเดฟเดฒเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ
เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด† เดฎเต‚เดฒเตเดฏเด‚ makefile เดฒเต‹เด•เตเด•เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด—เตเดฒเต‹เดฌเดฒเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต
เด’เดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เดชเตเดฐเดธเตเดคเดพเดตเดจ เด•เดพเดฃเตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต, เดฎเดฑเตเดฑเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‡เด•เตเด•เตเดซเดฏเดฒเตเด•เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต
เด…เดตเดฏเดฟเดฒเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‚เดฒเตเดฏเด‚, เด…เดชเตเดชเต‹เตพ เด† เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ เด†เด—เต‹เดณเดฎเดพเดฏเดคเต เด•เดพเดฃเดฟเดฒเตเดฒ.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดซเต‹เด‚, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดฎเดพเดคเตเดฐเด‚ เดฌเดพเดงเด•เดฎเดพเดฃเต, เด…เดงเดฟเด•เดฎเดพเดฏเดฟ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เด…เดตเด•เดพเดถเด‚ เดจเตฝเด•เตเดจเตเดจเต
เดฆเต‚เดฐเต†. เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดตเด•เดญเต‡เดฆเด™เตเด™เดณเตเด‚ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต. ":=" เด‰เดŸเตป เดคเดจเตเดจเต† เดตเดฟเด•เดธเดฟเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฎเต†เดฏเตเด•เตเด•เต เดซเดฏเดฒเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต. เดจเต‡เดฐเต†เดฎเดฑเดฟเดšเตเดšเต "=" เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดตเดฟเด•เดธเดฟเด•เตเด•เตเด‚
เด‰เดชเดฏเต‹เด— เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ.

เด—เตเดฒเต‹เดฌเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ makepp เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดคเต‡เด•เตเด•เดพเด‚
เดฑเต‚เดณเตเด•เดณเต‹ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เดณเต‹ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เดšเดฟเดฒ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค เด‰เดฏเดฐเตเดจเตเดจเดคเดฟเดจเดพเตฝ เด“เตผเดกเตผ เดšเต†เดฏเตเดฏเตเด•.
เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เด’เดฐเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต RootMakeppfile เดŽเดฒเตเดฒเดพเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚
"load-makefile" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดชเดฐเดฟเดทเตเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต‹ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต‹ เด†เดฏ เดฎเดฑเตเดฑเตเดณเตเดณเดต.

เด†เด—เต‹เดณ GLIBLIBS ;= $(shell pkg-config --libs glib-2.0)

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตโ€Œเดฑเตเดฑเต เด’เดฐเต เดฆเดฟเดตเดธเด‚ เดฎเดฑเตเดฑเต เดชเตเดฐเต‹เดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต‡เด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เด‡เดคเดฟเดจเดพเดฏเดฟ
เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดจเดพเดฎเด‚ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เด—เต‹เดณ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดพเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเดฃเด‚.

เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เตพ

เดฒเด•เตเดทเตเดฏเด‚: เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ = เดธเตเดŸเตเดฐเดฟเด‚เด—เต
เดฒเด•เตเดทเตเดฏเด‚: เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ:= เดธเตเดŸเตเดฐเดฟเด‚เด—เต
เดฒเด•เตเดทเตเดฏเด‚: เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ += เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•

เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฎเต‚เดฒเตเดฏเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฎเต‚เดฒเตเดฏเด‚ เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเต เดฎเดพเดคเตเดฐเด‚
เดคเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเด•เตเดทเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ. เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด•เดพเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฃเต เด‡เดคเต เดชเตเดฐเดพเดฅเดฎเดฟเด•เดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต
เดˆ:

CFLAGS := -O2

my_prog: file1.o file2.o special_file.o

special_file.o : CFLAGS := -g

%.o: %.c
$(CC) $(CFLAGS) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

เด‡เดตเดฟเดŸเต† เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดฒเตเดฒเดพ ".c" เดซเดฏเดฒเตเด•เดณเตเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚ ("-O2") เด’เดดเดฟเด•เต†
"special_file.c", เด‡เดคเต เดกเต€เดฌเด—เต เดฎเต‹เดกเดฟเตฝ เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต ("-g"). เด‡เดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดพเตผเด—เดฎเดพเดฃเต
เด•เตเดฑเดšเตเดšเต เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฎเดพเดคเตเดฐเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เด‚เดชเตˆเดฒเต‡เดทเตป เด“เดชเตเดทเดจเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•.

เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เตพ เดฑเต‚เดณเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเด‚ เดฌเดพเดงเด•เดฎเดพเดฃเต; เด…เดตเตผ
เด’เดฐเต เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเต†เดฏเต‹ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เดณเต†เดฏเต‹ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เด…เดต เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เด’เดฐเต เดญเดฐเดฃเด‚ เด†เดฃเต†เด™เตเด•เดฟเตฝ
เด’เดจเตเดจเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เด‰เดฃเตเดŸเต, เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เตพ เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต
เด†เดฆเตเดฏเด‚ เดฒเด•เตเดทเตเดฏเด‚. makepp-เดจเตเดฑเต† เดŸเดพเตผเด—เต†เดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด…เตฝเดชเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต†เดจเตเดจเดคเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
GNU make's-เตฝ เดจเดฟเดจเตเดจเต, เด…เดต เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต‡ เดฌเดพเดงเด•เดฎเดพเด•เต‚, เด…เดฒเตเดฒ
เด…เดคเดฟเดจเตเดฑเต† เดฎเตเตปเด—เดพเดฎเดฟเด•เดณเดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚.

เดตเตˆเตฝเดกเตเด•เดพเตผเดกเต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เดŸเดพเตผเด—เต†เดฑเตเดฑเดฟเดฒเดพเดฃเต เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดชเต‹เดฒเตŠเดจเตเดจเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

test_*.o : CFLAGS += -DTEST

เด—เตเดจเต เดจเดฟเตผเดฎเตเดฎเดพเดฃเดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต, "*" เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ "%" เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดตเดฟเดญเดพเด—เด‚
เดฎเต‡เด•เตเด•เดชเตเดชเดฟเดจเตเดฑเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดจเดฟเดฏเดฎเด™เตเด™เตพ เดฎเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เดณเตเดŸเต‡เดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เด•เตเดฑเดšเตเดšเต
เด•เต‚เดŸเตเดคเดฒเต เดถเด•เตเดคเด‚. เดŽเดฒเตเดฒเดพ เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เดณเดฟเดฒเต‡เดฏเตเด‚ เดชเต‹เดฒเต†, "$(CC)" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "${CC}" เดฐเดฃเตเดŸเตเด‚ เด‡เดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ CC. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เด•เตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดกเต‹เดณเตผ เดšเดฟเดนเตเดจเด‚ เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด‡เดฐเดŸเตเดŸ เดกเต‹เดณเตผ เดšเดฟเดนเตเดจเด‚ ($$) เด‡เดŸเตเด•
เดˆ:

เดฒเด•เตเดทเตเดฏเด‚: dep1 dep2 dep3 dep4
&rm -f $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)
$(เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ) เดŽเดจเตเดจเดคเดฟเดฒเต† เดซเดฏเดฒเดฟเดจเดพเดฏเดฟ; เดชเต‚เดšเตเดš $$ เดซเดฏเตฝ >> $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต); เดšเต†เดฏเตเดคเต

เด•เต‚เดŸเดพเดคเต† makepp-เดจเต เด’เดฐเต "$[VARIABLE]" เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเดฃเตเดŸเต, เด…เดคเต เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดจเตเดฑเต† เด…เดคเต‡ เด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
เดฐเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดฎเต‡เดชเตเดชเต เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด—เตเดฐเต‹เด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต. เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด‡เดคเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต
เด•เต‚เดŸเดพเดคเต†/เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเตเดฏเดตเดธเตเดฅเด•เตพ:

เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเต_เดฑเต‚เตพ = เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•
ifdef SOME_VAR
เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเต:
&เดŽเด•เตเด•เต‹ เด‡เดคเตŠเดฐเต เดจเดฟเดฏเดฎเดฎเดพเดฃเต -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)
endif
enddef

$[bracket_rule]

เด†เตผเดธเดฟ เดถเตˆเดฒเดฟ เดฌเดฆเตฝ

เดธเตเดตเดคเดตเต‡, makepp เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (เด‡เดคเต เดฎเตเตปเด•เตˆเดฏเต†เดŸเตเดคเตเดคเดคเต
เด†เตผเดธเดฟ เดทเต†เตฝ). เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‚เดŸเต† เด‡เดคเต เดจเดจเตเดจเดพเดฏเดฟ เดšเดฟเดคเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ = a b c d

mylib.a : module_dir/$(MODULES).o $(OTHER_OBJECTS)
$(CXX) $(เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚) -o $(เดฒเด•เตเดทเตเดฏเด‚)

"module_dir/" เดŽเดจเตเดจ เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเต MODULES-เดฒเต† เด“เดฐเต‹ เดชเดฆเดคเตเดคเดฟเดจเตเด‚ เดฎเตเตปเด•เต‚เดฑเดพเดฏเดฟ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† ".o" เดŽเดจเตเดจ เดชเตเดฐเดคเตเดฏเดฏเด‚
เด“เดฐเต‹ เดตเดพเด•เตเด•เดฟเดฒเตเด‚ เดšเต‡เตผเดคเตเดคเต.

เดชเดฆเด™เตเด™เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เดชเต‹เดฒเตเด‚ a-เดฏเดฟเตฝ เด‡เดŸเดพเดคเต† เดคเดจเตเดจเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต rc-style substitution เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ; เดตเดพเด•เตเดฏเด˜เดŸเดจ "$( word1 word2)" เด†เดฃเต. เดชเดฐเดพเดจเตเดคเต€เดธเดฟเดธเดฟเดจเตเด‚ เดฆเดฟเด•เตเด•เตเด‚ เด‡เดŸเดฏเดฟเดฒเตเดณเตเดณ เด‡เดŸเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
เด†เดฆเตเดฏ เดตเดพเด•เตเด•เต. เด…เดคเดฟเดจเดพเตฝ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เด™เตเด™เดจเต† เดŽเดดเตเดคเดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต:

mylib.a : module_dir/$(abcd).o $(OTHER_OBJECTS)
$(CXX) $(เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚) -o $(เดฒเด•เตเดทเตเดฏเด‚)

เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เด’เดจเตเดจเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดตเดพเด•เตเด•เตเด•เตพ เด‰เดณเตเดณเดชเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ rc-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดจเตฝเด•เต‚.
เด’เดฑเตเดฑเดตเดพเด•เตเด•เดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ เด…เดคเต เดชเดฐเดฎเตเดชเดฐเดพเด—เดคเดฎเดพเดฏเดฟ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†เดฏเดพเดฃเต. เด…เดฏเตเดฏเต‹, เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดถเต‚เดจเตเดฏเดฎเดพเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเต เด‰เดฃเตเดŸเต
เดธเด‚เด˜เตผเดทเด‚. เดชเดฐเดฎเตเดชเดฐเดพเด—เดคเดฎเดพเดฏเดคเต เด…เดคเดฟเดจเต† เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดธเตเดŸเตเดฐเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ
เด‡เดคเต เด’เดฐเต เดชเดŸเตเดŸเดฟเด•เดฏเดพเดฏเดฟ, "-I$(DIRLIST)" เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเด•เดฃเดฎเต†เดจเตเดจเดพเดฃเต เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด’เดฐเต เดเด•เดพเดจเตเดคเดฎเดพเดฏ "-I" เดจเตฝเด•เดฐเตเดคเต. เดฆเดฟ
"-I$( $(DIRLIST))" เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เดคเตเดŸเด™เตเด™เตเดจเตเดจ เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดคเดฟเดจเต† เดชเตŠเดคเดฟเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดชเดฐเดฟเดนเดพเดฐเด‚
เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดตเดพเด•เตเด•เตเด•เตพ เด‰เดณเตเดณเดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต† เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ.

เด’เดฐเต‡ เดตเดพเด•เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‡เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดชเดฆเด™เตเด™เดณเตเดŸเต† เดจเดฟเดฐเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเด•เดธเดฟเด•เตเด•เตเดจเตเดจเต, rc-style
เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด•เดพเตผเดŸเตเดŸเต€เดทเตเดฏเตป เด‰เตฝเดชเตเดชเดจเตเดจเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดชเต‹เดฒเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚
เดจเดฟเดจเด•เตเด•เต เดตเต‡เดฃเด‚:

DIRS = s1 s2
เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ = a b c
เดธเดซเดฟเด•เตเดธเตเด•เตพ = .o .c
เดซเดฏเดฒเตเด•เตพ := $(DIRS)/$(เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ)$(เดธเดซเดฟเด•เตเดธเตเด•เตพ)

เด•เต‚เดŸเดพเดคเต† FILES เดŽเดจเตเดจเดคเดฟเตฝ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚

s1/ao s1/ac s1/bo s1/bc s1/co s1/cc s2/ao s2/ac s2/bo s2/bc s2/co s2/cc

เดตเตˆเดฑเตเดฑเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเต เดชเตเดฑเดฎเต‡, เดเดคเต เด‰เดฆเตเดงเดฐเดฃเดฟเดฏเดฟเดฒเตเด‚, เดเดคเต เดฑเต—เดฃเตเดŸเดฟเดฒเตเด‚, เดšเตเดฐเตเดฃเตเดŸ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดคเตเดฐเดคเตเดคเดฟเดฒเตเด‚ เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตโ€Œเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต
เดชเดฐเดพเตปเดคเต€เดธเดฟเดธเตเด•เตพ, เด•เต‚เดŸเดพเดคเต† ", : ; = # @" เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚. เด‡เดคเต เด†เดถเตเดšเดฐเตเดฏเด•เดฐเดฎเดพเด•เดพเด‚, เดตเต€เดฃเตเดŸเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
เด’เดฐเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต. เดŽเดฒเตเดฒเดพ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเดฒเตเด‚ เดตเตˆเตฝเดกเตเด•เดพเตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เดคเดฟเดฐเดฏเดฃเดฎเต†เดจเตเดจเต เดชเดฑเดฏเตเด•
เด’เดฐเต เดตเดฒเดฟเดฏเด•เตเดทเดฐเดคเตเดคเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต:

เดฎเต‹เดถเด‚ := [A-Z]*/**/*.$( hpp h) # [A-Z]*/**/*.hpp */**/*.h
เดจเดฒเตเดฒเดคเต := $( [A-Z]*/**/*.)$( hpp h) # [A-Z]*/**/*.hpp [A-Z]*/**/*.h

เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเต€เดกเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเตเดฐเต†เดฏเดฟเดฒเดฟเด‚เด—เต เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ
เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเต‡เด•เตเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต† เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต, เดคเตเดŸเตผเดจเตเดจเต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตโ€Œเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เด“เดซเต เดšเต†เดฏเตเดฏเดพเด‚
"makepp_simple_concatenation=1" เดŽเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ. เด•เดฎเดพเตปเดกเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด†เด—เต‹เดณเดคเดฒเดคเตเดคเดฟเตฝ เด“เดซเต เดšเต†เดฏเตเดฏเดพเด‚
เดฒเตˆเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฏเดฟ. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต เด“เดฐเต‹ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเดจเตเด‚
เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเต†เดฏเตเด•เตเด•เต เดซเดฏเตฝ. เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดฎเต‡เด•เตเด•เตโ€Œเดซเตˆเดฒเดฟเดจเตเดฑเต† เดฎเตเด•เตพเดญเดพเด—เดคเตเดคเต เดšเต†เดฏเตเดฏเดฃเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพ เด“เดŸเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚
เดšเดฟเดฒ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฐเดธเด•เดฐเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเดฒเตเดฒ.
(เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเดฟเดจเต เดฎเตเดฎเตเดชเต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดฟเดฏ เดŽเดฒเตเดฒเดพ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเตเด‚ เด†เตผเดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เดŽเดฒเตเดฒเดพเด‚
เดถเต‡เดทเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดฟเดฏ เดชเดฆเดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ. เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเตเดŸเต† เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏ เดธเดฎเดฏเด‚ เดฎเตเดคเตฝ
makefiles เดธเด™เตเด•เต€เตผเดฃเตเดฃเดตเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดธเตโ€Œเดคเดพเดตเดจเด•เดณเตเดŸเต† เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ
makefile, "makepp_simple_concatenation" เดŽเดคเตเดฐเดฏเตเด‚ เดตเต‡เด—เด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต.) เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเด‚
เด’เดฐเต เดฒเด•เตเดทเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดคเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด• เดชเต‹เดฒเตเด‚:

เดฒเด•เตเดทเตเดฏเด‚: makepp_simple_concatenation = 1
เดฒเด•เตเดทเตเดฏเด‚:
&echo before_first$(LIST)after_last -o $(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)

เด•เดพเดฐเดฃเด‚ "$[VARIABLE]" เดŽเดจเตเดจเดคเต "$(VARIABLE)" เดŽเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดจเต‡เดฐเดคเตเดคเต† เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, rc- เตฝ เด‡เดต เดฐเดฃเตเดŸเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเต
เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดซเดฒเด‚ เดจเตฝเด•เดฟเดฒเตเดฒ, เดจเดฟเด™เตเด™เตพ เด…เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดชเตŠเดคเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ
เดชเดŸเตเดŸเดฟเด•:

เดŽ = เดŽ เดฌเดฟ
N = 1 2
เดฎเต‹เดถเด‚ := $(A)$[N]
เดจเดฒเตเดฒเดคเต := $(A)$( $[N])

เด…เดตเดธเดพเดจ เดตเดฐเดฟเด•เตพ เด‡เด™เตเด™เดจเต† เดตเดพเดฏเดฟเด•เตเด•เดพเด‚

เดฎเต‹เดถเด‚ := $(A)1 2 # a1 b1 2
เดจเดฒเตเดฒเดคเต := $(A)$( 1 2) # a1 a2 b1 b2

เด‰เดชเดตเดฟเดญเดพเด—เด‚ เด…เดตเดฒเด‚เดฌเด‚

เด’เดฐเต เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดฑเดซเดฑเดจเตเดธเดฟเดจเต "$(VAR:A=B)" เดŽเดจเตเดจ เดซเต‹เด‚ เด‰เดฃเตเดŸเต, เด‡เดตเดฟเดŸเต† A เดŽเดจเตเดจเดคเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดชเดพเดฑเตเดฑเต‡เดฃเตเด‚ B เด†เดฃเต
เด…เดคเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด’เดฐเต เดชเดพเดฑเตเดฑเต‡เตบ. เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป เดฑเดซเดฑเตปเดธเตเด•เตพ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดšเตเดฐเตเด•เตเด•เต†เดดเตเดคเตเดคเดพเดฃเต
"patsubst" เดซเด‚เด—เตเดทเตป. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

source_files = ac bc cc dc
object_files = $(source_files:%.c=%.o)

"$(object_files)" เดŽเดจเตเดจเดคเต "a.o b.o c.o d.o" เด†เดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚. "%" เดŽเดจเตเดจเดคเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดคเต€เด• เดชเตŠเดฐเตเดคเตเดคเดฎเดพเดฃเต
เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดธเตเดŸเตเดฐเดฟเด‚เด—เต. A, B เดŽเดจเตเดจเดฟเดต "%" เดŽเดจเตเดจเดคเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด•เต‡เดธเต
เดชเตเดฐเดคเตเดฏเดฏเด™เตเด™เตพ, เด…เดต เด’เดดเดฟเดตเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต:

object_files = $(source_files:.c=.o)
object_files = $(source_files:c=o) # เด…เดคเต‡, เด•เดพเดฐเดฃเด‚ . เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเดฒเตเดฒ

เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต in เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ (เดจเดฟเดฒเดตเดฟเตฝ) rc-style เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฃเด‚
เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเตป ("makepp_simple_concatenation=1" เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†) เดคเตเดŸเตผเดจเตเดจเต เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•:

เดถเต‚เดจเตเดฏเด‚ =
T = -o $(เดถเต‚เดจเตเดฏเด‚)

เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดฒเดฟเดจเตŠเดชเตเดชเด‚:

T = -o $()

เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, "T" เดŽเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ "-o" เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต‡เดธเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดค เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ
เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเดพเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเต‡เด•เตเด•เตโ€Œเดซเดฏเดฒเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด—เต—เดฐเดตเดฎเดพเดฏเดฟ เดšเดฟเดจเตเดคเดฟเด•เตเด•เดฃเด‚.
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเต‡เตพ เด•เต‹เดกเต เด‡เดŸเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต
makefile เด…เดคเต เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เดพเตป ("perl_begin" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "sub" เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต), เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด•
เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ เดทเต†เตฝ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเดฟเตฝ.

เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด’เดฐเต‡ เดจเดฟเดฏเดฎเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เดณเตเด•เตพ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดˆ เด•เต‡เดธเตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต
เดธเดพเดงเดพเดฐเดฃ Unix เด•เดฎเดพเตปเดกเต เดธเดฟเดจเตเดฑเดพเด•เตเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด•เตพ. เด‰เดฆเดพ., เดšเดฟเดฒเดชเตเดชเต‹เตพ เด’เดฐเดพเตพ เด•เดพเดฃเตเด‚
เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เดณเดฟเตฝ เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด•เดพเดฐเตเดฏเด™เตเด™เตพ:

ifeq ($(ARCH),weirdarch)
O := /OUTPUT=
เดฎเดฑเตเดฑเดพเดฐเต†เด™เตเด•เดฟเดฒเตเด‚
null :=
O := -o $(เดถเต‚เดจเตเดฏเด‚)
endif

%.o : %.c
$(เด•เด‚เดชเตˆเดฒเตผ) $(เด‡เตปเดชเตเดŸเตเดŸเต) $(O)$(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดถเดฐเดฟเด•เตเด•เตเด‚ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ เดฎเต‡เด•เตเด•เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เด’เดฐเตเดชเด•เตเดทเต‡ เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด•เตเดฑเดตเดพเดฃเต†เด™เตเด•เดฟเตฝ makefiles เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚
เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เตฝ, เด‰เดฆเดพ.

ifeq ($(ARCH),weirdarch)
%.o : %.c
$(WEIRD_COMPILER) $(เด‡เตปเดชเตเดŸเตเดŸเต) /OUTPUT=$(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)
เดฎเดฑเตเดฑเดพเดฐเต†เด™เตเด•เดฟเดฒเตเด‚
%.o : %.c
$(CC) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)
endif

เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดพเดฎเด™เตเด™เดณเดฟเตฝ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดฒเตเดฒ, เด…เดตเดฏเตเดŸเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเตฝ เดฎเดพเดคเตเดฐเด‚. เด‡เดคเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต
เดšเดฟเดฒเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเตเด•เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเต.

เด“เดŸเตเดŸเต‡เดพเดฎเดพเดฑเตเดฑเดฟเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ
เดเดคเต เดฑเต‚เดณเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดพเดฃเต เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ
เด…เดต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเดฟเดฒเต† เดฎเดฟเด•เตเด• เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเต†เดฏเตเด‚ Makepp เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต
เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เดชเดคเดฟเดชเตเดชเตเด•เตพ. เด•เต‚เดŸเดพเดคเต†, เด…เดตเดฏเดฟเตฝ เดฎเดฟเด•เตเด•เดคเดฟเดจเตเด‚ เด‡เดคเดฟเดจเต เด•เตเดฑเดšเตเดšเต เดจเดฟเด—เต‚เดขเดฎเดพเดฏ, เดจเต€เดณเดฎเตเดณเตเดณ เดชเต‡เดฐเตเด•เดณเตเดฃเตเดŸเต
เดชเด•เดฐเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. (เดˆ เดชเต‡เดฐเตเด•เตพ เดชเตเดจเตผ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเตป เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดฒเต†เด—เดธเดฟ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเดฟ,
makefile-เดฒเต† เดจเดฟเตผเดตเดšเดจเด‚ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด…เตผเดคเตเดฅเดคเตเดคเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดชเดฑเดžเตเดžเดพเตฝ
เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเตฝ "เดŸเดพเตผเด—เต†เดฑเตเดฑเต = เดŽเดฌเดฟเดธเดฟ", เดคเตเดŸเตผเดจเตเดจเต "$(เดŸเดพเตผเด—เต†เดฑเตเดฑเต)" เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ "เดŽเดฌเดฟเดธเดฟ" เดฒเต‡เด•เตเด•เต เดตเดฟเด•เดธเดฟเด•เตเด•เตเด‚, เด‡เดฒเตเดฒ
เด‡เดจเดฟ $@ เดŽเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.)

makepp เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดพเดฃเต:

เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต
เดฒเด•เตเดทเตเดฏเด‚
$@ เดจเดฟเดฒเดตเดฟเดฒเต† เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดฒเด•เตเดทเตเดฏเด‚. เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, makepp เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ
เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดจเดฟเดฏเดฎเด‚, เด‡เดคเดพเดฃเต เด†เดฆเตเดฏเด‚ เดฒเด•เตเดทเตเดฏเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเดฏเดฎเดคเตเดคเดฟเตฝ

y.tab.c y.tab.h : parser.y
$(YACC) -o $(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต) $(YFLAGS) $(เด‡เตปเดชเตเดŸเตเดŸเต)

"$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)" เดŽเดจเตเดจเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ y.tab.c. เดˆ เดฎเดพเดจเตเดคเตเดฐเดฟเด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ
เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเต‚เดšเดฟเด• เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต 1 เดฎเตเดคเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเต เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต
-1 เดฎเตเดคเตฝ. เด…เดคเดฟเดจเดพเตฝ "$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต 2)" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต -1)" เดŽเดจเตเดจเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ y.tab.h.

เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดจเตเดจเต เดฐเต‚เดชเด™เตเด™เตพเด•เตเด•เตเด‚ เด’เดฐเต‡ เดฎเต‚เดฒเตเดฏเดฎเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เด…เดคเดฟเตฝ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดฃเตเดŸเต
เดฎเตพเดŸเตเดŸเดฟเดŸเดพเตผเด—เต†เดฑเตเดฑเต เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚. เดจเดฟเด™เตเด™เตพ เดชเดดเดฏ เดฐเต€เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดจเดฟเด—เต‚เดข เดจเดพเดฎเด‚ $@ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ,
makepp เด’เดฐเต เด†เดงเตเดจเดฟเด• เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚ เดชเดดเดฏ เดฐเต€เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดฑเต‚เตพ เดธเต†เดฑเตเดฑเต เด†เดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เตเด‚
เด† เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเต†เดฒเตเดฒเดพเด‚ เด’เดฑเตเดฑเดฏเดŸเดฟเด•เตเด•เต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต:

a b: # เดถเดฐเดฟเด•เตเด•เตเด‚: a, b เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เด“เดฐเต‹ เดจเดฟเดฏเดฎเด‚
$@ เดธเตโ€Œเดชเตผเดถเดฟเด•เตเด•เตเด•

c d: # เดชเดฟเดถเด•เต: เด‡เดคเต d เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต mpp เดชเดฐเดพเดคเดฟเดชเตเดชเต†เดŸเตเดจเตเดจเต
$(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต) เดธเตโ€Œเดชเตผเดถเดฟเด•เตเด•เตเด•

เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต
เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ
เดจเดฟเดฒเดตเดฟเดฒเต† เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเตเด‚. เด’เดจเตเดจเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "$(เดฒเด•เตเดทเตเดฏเด‚)" เดชเต‹เดฒเต† เดคเดจเตเดจเต†
เดฒเด•เตเดทเตเดฏเด‚. เดฎเตเด•เดณเดฟเดฒเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, "$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ)" เดŽเดจเตเดจเดคเต y.tab.c y.tab.h เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเต เด•เดŸเดจเตเดจเตเดชเต‹เด•เดพเด‚
เดธเต‚เดšเดฟเด• เดฒเดฟเดธเตเดฑเตเดฑเต, เด…เดคเดฟเดจเดพเตฝ "$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ 2 1)" เดŽเดจเตเดจเดคเต y.tab.h y.tab.c เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚
เด‡เตปเดชเตเดŸเตเดŸเต
$< เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดˆ เดจเดฟเดฏเดฎเดคเตเดคเดฟเตฝ

%.o : %.c
$(CC) $(CFLAGS) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

"$(เด‡เตปเดชเตเดŸเตเดŸเต)" เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ .c เดซเดฏเตฝ, เดŽเดจเตเดคเตเดคเดจเตเดจเต†เดฏเดพเดฏเดพเดฒเตเด‚ .h เดซเดฏเดฒเตเด•เตพ makepp
เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดชเดพเดธเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เดจเต‡เดŸเดพเดจเดพเด•เตเด‚
เดธเต‚เดšเดฟเด•: "$(เด‡เตปเดชเตเดŸเตเดŸเต $(INDEX))" เดŽเดจเตเดจเดคเต INDEX-เดพเดฎเดคเตเดคเต† เด†เดถเตเดฐเดฟเดคเดคเตเดตเดฎเดพเดฃเต.

เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ
เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ
$^ เดŸเดพเตผเด—เต†เดฑเตเดฑเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เดณเตเด‚, เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ .h เดซเดฏเดฒเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต
เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต makepp_scanning.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดฏเดฎเดคเตเดคเดฟเตฝ

myprog.o : *.o
$(CC) $(CFLAGS) $(เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต† เดŽเดฒเตเดฒเดพ .o เดซเดฏเดฒเตเด•เดณเตเด‚ "$(เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ)" เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เดฎเดพเดคเตเดฐเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเด‚
เด’เดฐเต เดธเต‚เดšเดฟเด• เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดพเดธเดพเด•เตเด•เดฟ เดตเต‡เดฃเด‚. เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดซเดฏเดฒเตเด•เตพ เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ,
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต "$(เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ 2 3 4)" เดŽเดจเตเดจเดคเดฟเดฒเต† เดชเต‹เดฒเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเด‚ (เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดตเตˆเตฝเดกเตเด•เดพเตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเตเด‚ เด…เด™เตเด™เดจเต†เดฏเดฒเตเดฒ.
เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต).

เด…เดŸเตเด•เตเด•เดฟเดฏ_เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เตพ
เด…เดŸเตเด•เตเด•เดฟเดฏ_เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ
$+ เดŸเดพเตผเด—เต†เดฑเตเดฑเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚, เด…เดŸเตเด•เตเด•เดฟเดฏ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ, เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเตเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเต.
"$(sort $(inputs))" เดŽเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต.

เดฎเดพเดฑเดฟเดฏ_เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚
เดฎเดพเดฑเตเดฑเดฟเดฏ_เด‡เตปเดชเตเดŸเตเดŸเตเด•เตพ
$? เดฎเดพเดฑเดฟเดฏ เดฒเด•เตเดทเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เตพ. เด‡เดคเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดคเต เดฎเดพเดคเตเดฐเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต
เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ (เด…เดคเดพเดฏเดคเต, เดจเดฟเด™เตเด™เตพ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดต), เดชเดฐเต‹เด•เตเดทเดฎเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ
เดธเตเด•เดพเดจเดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เตพ (.h เดซเดฏเดฒเตเด•เตพ เดชเต‹เดฒเตเดณเตเดณเดต).

เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด•เดฎเดพเตปเดกเตเด•เดณเดฟเตฝ เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต:

libmine.a : $(MODULES) : build_checkignign_action
$(AR) ru $@ $?

เด…เดคเดพเดฏเดคเต, ar เดฎเดพเดฑเดฟเดฏ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเตป เดชเดฑเดฏเตเดจเตเดจเต. (เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
"ignore_action" เดฌเดฟเตฝเดกเต เดšเต†เด•เตเด•เต เดฑเต‚เตพ. เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, makepp เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เตเด‚
เด…เดคเต เดฎเดพเดฑเตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸ เดจเดŸเดชเดŸเดฟ. เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เดฎเดพเดฑเดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ,
เด†เด•เตเดทเตป เดธเตเดŸเตเดฐเดฟเด‚เด—เต "ar ru libmine.a" เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด…เดคเต เด…เดคเต เด†เดฏเดฟเดฐเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚
เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเดชเตเดชเต‹เตพ, "ignore_action" เด‡เดฒเตเดฒเดพเดคเต† makepp เด…เดคเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด‚. เด‡เดคเดฟเตฝ
เด•เต‡เดธเต, เด‡เดคเต เดจเดฟเดฐเตเดชเดฆเตเดฐเดตเด•เดฐเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เด•เดฎเดพเตปเดกเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚, เด‡เดคเต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดพเด•เดพเด‚. เด•เดพเดฃเตเด•
"ignore_action" เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ makepp_build_check.)

เด‡เดคเตเดคเดฐเดคเตเดคเดฟเตฝ เด†เตผเด•เตเด•เตˆเดตเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฒเตเดฒ เด†เดถเดฏเดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเดฟเตฝเดกเตเด•เตพ เด•เตเดฑเดฏเตเด•เตเด•เตเด‚
เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ. เดจเดฟเด™เตเด™เตพ เด†เตผเด•เตเด•เตˆเดตเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดฒเตŠเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดถเตเดจเด‚
เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ, เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เด†เตผเด•เตเด•เตˆเดตเดฟเตฝ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚
makepp

เดถเดฌเตเดฆเด‚
$* เด’เดฐเต เดชเดพเดฑเตเดฑเต‡เตบ เดจเดฟเดฏเดฎเดคเตเดคเดฟเดฒเต† เดคเดฃเตเดŸเต (เด…เดคเดพเดฏเดคเต, '%' เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดคเต†เดจเตเดคเตเด‚). เดชเด•เดฐเดฎเดพเดฏเดฟ, เด‡เดคเดพเดฃเต†เด™เตเด•เดฟเตฝ
เด’เดฐเต เดชเดพเดฑเตเดฑเต‡เตบ เดจเดฟเดฏเดฎเดฎเดฒเตเดฒ, เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดฎเดฟเดฒเตเดฒเดพเดคเต† เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดจเตฝเด•เตเดจเตเดจเต (เด…เดคเดพเดฏเดคเต, เด…เดคเต
"$(เด…เดŸเดฟเดธเตเดฅเดพเดจ เดจเดพเดฎเด‚ $(เด‡เตปเดชเตเดŸเตเดŸเต))" เดŽเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต.

เด‡เดคเต เด•เต‚เดŸเตเดคเดฒเตเด‚ เดชเดฟเดจเตเดจเต‹เด•เตเด• เด…เดจเตเดฏเต‹เดœเตเดฏเดคเดฏเตเด•เตเด•เดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ
เดเดคเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดชเดฑเดฏเดพเดจเตเดณเตเดณ เด’เดฐเต‡เดฏเตŠเดฐเต เดฎเดพเตผเด—เตเด—เด‚ .c เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดซเดฏเตฝ เดšเต†เดฏเตเดฏเตเด• .o เดซเดฏเตฝ เดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต
เดˆ:

.co:
$(CC) $(CFLAGS) -c $*.c -o $*.o

เดฑเต‚เตพ เดŽเดดเตเดคเดพเดจเตเดณเตเดณ เด’เดฐเต เดฎเต‹เดถเด‚ เดฎเดพเตผเด—เดฎเดพเดฃเดฟเดคเต. เด—เตเดจเต เดจเดฟเตผเดฎเตเดฎเดฟเดค เดถเตˆเดฒเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต
เดชเดพเดฑเตเดฑเต‡เตบ เดจเดฟเดฏเดฎเด™เตเด™เตพ, เด‡เดคเตเดชเต‹เดฒเต†:

%.o : %.c
$(CC) $(CFLAGS) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

foreach
"เดซเต‹เดฑเดšเตเดšเต" เด•เตเดฒเต‹เดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเดฟเดฒเดตเดฟเดฒเต† เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต. "foreach" เด‰เดชเดตเดพเด•เตเดฏเด™เตเด™เตพ เดตเดณเดฐเต† เด…เดชเต‚เตผเดตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดณเตเดณเต‚,
เดชเด•เตเดทเต‡, makepp เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เดชเดพเดฑเตเดฑเต‡เตบ เดฑเต‚เดณเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตŠเดคเตเดตเดพเดฏ เด‰เดฆเตเดฆเต‡เดถเตเดฏเด™เตเด™เดณเดพเดฃเดฟเดต. เดตเต‡เดฃเตเดŸเดฟ
เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,

#
# เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเต€เดชเตเดฐเตŠเดธเดธเตเดธเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต .c เดซเดฏเดฒเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•:
#
%.c : %.k
$(เดชเตเดฐเดฟเดชเตเดฐเตŠเดธเดธเตเดธเตผ) $(เด‡เตปเดชเตเดŸเตเดŸเต) > $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

#
# .c เดซเดฏเดฒเตเด•เตพ .o เดซเดฏเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเด•:
#
%.o : %.c
$(CC) $(CFLAGS) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

#
# เด‰เดฐเตเดคเตเดคเดฟเดฐเดฟเดžเตเดž .c เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดชเตเดฐเดคเตเดฏเต‡เด• เด‡เดคเดฐ เด•เด‚เดชเตˆเดฒเต‡เดทเตป เดซเตเดฒเดพเด—เตเด•เตพ
.k เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต #:
#
$(foreach:%.k=%.o) : $(foreach:%.k=%.c) : foreach *.k
$(CC) $(SPECIAL_K_FLAGS) -c $(เด‡เตปเดชเตเดŸเตเดŸเต) -o $(เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต)

เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพเด•เตเด•เตเด‚ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพเด•เตเด•เตเด‚ เดจเดฟเดฏเดฎเด™เตเด™เดณเดฟเดฒเต† เดซเต‹เตผเดšเตเดšเต เด•เตเดฒเต‹เดธเดฟเดฒเต† เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด•เดพเดฃเตเด•.

$/ เด‡เดคเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เด’เดฐเต เดธเตเดฅเดฟเดฐเดพเด™เตเด•เดฎเดพเดฃเต, เด’เดจเตเดจเตเด•เดฟเตฝ "/", เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเต‡เดฑเตเดฑเต€เดตเต เดตเดฟเตปเดกเต‹เดธเต "\". เดจเดฟเด™เตเด™เตพเด•เตเด•เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดŽเด™เตเด•เดฟเตฝ
เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเต‹เตผเดŸเตเดŸเดฌเดฟเตพ เด†เดฏเดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพ. เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด’เดจเตเดจเต:

myoutput:
.$/myprog >$(เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต)

เดซเดฏเตฝเดจเดพเดฎเด™เตเด™เตพ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดพเดฏเดฟ เดชเดพเดธเตเดธเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเต, เดตเดฟเตปเดกเต‹เดธเดฟเดจเต Unix เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ เด…เดคเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ
เด…เดตเดฟเดŸเต† เดตเดพเด•เตเดฏเด˜เดŸเดจ.

เด“เดชเตเดทเตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ
เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดตเดดเดฟเด•เดณเดฟเดฒเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ (เดฎเดฑเตเดฑเตŠเดฐเต เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ เด’เดดเดฟเด•เต†).
เดฎเต‡เด•เตเด•เดชเตเดชเดฟเดจเตเดฑเต† เดธเตเดตเดญเดพเดตเด‚. เดธเตเดตเดคเดตเต‡, เด…เดตเดฏเต†เดฒเตเดฒเดพเด‚ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.

MAKEPP_DEBUG
makepp-เดฒเต‡เด•เตเด•เต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅ เดฎเต‚เดฒเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดฒเดญเดฟเด•เตเด•เตเด‚
เดตเดฟเดตเดฐเด‚. เด‡เดคเต เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เด‰เดณเตเดณเดชเตเดชเต‹เตพ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดซเดฏเดฒเตเด•เดณเตเดŸเต† "RULE_SOURCE" เด†เดฃเต
makeppinfo, mppi เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดŽเด•เตเดธเตเดชเดพเตปเดทเดจเตเด‚ เดฑเต‚เตพ เดฎเดพเดšเตเดšเดฟเด‚เด—เตเด‚ เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดš เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ
makeplog, mppl. เดฎเต‡เด•เตเด•เดชเตเดชเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดคเต€เตผเดจเตเดจเตเดชเต‹เดฏเดพเดฒเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดนเดพเด‚เด—เต เด†เดตเตเดฎเต‹ เดŽเดจเตเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด•เดพเดฃเดฟเด•เตเด•เตเด‚,
เด•เดพเดฐเดฃเด‚ เด‡เดคเต เด’เดฐเต‡ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเต† เด…เดจเดจเตเดคเดฎเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต:

A = $A # เดฎเดพเดฑเตเดฑเดฟเดตเต†เดšเตเดš เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚, เด†เดตเดถเตเดฏเด‚ :=
B = $C
C = $B

MAKEPP_LN_CP
&ln เดŽเดจเตเดจเดคเดฟเดจเต เดคเดพเดดเต†เดฏเตเดณเตเดณ เด•เตเดฑเดฟเดชเตเดชเต เด•เดพเดฃเตเด•.

makepp_percent_subdirs
เดŸเดพเตผเด—เต†เดฑเตเดฑเตเด•เดณเดฟเดฒเต‹ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเดฟเดฒเต‹ "%" เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเตป เด‡เดคเต เดšเดฟเดฒ เดฏเดฅเดพเตผเดคเตเดฅ เดฎเต‚เดฒเตเดฏเดฎเดพเดฏเดฟ (1 เดชเต‹เดฒเต†) เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•
เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚.

makepp_require_phony
เดชเดฐเต‹เด•เตเดทเดฎเดพเดฏ เดตเตเดฏเดพเดœเด‚ เดคเดŸเดฏเดพเตป (เด…เดคเดพเดฏเดคเต เด’เดฐเต เดจเดฟเดฏเดฎเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ) เด‡เดคเต เดšเดฟเดฒ เดฏเดฅเดพเตผเดคเตเดฅ เดฎเต‚เดฒเตเดฏเดฎเดพเดฏเดฟ (1 เดชเต‹เดฒเต†) เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•
เด…เดคเดฟเดจเตเดฑเต† เดฒเด•เตเดทเตเดฏเด‚ เด‰เตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เดพเดคเต† เดตเดฟเดœเดฏเดฟเด•เตเด•เตเดจเตเดจเต). เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดถเดฐเดฟเดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, to
เดคเด•เตผเดจเตเดจ เด†เดถเตเดฐเดฟเดคเดคเตเดต เดถเตƒเด‚เด–เดฒเด•เดณเต† เดคเดŸเดฏเตเด•, เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเต เด…เดจเตเดฏเต‹เดœเตเดฏเดค เดคเด•เตผเด•เตเด•เตเด‚
sloppy makefiles.

makepp_signature_C_flat
เด‡เดคเต เดธเดฟ เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด’เดฐเต เด“เดชเตเดทเดจเดพเดฃเต. เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เดšเดฟเดฒ เดฏเดฅเดพเตผเดคเตเดฅ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต (1 เดชเต‹เดฒเต†) เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•
เดชเดฐเดจเตเดจ เดธเตเดฐเต‹เดคเดธเตเดธเตเด•เตพ, เด…เดคเดพเดฏเดคเต เดŽเดฒเตเดฒเดพ เดจเตเดฏเต‚เดฒเตˆเดจเตเด•เดณเตเด‚ (เดชเตเดฐเต€เดชเตเดฐเตŠเดธเดธเตเดธเตผ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ เด’เดดเดฟเด•เต†)
เดตเตˆเดฑเตเดฑเตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดชเต‹เดฒเต† เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ "#เดฒเตˆเตป" เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

makepp_simple_concatenation
"rc-style substitution" เดคเดŸเดฏเดพเตป เด‡เดคเต เดšเดฟเดฒ เดฏเดฅเดพเตผเดคเตเดฅ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต (1 เดชเต‹เดฒเต†) เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•.

เดชเต‡เตพ
เดฎเต‡เด•เตเด•เดชเตเดชเดฟเดฒเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เตƒเดคเตเดฏเดฎเดพเดฏ perl-เดฒเต‡เด•เตเด•เต เด‡เดคเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเด‚
เดธเตเดฏเต‚เดŸเตเดŸเต, เด…เดคเต เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเตเด•. เด’เดฐเต‡ perl เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฌเต-เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด‡เดคเต เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚. เด‡เดคเดพเดฃเต
เดŸเต†เดธเตเดฑเตเดฑเต เดธเตเดฏเต‚เดŸเตเดŸเต, เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป, เดฑเดฟเด•เตเด•เตผเดธเต€เดตเต เดฌเดฟเตฝเดกเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เด•เต‚เดŸเตเดคเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต.

VPATH
เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† เด•เตเดฑเดšเตเดšเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต "vpath % เดฎเต‚เดฒเตเดฏเด‚" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต.

เดฎเตเตปโ€Œเดจเดฟเดถเตเดšเดฏเดฟเดšเตเดšเดคเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด•เตเดฑเดšเตเดšเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ Makepp เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต:

AR เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "ar".

เด†เตผเดซเตเดฒเดพเด—เตเด•เตพ
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "rv".

AS เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "เด†เดฏเดฟ".

CC เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "gcc", "egcc", "pgcc", "c89" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "cc" เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเดฟเตปเดกเต‹เดธเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต
เด•เต‚เดŸเดพเดคเต† "cl" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "bcc32".

CFLAGS
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "$(CC)" เด’เดฐเต เด—เตเดจเต เด•เดฎเตเดชเตˆเดฒเตผ "-g -Wall" เด†เดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดฐเดฃเตเดŸเต เดตเดฟเตปเดกเต‹เด•เดณเดฟเตฝ เด’เดจเตเดจเดพเดฃเต†เด™เตเด•เดฟเตฝ
เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพ เด’เดจเตเดจเตเด‚ เด‡เดฒเตเดฒ, "-g".

CURDIR
เดจเดฟเดฒเดตเดฟเดฒเต† Makefile เดคเดพเดฎเดธเดฟเด•เตเด•เตเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ.

CXX เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "g++", "c++", "pg++", "cxx", "C""C" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "aCC", เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด“เตบ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต
เดตเดฟเตปเดกเต‹เดธเต เด…เดงเดฟเด•เดฎเดพเดฏเดฟ "cl" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "bcc32".

CXXFLAGS
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "$(CXX)" เด’เดฐเต เด—เตเดจเต เด•เดฎเตเดชเตˆเดฒเตผ "-g -Wall" เด†เดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดฐเดฃเตเดŸเต เดตเดฟเตปเดกเต‹เด•เดณเดฟเตฝ เด’เดจเตเดจเดพเดฃเต†เด™เตเด•เดฟเตฝ
เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพ เด’เดจเตเดจเตเด‚ เด‡เดฒเตเดฒ, "-g".

F77 เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "f77", "g77" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "fort77" เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ.

FC เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "$(F77)".

LD เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "ld".

EX เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "เดฒเต†เด•เตเดธเต" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เดซเตเดฒเต†เด•เตเดธเต" เดŽเดจเตเดจเดคเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต.

LIBTOOL
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "เดฒเดฟเดฌเตเดŸเต‚เตพ".

เดตเดฐเตเดคเตเดคเดฟเดฏเต‡เด•เตเด•เดพเดตเตเดจเตเดจ
เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเดฎเต‹ เด‡เดฒเตเดฒเดฏเต‹ เดŽเดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต เดฐเดฃเตเดŸเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต
"--เดชเดฐเดฎเตเดชเดฐเดพเด—เดค-เด†เดตเตผเดคเตเดคเดจ-เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚". เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ Makepp เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเต
เด†เดตเตผเดคเตเดคเดจเด‚ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเตเดคเดจเตเดจเต† เดšเดฟเดฒ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด“เดซเดพเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด†เด•เดพเด‚
เดจเดฟเด™เตเด™เตพ เด…เดคเต เด•เตเดฐเดฎเต‡เดฃ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดญเดฟเด•เดพเดฎเตเดฏเดฎเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เด†เดฆเตเดฏเด‚ เด•เต‹เดณเตเด•เตพ a เด†เดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเด•
makepp เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ "$((เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•))", เด…เดคเต เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด“เดซเดพเด•เตเด•เดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพ เด…เดคเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เดชเดพเดŸเดฟเดฒเตเดฒ
เด•เดพเดฐเดฃเด‚ เด…เดคเต เดžเด™เตเด™เดณเตเดŸเต† เดฎเดฟเด•เดšเตเดš เด†เดตเตผเดคเตเดคเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เดคเด•เตผเด•เตเด•เตเดจเตเดจเต.

MAKECMD เด—เต‹เดณเตเด•เตพ
เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ makepp เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚
เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดฒเด•เตเดทเตเดฏเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดšเต.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดธเตเดชเดทเตเดŸเดฎเดพเดฏ เดŸเดพเตผเด—เต†เดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดคเตเด‚ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เด†เดตเตผเดคเตเดคเดจ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚) เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.
เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดชเดฐเต‹เด•เตเดทเดฎเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดถเต‚เดจเตเดฏเดฎเดพเดฃเต.

ifneq $(เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเด•เตเดทเตเดฏเด‚ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเด•, $(MAKECMDGOALS))
# เดธเตเดชเต†เดทเตเดฏเตฝ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดŽเดจเตเดจเดคเต เดจเดฟเดฒเดตเดฟเดฒเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเดพเดฃเต
เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ifeq $(MAKECMDGOALS)
# เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฒเด•เตเดทเตเดฏเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ
endif

เดฎเต‡เด•เตเด•เตเดซเตเดฒเดพเด—เตเด•เตพ (เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ เดšเต†เดฏเตเดคเดคเต)
เดฎเต‡เด•เตเด•เดชเตเดชเต เดตเดฟเดณเดฟเดšเตเดš เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด“เดชเตเดทเดจเตเด•เตพ. เด’เดฑเตเดฑ เด…เด•เตเดทเดฐเดฎเตเดณเตเดณเดต
เดซเต‹เด‚ เด’เดฐเต เดฎเตเตปเดจเดฟเดฐ "-" เด‡เดฒเตเดฒเดพเดคเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (gmake เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเต เดธเตเดตเตผเด—เตเด—เดคเตเดคเดฟเดจเต เด…เดฑเดฟเดฏเดพเด‚
"-" เดกเตเดฐเต‹เดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป).

MAKEINFO
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚".

MAKEPPFLAGS (เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ เดšเต†เดฏเตเดคเดคเต)
เด‡เดคเต MAKEFLAGS-เดจเตเดฑเต† เด…เดคเต‡ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚
makepp เดจเตเดฑเต† เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ.

_MAKEPPFLAGS (เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ เดšเต†เดฏเตเดคเดคเต)
POSIX/gmake เด…เดจเตเดฏเต‹เดœเตเดฏเดคเดฏเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ makepp เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด“เดชเตเดทเดจเตเด•เตพ, เดเดคเต makepp
เดตเดฟเดณเดฟเดชเตเดชเดฟเดšเตเดšเต. เด‡เดต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเดพเดฏเดคเดฟเดจเดพเตฝ เด’เดฐเต เดฒเต†เด—เดธเดฟ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเดฟเดจเต เดคเด•เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ
MAKEFLAGS เด…เตบเดธเต†เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด…เดจเตเดฏเต‹เดœเตเดฏเดค. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดคเตเดฐเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
"--เดชเดฐเดฎเตเดชเดฐเดพเด—เดค-เด†เดตเตผเดคเตเดคเดจ-เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚".

MAKEPP_VERSION
เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดฎเต‡เด•เตเด•เดชเตเดชเดฟเดจเตเดฑเต† เดชเดคเดฟเดชเตเดชเต. เด‡เดคเต เด’เดฐเต เดฌเต€เดฑเตเดฑเดพ เดชเดคเดฟเดชเตเดชเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเตฝ เด’เดฐเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚
เดนเตˆเดซเตป, เดคเตเดŸเตผเดจเตเดจเต YYMMDD เด•เต‚เดŸเดพเดคเต† เด•เตเดฑเดšเตเดšเต เด†เดจเตเดคเดฐเดฟเด• เดกเดพเดฑเตเดฑเดฏเตเด‚. "ifdef" เดŽเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚
เดฎเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต makepp เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เตพ เดฎเดฑเดฏเตเด•เตเด•เดพเตป.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "makepp --version" เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด…เดคเต‡ เดฎเต‚เดฒเตเดฏเด‚

PWD "CURDIR" เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดชเดฐเดจเดพเดฎเด‚.

RM เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "rm -f". เด‡เดคเต เดฒเต†เด—เดธเดฟ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพเด•เตเด•เตเดณเตเดณเดคเดพเดฃเต. เดชเตเดคเดฟเดฏเดตเดฏเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดญเดฟเด•เดพเดฎเตเดฏเดฎเดพเดฃเต
เดฌเดฟเตฝเดŸเตเดŸเดฟเตป & rm เด•เดฎเดพเตปเดกเต เดจเต‡เดฐเดฟเดŸเตเดŸเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเตเดฏเดพเดœ เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เดจเดฟเดฏเดฎเด‚ เดŽเดดเตเดคเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดจเต‹เด•เตเด•เตเด•
เดชเด•เดฐเด‚ "makeppclean -r" เด•เดฎเดพเตปเดกเต.

ROOT
เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เดชเต‡เด•เตเดทเดฟเด• เดชเดพเดค, เด…เดคเดพเดฏเดคเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด•เต‚เดŸเตเดคเตฝ เดฎเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต "RootMakeppfile(.mk)" เด‰เดฃเตเดŸเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฃเต
เดถเต‚เดจเตเดฏเดฎเดพเดฃเต.

เดทเต†เตฝ
เดจเดฟเด™เตเด™เตพ เด…เดคเต "เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ" เดšเต†เดฏเตเดคเดพเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเดพเดจเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด•เดฏเตเดณเตเดณเต‚. เด…เด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดทเต†เตฝ เด†เดฃเต
เดšเดฟเดฒ เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดคเต€เด•เด™เตเด™เดณเตเดณเตเดณ เดฌเดฟเตฝเดฑเตเดฑเดฟเตป เดšเต†เดฏเตเดฏเดพเดคเตเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (เดชเตเดฒเต†เดฏเดฟเตป
เดจเต‡เดฐเดฟเดŸเตเดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดต). Windows เดธเตเดŸเตเดฐเต‹เดฌเต†เดฑเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ActiveState Perl-เตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ
เด’เดฐเต เดฏเตเดฃเดฟเด•เตเดธเต เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดทเต†เตฝ, เดชเด•เดฐเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดทเต†เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† "sh" เตฝ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดœเตเดœเดฎเดพเด•เตเด•เดฃเด‚.
เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "sh.exe" เดฎเตเดฎเตเดชเต makepp เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "/usr/xpg4/bin/sh" (เด‰เดฆเดพ. เดธเต‹เดณเดพเดฐเดฟเดธเต) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "/sbin/xpg4/sh" เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต
(เด‰เดฆเดพ. Reliant Unix) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "/ bin / sh".

YACC
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ: "เดฌเตˆเดธเตบ-เดตเตˆ" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เดฏเดพเด•เตเด•เต" เดŽเดจเตเดจเดคเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเต.

เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด’เดชเตเดชเด‚ เดชเต‡เตพ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃ เดชเต‡เตพ โ€‹โ€‹เดธเตเด•เต†เดฏเดฟเดฒเดฑเตเด•เดณเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดฐเตเดฎเดพเดฏเดฟ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด•เตƒเดคเตเดฐเดฟเดฎเด™เตเด™เตพ เดจเดŸเดคเตเดคเดฃเดฎเต†เด™เตเด•เดฟเตฝ เดชเต‡เตพ เด•เต‹เดกเต; makepp_extending เด•เดพเดฃเตเด•
เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต.

เดชเต‡เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เด—เต‹เดณ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดตเดฏเต† "Mpp::global" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเต‡เดŸเดพเดจเดพเด•เตเด‚.
เดชเดพเด•เตเด•เต‡เดœเต. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดฎเต‡เด•เตเด•เตเดซเดฏเดฒเดฟเตฝ เด‡เดคเตเดตเดฐเต† เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ, เดจเดฟเด™เตเด™เตพ เดเดคเต
เดˆ เดชเดพเด•เตเด•เต‡เดœเดฟเตฝ เด…เดธเตˆเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดจเตเดจเตเดฎเตเดคเตฝ เด†เด—เต‹เดณเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดจเตฝเด•เดฟเดฏเดคเต เดชเต‹เดฒเต†
เด…เดคเดฟเดจเตเดณเตเดณ "เด†เด—เต‹เดณ" เดชเตเดฐเดธเตเดคเดพเดตเดจ.

เดˆ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดชเตเดฐเดตเต‡เดถเดจเด‚ เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เดชเดฟเดถเด•เต เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณเดคเดพเดฃเต! เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚
เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเต‚เดŸเต†. เด‡เดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดฎเดฑเตเดฑเต เดšเดฟเดฒ เดฎเต‡เด•เตเด•เต เดซเดฏเตฝ เดฒเต‹เดกเต เดšเต†เดฏเตเดคเต
เด’เดฐเดพเตพ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† เด—เตเดฒเต‹เดฌเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดˆ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด…เดธเตˆเตป เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด…เดคเดฟเดจเตเดฑเต† เดธเตเดตเดคเตเดคเต เด…เดชเดนเดฐเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚
(เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เตเด•เตพ เด’เดดเดฟเด•เต†, "เด“เดตเตผเดฑเตˆเดกเต" เดฎเต‹เดกเดฟเดซเดฏเดฑเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต.)

เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดคเดฐเดคเตเดคเดฟเดฒเดพเดฃเต†เด™เตเด•เดฟเตฝ เด…เดตเดฏเตเดŸเต† เดตเดฟเด•เดพเดธเดคเตเดคเต†เดฏเตเด‚ เดจเดฟเด™เตเด™เตพ เดฎเดฑเดฟเด•เดŸเด•เตเด•เตเด‚
"=" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ";=". "$(CC)" เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดชเตเดฐเดคเตเดฏเต‡เด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเดพเดฏเดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดฐเต†
เดจเดฟเดฏเต‡เดพเด—เดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ. เด…เดคเดฟเดจเดพเตฝ เดชเดฒ เด•เต‡เดธเตเด•เดณเดฟเดฒเตเด‚ เดจเดฟเด™เตเด™เตพ เด…เดตเดฏเตเดŸเต† เดฎเต‚เดฒเตเดฏเด‚ เด•เดพเดฃเดฟเดฒเตเดฒ.

เดˆ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดถเดฐเดฟเดฏเดพเดฏ เดฎเต‚เดฒเตเดฏเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป makepp-เดจเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚
"makeperl" เดตเต‡เดฐเดฟเดฏเดจเตเดฑเต, เด…เดคเดฟเตฝ เดชเต‡เตพ เด•เต‹เดกเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเดŸเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต
เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเดšเตเดšเต:

makeperl { $$current_value = '$(MAKEFILE_VAR)'}

เดจเดฟเด™เตเด™เตพเด•เตเด•เต makefile perl เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดฟเตฝ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ เด‡เดคเต Perl เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเดดเดฟเดฏเดพเดฃเต เดจเต‡เดŸเตเดจเตเดจเดคเต
$makefile เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ:

perl { $current_value = $makefile->expand_variable('MAKE_VAR' )}

เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เดฎเต‡เด•เตเด•เตโ€Œเดซเตˆเตฝ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต $_[1]:

เด‰เดช f_f { $current_value = $_[1]->expand_variable('MAKE_VAR' )}

เดฎเต†เดฏเตเด•เตเด•เต เดซเดฏเตฝ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เด‰เดณเตเดณ เด’เดฐเต เดฑเต‚เตพ เด†เด•เตเดทเดจเดฟเดฒเดพเดฃเต เด•เดฎเดพเตปเดกเตเด•เตพ เดตเดฟเดณเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต
"$Mpp::Subs::rule->{MAKEFILE}" เดตเดดเดฟ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเดพเด‚:

เด‰เดช c_cmd {$current_value = $Mpp::Subs::rule->{MAKEFILE}->expand_variable('MAKE_VAR' )}

onworks.net เดธเต‡เดตเดจเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด“เตบเดฒเตˆเดจเดฟเตฝ makepp_variables เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•


เดธเต—เดœเดจเตเดฏ เดธเต†เตผเดตเดฑเตเด•เดณเตเด‚ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเตเด•เดณเตเด‚

Windows & Linux เด†เดชเตเดชเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•

  • 1
    เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ-เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ
    เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ-เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ
    เด…เดฃเตเด•เต‡เดจเตเดฆเตเดฐเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เต‹เดŸเตเดฒเดฟเตป เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต
    Gradle/Android เดชเตเดฐเต‹เดœเด•เตเดŸเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เดพเดทเต†เด•เตพ.
    Gradle เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ IDE เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต
    เดคเดพเดดเต‡เด•เตเด•เต. เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต
    macOS, เดชเด•เตเดทเต‡ ...
    เดกเต€เดชเต เด•เตเดฒเต€เตป เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 2
    เดŽเด•เตเดฒเดฟเดชเตเดธเต เดšเต†เด•เตเด•เตเดธเตเดฑเตเดฑเตˆเตฝ เดชเตเดฒเด—เต-เด‡เตป
    เดŽเด•เตเดฒเดฟเดชเตเดธเต เดšเต†เด•เตเด•เตเดธเตเดฑเตเดฑเตˆเตฝ เดชเตเดฒเด—เต-เด‡เตป
    เดŽเด•เตเดฒเดฟเดชเตเดธเต เดšเต†เด•เตเด•เตเดธเตเดฑเตเดฑเตˆเตฝ เดชเตเดฒเด—เต-เด‡เตป
    เดšเต†เด•เตเด•เตเดธเตเดฑเตเดฑเตˆเตฝ เดœเดพเดต เด•เต‹เดกเต เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
    เดŽเด•เตเดฒเดฟเดชเตเดธเต IDE-เดฒเต‡เด•เตเด•เตเดณเตเดณ เด“เดกเดฟเดฑเตเดฑเตผ. เดฆเดฟ
    เดชเตเดฒเด—เต-เด‡เตป เดคเดคเตเดธเดฎเดฏ เดซเต€เดกเตเดฌเดพเด•เตเด•เต เดจเตฝเด•เตเดจเตเดจเต
    เดตเดฏเดฒเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต...
    เดŽเด•เตเดฒเดฟเดชเตเดธเต เดšเต†เด•เตเด•เตเดธเตเดฑเตเดฑเตˆเตฝ เดชเตเดฒเด—เต-เด‡เตป เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เดฎเต€เดกเดฟเดฏ เดชเตเดฒเต†เดฏเดฑเดพเดฃเต
    เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ, WMP, VLC เดŽเดจเตเดจเดฟเดต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดญเดพเด—เด‚. เดฆเดฟ
    เด•เดณเดฟเด•เตเด•เดพเดฐเตป เดฎเดฟเดจเดฟเดฎเดฒเดฟเดธเตเดฑเตเดฑเต เดถเตˆเดฒเดฟเดฏเดฟเดฒเดพเดฃเต
    เดชเดคเตเดคเดฟเดฒเดงเดฟเด•เด‚ เดคเต€เด‚ เดจเดฟเดฑเด™เตเด™เตพ, เด•เต‚เดŸเดพเดคเต† เด•เดดเดฟเดฏเตเด‚
    b ...
    AstrOrzPlayer เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 4
    movistartv
    movistartv
    เด•เต‹เดกเดฟ เดฎเต‚เดตเดฟเดธเตเดฑเตเดฑเดพเตผ+ เดŸเดฟเดตเดฟ เดŽเด•เตโ€Œเดธเตโ€ŒเดฌเดฟเดŽเด‚เดธเดฟ/
    เด•เต‹เดกเดฟ เด•เตเดฏเต‚ เดชเต†เตผเดฎเดฟเดฑเตเดฑเต เดกเดฟเดธเตเดชเต‹เดฃเตผ เดกเดฟ เดฏเต.เดŽเตป
    decodificador de los servicios IPTV เดกเดฟ
    เดฎเต‹เดตเดฟเดธเตเดฑเตเดฑเดพเตผ เด‡เดจเตเดฑเด—เตเดฐเดพเดกเต‹ เดŽเตป เดฏเตเดจเต‹ เดกเดฟ เดฒเต‹เดธเต
    เดฎเต€เดกเดฟเดฏ เดธเต†เดจเตเดฑเดฑเตเด•เตพ เดฎเดพ...
    movistartv เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 5
    เด•เต‹เดกเต :: เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ
    เด•เต‹เดกเต :: เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ
    เด•เต‹เดกเต:: เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เด†เดฃเต,
    เด•เตเดฐเต‹เดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ C, C++, Fortran IDE
    เดเดฑเตเดฑเดตเตเด‚ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด†เดตเดถเตเดฏเด™เตเด™เตพ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเต
    เด…เดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†. เด‡เดคเต เดตเดณเดฐเต† เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
    เดจเต€เดŸเตเดŸเตเดจเตเดจเต...
    เดกเต—เตบเดฒเต‹เดกเต เด•เต‹เดกเต:: เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ
  • 6
    เดจเดŸเตเดตเดฟเตฝ
    เดจเดŸเตเดตเดฟเตฝ
    Minecraft เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดจเต เดจเดŸเตเดตเดฟเตฝ
    เด•เต‚เดŸเดพเดคเต† เดกเดพเดฑเตเดฑ/เดธเตเดŸเตเดฐเด•เตเดšเตผ เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต
    Minecraft-เดจเตเดฑเต† เด’เดฐเต เด…เดตเดฒเต‹เด•เดจเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด•
    เดฒเต‹เด•เด‚, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด…เดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดคเต†. เด…เดคเต
    เด•เดดเดฟเดฏเตเด‚...
    เด‡เดŸเดฏเตเด•เตเด•เต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • เด•เต‚เดŸเตเดคเตฝ "

เดฒเดฟเดจเด•เตเดธเต เด•เดฎเดพเตปเดกเตเด•เตพ

Ad