เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบ makepp_rules เบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบ OnWorks เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเบเบฃเบตเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบซเบผเบฒเบเปเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเปเบฅเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator
เปเบเบเบเบฒเบ:
NAME
makepp_rules -- เบงเบดเบเบตเบเบญเบ makepp เบชเปเบฒเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ
เบฅเบฒเบเบฅเบฐเบญเบฝเบ
?: &,
-,
@, B: :build_cache,
:build_check, D: :เบชเบปเปเบ, E: :env, I: "ignore_error",
: เบฅเบงเบกโเบเบฑเบโ, L: :เปเบญโเบเบฒเบโเบชเบธเบโเบเปเบฒเบ, M: เบเบนเปเบเบฐเบฅเบดเบ, N: "เปเบเปเบเป", P: :parser,
"perl", S: :เบฅเบฒเบเปเบเบฑเบ
เบเบปเบเบฅเบฐเบเบฝเบเปเบกเปเบเบชเบดเปเบเบเบตเปเบเบญเบ makepp เบงเบดเบเบตเบเบฒเบเบชเปเบฒเบเปเบเบฅเปเบซเบผเบทเบเบฐเปเบเบเปเบเบฅเป. Makepp เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ
syntax เบเบปเบเบฅเบฐเบเบฝเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบญเบทเปเบเปเบเบญเบ make, เบเบงเบเบเบฑเบเบเบฒเบเบชเปเบงเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบเบปเบเปเบญเบ.
เบเบปเบเบฅเบฐเบเบฝเบเบกเบตเบฎเบนเบเปเบเบเบเบปเปเบงเปเบ
target_expression : dependency_expression [ : arguments เบเบฒเบโเปเบฅเบทเบญเบโ]
เบซเบธเปเบ
เบฅเบฒเบเบเบทเปเปเบเบปเปเบฒเปเบฒเบเบญเบฒเบเบเปเปเบกเบตเบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ (เบเบปเบเปเบงเบฑเปเบ "$(foreach)"). เปเบเป
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบญเบฒเบเบเบฐเบกเบตเบเบฝเบเปเบเปเบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเบญเปเบฒเบเบญเบตเบเปเบชเปเปเบเบปเปเบฒเบซเบกเบฒเบ (เปเบเบฑเปเบ,
"$(output)", "$(outputs)", เบซเบผเบทเบเปเบฒเบชเบฑเบเบเปเบฒเบเบเบทเบเบฑเบ). เบเบณเบชเบฑเปเบเบญเบฒเบเบกเบตเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเป
เบเบปเบงเปเบ
เบเปเบฒ makepp เบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบฅเบฐเปเบชเบฑเปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ
เบเบฒเบกเบฅเปเบฒเบเบฑเบ, เปเบฅเบฐเบเปเบฒเบญเบฑเบเปเบเบชเบปเปเบเบเบทเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเปเปเบกเปเบเบชเบนเบ, เบชเปเบงเบเบเบตเปเปเบซเบฅเบทเบญเบเบฐเบเปเปเบเบทเบเบเบฐเบเบดเบเบฑเบ (เปเบฅเบฐ.
makepp เปเบญเบปเบฒเบฅเบนเบเบญเบญเบเบเปเบงเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบเปเบฒเบเปเบเปเบฅเบฐเบเบธเบเบฒเบเปเบฅเบทเบญเบ "-k" เปเบเปเบเบงเบเปเบฒเบชเบฑเปเบ.)
เปเบเปเบฅเบฐเบเบฒเบเบเบฐ เบเบณ เบเบงเบเปเบเบฑเบเปเบชเบฑเปเบเบเบฝเบงเปเบเบปเปเบฒเบเบฑเปเบ. เบเปเบฒเบเบฒเบเบเบฐ เบเบณ เบเบฒเบงเปเบเบตเบเปเบเบเบตเปเบเบฐเบเบฝเบเปเบเปเบเปเบฒเบเปเบ a
เปเบชเบฑเปเบเบเบฝเบง, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบเบญเบญเบเปเบเบฑเบเบซเบผเบฒเบเปเบชเบฑเปเบเปเบฅเบฐเปเบชเป backslash เปเบเบทเปเบญเบเบตเปเบเบญเบเบงเปเบฒ
เบซเบผเบฒเบเบชเบฒเบเบเบงเบเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบฑเบเบญเบฑเบเบเบฝเบง.
เปเบเบทเปเบญเปเบเบเปเบเบฐเบเบฒเบเบเบฐ เบเบณ เบเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเปเปเปเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบงเบเบเบฐเบเบทเบเบซเบเปเป เปเปเบฒ เบซเบผเบฒเบเบเบถเปเบ
เบโเปโเบงเบฒโเปเบชเบฑเปเบโเบเบตเปโเบกเบตโเปเบเบปเปเบฒโเบซเบกเบฒเบโเปเบฅเบฐโเบเบฒเบโเปเบเบดเปเบโเบเบฒโเบญเบฒโเปเบชโ. เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบญเบทเปเบเปเบเบญเบ
make, makepp เบเปเปเบชเบปเบเปเบเบซเบผเบฒเบเบเบฒเบเปเบเบเบตเปเบเปเบฒเบเบซเบเปเปเบซเบเปเบฒเบกเบฑเบเบซเบผเบทเบงเปเบฒเบเปเบฒเบเปเบเปเบเบปเบงเบญเบฑเบเบชเบญเบเปเบเบ
เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบญเบเบซเบงเปเบฒเบ. เปเบเบทเปเบญเบฎเบฑเบเบชเบฒเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบเบเบฒเบเบเบฐเบฅเบดเบเปเบเบเบเบฑเปเบเปเบเบตเบก, เบเบปเบเบฅเบฐเบเบฝเบ
makepp เปเบเปเปเบเบทเปเบญเบเบฑเบเบชเบดเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบฐ เบเบณ เบชเบดเปเบเบชเบธเบเบฅเบปเบเปเบฅเบฐเบเบปเบเบเปเปเปเบเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบเบชเบฑเบเบชเบปเบเบเบฒเบเบขเปเบฒเบ:
ยท เปเบชเบฑเปเบเบเบฐเบเบดเบเบฑเบเบเบณเบญเบดเบเบเปเบญเบเบเบทเบเบซเบเปเปเปเปเบฒเบซเบผเบฒเบเบเบงเปเบฒเปเบชเบฑเปเบเบเบตเปเบกเบตเปเบเบปเปเบฒเปเบฒเบ.
ยท เบเปเบฒเปเบเบงเบเบทเบเบซเบเปเปเปเปเบฒเบเปเบงเบเบเบปเบงเบญเบฑเบเบชเบญเบเปเบเบเปเบถเปเบ เบซเบผเบท 8 เบเบฐเบซเบงเปเบฒเบ เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ, เบกเบฑเบเบเบฐเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒ
เปเบชเบฑเปเบเบเบฐเบเบดเบเบฑเบ.
ยท เปเบเบงเบซเบงเปเบฒเบเปเบเบปเปเบฒ เบซเบผเบท เปเบเบงเบเบณเปเบซเบฑเบเบเบตเปเบกเบตเบเบปเบงเบญเบฑเบเบชเบญเบ "#" เบขเบนเปเบเบญเบเบเบงเบฒเบเบฐเบชเบดเปเบเบชเบธเบ
เบเบปเบโเบฅเบฐโเบเบฝเบ, เปเบงเบฑเปเบโเปเบชเบโเปเบเปโเปเบเบงโเบเปเปโเปเบโเบเบตเปโเบเปเปโเปเบกเปเบโเปเบเบปเปเบฒโเบซเบงเปเบฒเบ indented เบซเบผเบฒเบโเบโเปโเบงเบฒ 8 เบเปเบญเบ (เบซเบผเบทโเบซเบผเบฒเบโเบเบงเปเบฒโเบซเบเบถเปเบโ
เปเบเบ).
ยท เบเปเบฒเปเบชเบฑเปเบเบเบทเบเบซเบเปเปเปเปเบฒเบซเบผเบฒเบ เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเปเบชเบฑเปเบเบเบฐเบเบดเบเบฑเบเบเบณเบญเบดเบ, เบกเบฑเบเบเปเปเปเบกเปเบ
เบเบดเบเบฒเบฅเบฐเบเบฒเบชเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบตเปเบกเปเบเบตเบก.
เบกเบตเบเบฒเบเบฅเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบดเปเบชเบ:
& เบชเบฑเบโเบเบฒโเบฅเบฑเบโเบเบตเปโเบเบฐโเบเบทเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฒเบกโเบเปเบงเบโเบเบทเปโเบเปเบฒโเบชเบฑเปเบโเปเบฅเบฐโเบเปเบฒโเบเบงเบโเบเบญเบโเบเบฒเบโเปเบเปโเบเบฝเบโเปเบโเบซเบเบถเปเบโ. เปเบเบฐ
syntax เปเบกเปเบเบเปเปเปเบเบปเปเบฒเปเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเบขเบนเปเบเบตเปเบเบตเป, เบเบฝเบเปเบเปเบเปเบฒเปเบงเบปเปเบฒเบเบฝเบงเปเบฅเบฐเบเบนเปเปเบฅเบฐ backslashed
เบเบปเบงเบญเบฑเบเบชเบญเบเบเบฒเบเปเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบ makepp. เบเบทเปเบเปเบฒเบชเบฑเปเบเบญเบฒเบเบเบฐเบเปเบฒเปเบเบชเบนเปเบซเบเปเบฒเบเบตเป
"c_เบเบทเป" เบเบฐเบเบทเบเปเบญเบตเปเบเบเปเบงเบเบชเบฒเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบเบฑเบ arguments. เบเปเบฒเบซเบฒเบเบงเปเบฒเบซเบเปเบฒเบเบตเปเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบ
เบเปเปเบเบปเบ, เบเบตเปเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเปเบเบซเบฒ "เปเบฅเปเบ" เบเบฒเบ "perl".
เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบซเบฒเบขเปเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบปเบง, makefile-provided เบซเบผเบทเบเปเบฒเบชเบฑเปเบเบเบฒเบเบเบญเบ.
เบเปเบฒเบเปเบฒเบซเบเปเบฒ "&" เปเบเปเบเบทเบเปเบฅเบทเบญเบเปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบซเบเปเบฒเบเบตเป invoker เปเบ Perl, เปเบฅเบฐเปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ
เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบกเบฑเบเบเบดเบเบเบปเบเบซเบกเบฒเบเปเบ Shell.
$(ROOT)/include/%.h: %.h
&ln $(input) $(output)
เปเบเปเบ
@ เปเบเบเบเบปเบเบเบฐเบเบด, เปเบเปเบฅเบฐเบเปเบฒเบชเบฑเปเบเบเบญเบ shell เบเบฐเบเบทเบเบเบดเบกเบญเบญเบเบเปเบญเบเบงเปเบฒเบกเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเปเบฒเบเปเบฒเบญเบดเบ
เบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบกเปเบ "noecho" (เบซเบผเบทเบเปเบฒเบกเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบปเบงเบญเบฑเบเบชเบญเบ "@"), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฑเปเบ
เบเปเปเปเบเปเบเบดเบก. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
%.o: %.cxx
noecho $(LIBTOOL) --mode=compile $(CC) -c $(input)
เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบกเบทเปเบญเบเปเบฒเบชเบฑเปเบ libtool เบเบทเบเบเบฐเบเบดเบเบฑเบ, เบกเบฑเบเบเปเปเปเบเปเบเบทเบเบเบดเบกเบญเบญเบ. (Libtool
เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบดเบกเบเปเบฒเบชเบฑเปเบเบเบฑเบเปเบเปเบเบตเปเบกเบฑเบเบเบฐเบเบดเบเบฑเบ, เบชเบฐเบเบฑเปเบเบกเบฑเบเบเปเปเบฒเบเปเบญเบเบเบฑเบ
เบเบดเบกโเบกเบฑเบโเบชเบญเบโเบเบฑเปเบโ.)
ignore_error
- เปเบเบเบเบปเบเบเบฐเบเบด, เบเปเบฒเบเปเบฒเบชเบฑเปเบ shell เบชเบปเปเบเบเบทเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเปเปเบกเปเบเบชเบนเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ makepp เบเบปเบเปเบฅเบตเบเปเบเบฒเบฐเบงเปเบฒ
เบเปเบฒเบชเบฑเปเบเบฅเบปเปเบกเปเบซเบฅเบง. เบขเปเบฒเบโเปเบโเบเปโเบเบฒเบกโ, เบเบฒเบโเปเบเบโเบเบฒเบโเบเบตเปโเบเปเปโเบเบทเบโเบเปเบญเบโเบเบฑเปเบโเบชเบฐโเบเบฒโเบเบฐโเบเบฒเบโเบญเบญเบโ, เบซเบผเบทโ
เบญเบฒเบเบกเบตเบเปเปเบเบดเบเบเบฒเบเบเบตเปเบเปเปเปเบเบฑเบเบญเบฑเบเบเบฐเบฅเบฒเบ เปเบฅเบฐเบเปเปเบเบงเบเปเบญเบปเบฒเบฅเบนเบเบญเบญเบเบเบฑเบเปเบปเบ
เบเบฒเบเบฅเบงเบเบฅเบงเบก. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเป makepp เบเปเปเบชเบปเบเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเบเบเบทเบเปเบเบเบเบฒเบเบฅเบฐเบเบธ
"ignore_error" เปเบเบฑเบเบเปเบฒเบเปเบฒเบญเบดเบเบเบญเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ (เบซเบผเบท "-" เปเบเบฑเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเปเบฒเบญเบดเบ).
เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
$(เบเบฒเบเปเบเปเบเบฐเบเบฒเบเบชเบฝเบ):
ignore_error rm -r my_program-$(VERSION) # เบเปเบฒเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบเบตเปเบเปเบฒเบเบกเบฒ.
&mkdir my_program-$(VERSION)
&cp $(FILES) my_program-$(VERSION)
tar cf my_program-$(VERSION).tar my_program-$(VERSION)
เบเปเบฒเบชเบฑเปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเปเบฅเบเบฐเบเปเบฅเบต, เบชเปเบฒเปเบเบปเบฒเบเปเปเบเบญเบเปเบเบฅเปเปเบเบปเปเบฒเปเบเปเบเบกเบฑเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบงเบฒเบ
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเบปเปเบฒเปเบเปเบเปเบเบฅเป tar เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบขเบฒเบ. เบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบตเบเบตเปเบเบฐเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบญเบญเบ
เปเบเบทเปเบญเปเบเบเบตเปเบเปเบฒเบเบกเบฒเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบต, เบเปเบฒเบกเบตเบชเบดเปเบเปเบเปเบเปเบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบฅเบฐเบเบฑเปเบเปเบกเปเบ
เบชเบดเปเบเบเบตเปเปเบชเบฑเปเบเบเปเบฒเบญเบดเบเปเบฎเบฑเบ. "rm" เบญเบฒเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบง, เปเบเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเบเบเบทเบเบเบญเบเบกเบฑเบเบเบทเบเบฅเบฐเปเบฅเบตเบ.
perl
เบเบนเปเบเบฐเบฅเบดเบ
เบเบตเปเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบทเบเบฑเบเบเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ perl, เปเบเปเบกเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเปเบฅเบฐเปเบงเบฅเบฒเบเบตเป
เปเบฅเปเบเบเบปเบเบฅเบฐเบเบฝเบ, เบเปเปเปเบกเปเบเปเบเปเบงเบฅเบฒเบญเปเบฒเบ makefile. เบเบปเบงเปเบเบเปเบฒเบญเบดเบเปเบกเปเบ Perl เบเปเบฒเบกเบฐเบเบฒ
เบฅเบฐเบซเบฑเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบปเบงเปเบเบเบตเบชเบญเบเบเปเบฒเบญเบดเบเบเปเบฒเบเบเปเบฒเบเบฐเปเบซเบผเบเปเบเบเบเปเบฒเบเบเบปเบงเปเบเปเบเบ Make-style
เบเบฒเบเบเบฐเบซเบเบฒเบเบเบปเบง.
เบชเปเบฒเบฅเบฑเบเบชเบญเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบงเบฒเบเบชเบฒเบเปเบเบเบเบญเบเบฎเปเบฒเบเบเบฒเบ, เปเบเบดเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบขเบนเปเบเบตเป
"perl_perlcode" เปเบ makepp_statements. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบปเบงเปเบเบเบตเบชเบฒเบกเปเบเปเบญเบฐเบเบดเบเบฒเบเบขเบนเปเบเบตเปเบเบฑเปเบ
เบเปเปเบกเบตเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบขเบนเปเบเบตเปเบเบตเป, เปเบเบฒเบฐเบงเปเบฒเปเบชเบฑเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเปเบญเบเบเบทเบเบซเบเปเปเบซเบเปเบฒ. เบเปเบฒเบเบเปเบญเบเบชเบฑเบเบเบฒเบ
เบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเปเบเบเปเบฒเบเบฐเปเบซเบผเบ Perl, เปเบเบเปเบญเบตเปเบเบงเปเบฒ "เบเบฒเบ".
เบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบ, เบเบฐเปเบซเบผเบเบเบฒเบ Perl เบเบฐเบเบธเบเบฑเบเบเบทเบเบเบฐเปเบกเบตเบเบขเบนเปเปเบเบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเบเบปเปเบงเปเบ, เบเบปเบเปเบงเบฑเปเบ
Windows. เบเบฑเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบเปเบเบปเบฒเบกเบตเบเบฝเบเปเบเปเบเบฒเบเบญเปเบฒเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบปเบงเปเบ makefile เปเบเป. เบกเบฑเบเบเบฑเบเปเบเบฑเบ
เบเบฐเบเบงเบเบเบฒเบเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฐเบเปเบฒเบเบตเปเบเปเปเปเบกเปเบ Perl. เบชเบฐเบเบฑเปเบเบเบฒเบเปเบเบซเบฒ exec เบซเบผเบท exit เบเบฐเบชเบฑเบเบชเบปเบ
เปเบเปเบเปเปเบฒ. เปเบเปเบเบตเปเบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบญเบฐเบเบฒเบเบปเบ. เบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบฒเบเปเบเบซเบฒ Perl
scripts, เปเบเบดเปเบเบฅเบฒเบเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ "&" เบซเบผเบท "เปเบฅเปเบ".
$(เบชเบฐเบเบฑเบเบเบฒเบชเบฒ phony):
noecho perl {{ # $(เปเบเบปเปเบฒเปเบฒเบ) & $(VERSION) เบเบฒเบ Perl:
เบเบดเบก "เบเบตเปเปเบกเปเบ ".f_target()." $VERSION\n";
}}
echo เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบชเบปเบกเบเบตเปเบเบฑเบเบเปเบฒเบชเบฑเปเบ Shell
-makeperl { เบเบดเบก "เบเบตเปเปเบกเปเบ $(เปเบเบปเปเบฒเปเบฒเบ) $(VERSION)\n" }
เบกเบตเบซเบผเบฒเบเบเบฐเปเบเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบ, เปเบเปเบฅเบฐเบเบปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เปเบเบเบชเบฐเปเบเบฒเบฐ เบเบปเบเบฅเบฐเบเบฝเบ
target1 target2: dependency1 dependency2...
เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบตเปโเบเบฐโเบเบฐโเบเบดโเบเบฑเบโ
syntax เบเบตเปเบเปเบฒเบเบปเบเบงเปเบฒเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเปเปเบงเปเบฒเบเบฐ เปเบเบปเปเบฒ เปเบฒเบ เบเบต 1 or เปเบเบปเปเบฒ เปเบฒเบ เบเบต 2, เปเบเบฅเปเบเบฑเบเบซเบกเบปเบ
เปเบเบดเปเบเบเบฒเบญเบฒเปเบช1, เปเบเบดเปเบเบเบฒเบญเบฒเปเบช2, เปเบฅเบฐเบญเบทเปเบเป, เบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบฎเบฑเบเปเบฅเปเบง. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบเปเบกเบญเบเปเบซเป
เบเบฐเบเบดเบเบฑเบเปเบเบเบซเบญเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฑเปเบเบเปเบฒเบง.
เบเบปเบเบฅเบฐเบเบฝเบเบเปเบฒเบญเบดเบเบเบตเปเบเบฑเบเปเบเบเปเบเปเบเบฅเปเปเบกเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเบเปเบฒเบเปเบฒเบเบเปเปเบฅเบฐเบเบธ
เปเบเบปเปเบฒโเบซเบกเบฒเบโเปเบโเบซเบเบถเปเบโเปเบโเบเบฑเบโเบเบตโเบเปเบฒโเบชเบฑเปเบโ.
เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเปเบเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเบฑเปเบเปเบเบตเบก, makepp เบกเบฑเบเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบญเบฑเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
เปเบฎเบฑเบเปเบซเปเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฑเบเบซเบกเบปเบ (เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบเปเปเบกเบตเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช). เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบซเบเบถเปเบ invocation
เบเบญเบ yacc เบชเปเบฒเบเปเบเบฅเปเบเบปเบเบเบฐเบฅเบดเบเบเบฑเบเบชเบญเบเบชเปเบฒเบฅเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเป:
y.tab.c y.tab.h : parser.y
$(YACC) -d parser.y
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบญเบทเปเบเปเบเบญเบ make เบเปเปเบกเบตเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบฝเบง
เบเบฒเบโเบเบฐโเบฅเบดเบโเปเบเบฅโเปโเบเบปเบโเบเบฐโเบฅเบดเบโเบซเบผเบฒเบโ, เปเบฅเบฐโเบเบฑเปเบโเบเบฑเปเบโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบเปเบฒเบโเบเปเบฒโเบเบปเบโเปเบเบปเปเบฒโเบซเบกเบฒเบโเบซเบผเบฒเบโเบเบตเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบฐโ
เบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบซเบเบถเปเบเบเบฑเปเบเบเปเปเปเบเบปเปเบฒเบซเบกเบฒเบ. Makepp เบเบฐเบเบฑเบเบเบทเบเบชเบนเปเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเบฒเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒ
เบเบตเปเปเบกเปเบ makefile เปเบเบเปเบเบปเปเบฒ. เปเบเบเบชเบฐเปเบเบฒเบฐ, เบกเบฑเบเบเบฐเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบซเบเบถเปเบเบเบฑเปเบเบเปเปเปเบเบปเปเบฒเบซเบกเบฒเบ,
เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบฝเบเบเบฑเปเบเบเบฝเบง, เบเปเบฒเบเบฑเบเปเบปเบเบเปเปเปเบเบเบตเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบ:
ยท เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเปเบฒเบงเปเบเบดเบเบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ $@. (เบเปเบฒเบชเบฑเบเบเปเบฒเบเบเบท "$(output)" เบซเบผเบท
"$(เปเบเบปเปเบฒเปเบฒเบ)" เบเปเปเปเบซเปเปเบเบตเบเบเบถเบเบเบดเบเบณเบเบตเป.)
ยท เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเปเปเปเบเปเบเปเบฒเบงเปเบเบดเบเบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ "$(outputs)" (เบซเบผเบทเบเปเบฒเบชเบฑเบเบเปเบฒเบเบเบทเบเบญเบเบกเบฑเบ
"$(เปเบเบปเปเบฒเปเบฒเบ)").
ยท เบเบตเปโเบเปเปโเปเบกเปเบโเบเบปเบโเบฅเบฐโเบเบฝเบโเบฎเบนเบโเปเบเบโ, เปเบฅเบฐโเบเปเปโเบกเบต foreach clauseโ.
เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
เบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบฑเบโเบซเบกเบปเบโ:
เบชเปเบฒเบฅเบฑเบ subdir เปเบ $(SUBDIRS); เปเบฎเบฑเบ cd $$subdir && $(MAKE) $@; cd..; เบชเบณเปเบฅเบฑเบเปเบฅเปเบง
เปเบเบฑเบ idiom เบเบปเปเบงเปเบเปเบ makefiles, เปเบฅเบฐ makepp เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบกเบฑเบ. (เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเบเบเปเปเบเบงเบเปเบเป
recursive make เปเบ makefiles เปเบซเบกเปเปเบเปเบเบตเปเบเปเบฒเบเบเบฝเบ - เปเบเป "load_makefile" เบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ, เบซเบผเบท
เบเบฒเบเปเบซเบผเบ makefile implicit เปเบเบ.)
เบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบเบฝเบงเบเบฑเบเบเบฐเบเบดเบเบฑเบเบซเบเบถเปเบเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเปเบเบปเปเบฒเบซเบกเบฒเบ (เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเปเบเบปเปเบฒเบซเบกเบฒเบ
เบกเบตเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ), เบกเบฑเบเบกเบฑเบเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบ (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป) เบซเบผเบท a
เบเปเป โforeachโ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบกเบตเปเบเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเบฑเปเบเปเบเบตเบก, เปเบเบปเปเบฒเบเบฐเบเบฝเบ:
เบโเบโเบโเบ:
do_something to build $@ > $@
เปเบ makepp, เบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเบเบฝเบเบกเบฑเบเปเบเบเบเบตเป:
$(foreach): : foreach abcd
do_something เปเบเบทเปเบญเบชเปเบฒเบ $(output) > $(output)
เปเบเบเบต เปเบเบปเปเบฒเบซเบกเบฒเบ
A phony เปเบเบปเปเบฒโเบซเบกเบฒเบ เปเบกเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบเบฐเบเปเปเปเบเบตเบเบกเบตเบขเบนเปเปเบเบฅเบฐเบเบปเบเปเบเบฅเป; เบกเบฑเบเบเบฝเบเปเบเปเปเบเบฑเบ
เบงเบดเบเบตเบเบฒเบเบฎเบฑเบ makepp เปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบฅเบฐเบญเบฒเบเบเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเปเบเบตเปเบกเปเบเบตเบก.
เปเบเบปเปเบฒเบซเบกเบฒเบ phony เบเบปเบเบเบฐเบเบดเปเบกเปเบ "เบเบฑเบเบซเบกเบปเบ", เปเบเบดเปเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเปเบเบฑเบเปเบเปเบเป
เบเบฒเบโเบเปเปโเบชเปเบฒเบโเบเบตเปโเบเบฐโเบเปเปโเบชเปเบฒเบโ, เบเบฑเปเบโเบเบตเปโ:
เบเบฑเบเปเบปเบ: prog1 prog2 subdir/prog3 subdir2/libmine.a
@&echo "เบชเบณเปเบฅเบฑเบเปเบฅเปเบง!"
เบเปเบฒเบเปเบฒเบเบเบดเบก "makepp all", เบซเบผเบทเบเปเบฒเบเปเบฒเบเปเบชเปเบเบฑเบเบซเบกเบปเบเปเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบเบฑเบเปเบเบเบเปเบฒเบญเบดเบเปเบ makefile เบเบญเบเบเปเบฒเบ
(เปเบเบดเปเบเปเบเบฑเบเปเบเบเบเบปเบเบเบฐเบเบด) เปเบฅเบฐเบเบฝเบเปเบเปเบเบดเบก "makepp", เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบถเปเบเบเบฑเบเบเบฑเบเบซเบกเบปเบ
เบชเปเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฐเบเบดเบก "เปเบฎเบฑเบเปเบฅเปเบงเบเบฑเบเบซเบกเบปเบ!". เปเบเบเบธเบเบเบตเป, makepp เบเบฐเบเบญเบเบซเบฒเปเบเบฅเป ./เบเบฑเบเปเบปเบ
เปเบฅเบฐเบเบฐเบเบปเปเบเบเบปเบเบงเปเบฒเบกเบฑเบเบเปเปเบกเบตเบขเบนเป. เบกเบฑเบเบเบฐเบเบปเปเบกเบเบฑเบเป.
เปเบเบทเปเบญเบฎเบฑเบเบชเบฒ makepp เบเบฒเบเบเบฒเบเบเบฒเบเบซเบงเบฑเบเปเบเบฅเป ./เบเบฑเบเปเบปเบ เบเบฒเบโเบญเบญเบโ, เบเปเบฒเบโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเบเบญเบโเบงเปเบฒโเบกเบฑเบโเปเบเบฑเบโ
เปเบเบปเปเบฒโเบซเบกเบฒเบ phony. เบเบฝเบเปเบเปเปเบชเปเปเบชเบฑเปเบเปเบเบฑเปเบเบเปเปเปเบเบเบตเปเปเบ makefile เบเบญเบเบเปเบฒเบ (เบกเบฑเบเบเปเปเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบ
เบเปเบญเบเบเบตเป):
.PHONY: เบเบฑเบเบซเบกเบปเบ
เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบฝเบเปเบเบปเปเบฒเบเบตเปเบเบฒเบเบเบฑเปเบเบชเบฐเบเบงเบเบเบงเปเบฒเปเบกเปเบเบเบฒเบเปเบเป "$(phony)"
เบซเบเปเบฒโเบเบตเปโเปเบเบฑเปเบโเบเบตเปโ:
$(phony all): prog1 prog2 subdir/prog3 subdir2/libmine.a
เปเบเบปเปเบฒเบซเบกเบฒเบ phony เปเบ makefile เบซเบเบถเปเบเบชเบฒเบกเบฒเบเบซเบกเบฒเบเปเบเบดเบเปเบเบปเปเบฒเบซเบกเบฒเบ phony เปเบ makefile เบญเบทเปเบ. เบเบตเปโเปเบกเปเบ
เบกเบฑเบเบเบฐเปเบฎเบฑเบเบเปเบงเบเปเบเบปเปเบฒเบซเบกเบฒเบ "เบชเบฐเบญเบฒเบ", เปเบเบฑเปเบเบเบตเป:
# makefile เบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบ:
# เบเบปเบเบฅเบฐเบเบฝเบเปเบฅเบฐเบชเบดเปเบเบซเบผเบฒเบเบขเปเบฒเบเบขเบนเปเบเบตเปเบเบตเป
#....
$(phony clean): subdir1/clean subdir2/clean
&rm -fm my_program
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบ, makefiles เบญเบฒเบเบเบฐเบญเปเบฒเบเปเบเบฑเปเบเบเบตเป:
# Makefile เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบ
#...
$(เบฅเปเบฒเบโเบเบดเบโเบเบฒเบ):
&rm -fm $(wildcard *.o *.a)
เปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบเบฐเปเบเปเบเปเบฒเบชเบฑเปเบ "makeppclean", เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบชเบฐเบญเบฒเบ.
เบเบปเบงเปเบเบ
เบกเบฑเบเบเบญเบเปเบเบเบตเปเบเบฐเบฅเบฐเบเบธ wildcards เปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช. เบเบปเบงเปเบเบเบเบตเปเบเบปเบเบเบฑเบเบเปเปเบเบฝเบเปเบเปเปเบเบฅเปเปเบเบปเปเบฒเบเบฑเปเบ
เบเบตเปเบกเบตเบขเบนเป, เปเบเปเปเบเบฅเปเบเบตเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเปเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเปเบ makefile. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
เปเบเบทเปเบญเบชเปเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบเปเบเบฅเป .o เบเบฑเบเบซเบกเบปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบตเป:
libmine.a: *.o
&rm -f $(เบเบปเบเบเบฐเบฅเบดเบ)
ar cr $(output) $(inputs)
เบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเบกเบตเปเบเบฅเป ".o" เบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบทเปเบญ, เปเบเบฒเบฐเบงเปเบฒ makepp's
wildcards เบเบปเบเบเบฑเบเปเบเบฅเปเบเบตเปเบเบฑเบเบเปเปเบเบฑเบเบกเบตเบขเบนเปเปเบเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเป. เบเบตเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฐเปเบญเบปเบฒเบเบถเปเบ
เปเบเบฅเปเบเบตเปเบเบปเบเบฅเบฐเบเบฝเบเบเบทเบเบเบปเปเบเบเบปเบเปเบเบเบฒเบเบซเบผเบฑเบ (เปเบ makefile เบเบฝเบงเบเบฑเบ, เบซเบผเบทเบญเบฑเบเบเบตเปเบเบฑเบเบเปเปเปเบเปเบญเปเบฒเบ). เปเบโเบเบตเป
เบเบธเบเบชเบธเบเบเปเบฒเบเบกเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบเบซเบเปเบฒเบเบตเป "wildcard", เปเบเบดเปเบเบเปเบฒเบเบฑเบเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบฎเบนเปเบเบฑเบ,
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเปเบญเบเบเบฑเบเบเบทเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบกเบฑเบเปเบกเบทเปเบญเบกเบฑเบเบเบทเบเบเบฐเบซเบเบฒเบ.
Makepp เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฑเบเบซเบกเบปเบ shell wildcards เบเบปเบเบเบฐเบเบด ("*", "?", เปเบฅเบฐ "[]"). เบกเบฑเบเบเบฑเบเบกเบต a
wildcard "**" เปเบเบดเปเบเบเบปเบเบเบฑเบเบเปเบฒเบเบงเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบเบเปเบเบเปเบเป. (เบเบงเบฒเบกเบเบดเบเบเบตเปเบเบทเบเบฅเบฑเบ
เบเบฒเบ zsh.) เบเบปเบงเบขเปเบฒเบ, "**/*.c" เบเบปเบเบเบฑเบเบเบฑเบเปเบปเบ .c เปเบเบฅเปเปเบเบเบปเปเบเปเบกเปเปเบซเบผเปเบเบเบฑเบเบซเบกเบปเบ.
"objects/**/*.o" เบเบปเบเบเบฑเบเบเบฑเบเปเบปเบ .o เปเบเบฅเปเบเบตเปเบเบฑเบเบเบธเบขเบนเปเบเปเบญเบเปเบเบเปเปเบเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบ เบงเบฑเบเบเบธ
เบซเบผเบท เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบ เบซเบผเบท เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบเบญเบเบกเบฑเบ. เบชเบฑเบเบเบฒเบฅเบฑเบ "**" เบเบฐเบเปเปเปเบเบฑเบ
เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบญเปเบญเบเปเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเบฅเบฐเบเบฑเบเปเบเบเปเปเบเบฒเบก. เบกเบฑเบเบเบฑเบเบเบฐเบเปเปเบชเบปเปเบเบเบทเบเปเบเบปเปเบฒเปเบฒเบเบเบตเปเบซเบผเบญเบเบฅเบงเบ.
เบเบปเบงเปเบเบเบเบญเบ Makepp เบเบฐเบเปเปเบชเบปเบเปเบเปเบเบฅเป เบซเบผเบทเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบกเบตเบขเบนเป เปเบเปเบเปเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเป. เบซเบผเบฑเบเบเบฒเบ
เบเบฑเบเบซเบกเบปเบ, เปเบเบฅเปเบเบฑเปเบเบเปเบฒเบงเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบฐเบเบงเบเบเบฒเบเบเปเปเบชเปเบฒเบเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก. เบเบฒเบเบงเบฒเบเปเบเบฅเปเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเปเบ a
เปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบปเปเบเบเปเปเบเบทเปเบญเบเบฑเบเบเบฑเปเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบเปเบเบฅเปเบเบตเปเปเบซเปเบกเบฒเบเบฒเบ a
repository
เบเบฒเบเบขเบทเบเบขเบฑเบเปเบเปเบเบทเปเบญเบเบเบปเปเบเปเบกเปเบเบงเปเบฒเบเบตเปเปเบกเปเบเบเบญเบเปเบ. เบเบตเปเปเบกเปเบเบขเบนเปเปเบเปเบซเบเบเบปเบเบเบตเปเบงเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบ
เปเบเบฅเปเบกเบตเบขเบนเปเปเบฅเปเบง, เบซเบผเบทเบเปเบญเบเบเบฒเบเบชเปเบฒเบเบเปเบญเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบฑเบเบเปเปเบเบญเบเปเบเปเบเบเบงเบฒเบกเบฎเบนเปเบชเบถเบ
เบงเปเบฒเบกเบฑเบเบเบฐเบเบฑเบเบเบปเบเบเบฑเบเปเบเบฅเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบ makepp, เปเบเปเบเปเปเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบญเบตเบเบเปเปเปเบ (เบเบปเบงเบขเปเบฒเบ
เบเปเบฒเบเปเบญเบปเบฒเบญเบญเบ .c เปเบเบฅเป, เปเบเป .o เปเบเบฅเปเบเบฑเบเบกเบตเบขเบนเป.) เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบญเบฑเบเบเบตเป, เปเบซเปเปเบเป
เบเบฒเบเปเบฅเบทเบญเบ "--rm-stale".
เบฎเบนเบเปเบเบ เบเบปเบเบฅเบฐเบเบฝเบ
เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเปเบกเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบเบญเบตเบเปเบชเปเบฎเบนเบเปเบเบเบเปเปเบเบงเบฒเบกเบเบฒเบเบขเปเบฒเบ. เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ
เปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบเบฝเบงเบเบฑเบเบเบฑเบเปเบเบฅเปเบเบฑเบเบซเบกเบปเบ. syntax เปเบกเปเบเบเบทเบเบฑเบเบเบฑเบ GNU make's
เบเบปเบโเบฅเบฐโเบเบฝเบโเบฎเบนเบโเปเบเบโ:
%.o: %.c
$(CC) -c $(input) -o $(output)
เบเบตเปเบเบญเบเบงเปเบฒเปเบเบฅเปเปเบเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเบเบธเบเบฑเบเบเบตเปเบเบปเบเบเบฑเบ "*.c" เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฝเบเปเบเบฑเบ
เปเบเบฅเป .o เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบซเป.
เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒเบเบฒเบเบเบถเปเบเบเบฑเบเบฎเบนเบเปเบเบเบซเบผเบฒเบเบญเบฑเบเบญเบฒเบเบเบฐเบเบทเบเบชเบฐเปเบญเบเปเบซเป. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเปเบเบปเปเบฒ xyz.o เปเบญเบเบฐเบชเบฒเบ
เบเบถเปเบเบเบฑเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ xyz.cpp เปเบเบฅเป, เปเบฅเบฐเบเบฑเบเบขเบนเปเปเบเปเบเบฅเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ moc_xyz.cflags เบเบตเป
เบเบฐเบเบญเบเบกเบตเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ, เบเบตเปเบชเบฒเบกเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเปเบงเบ:
%.o: %.cpp %.cflags
$(CXX) `cat $(stem).cflags` -c $(inputs) -o $(output)
เบเปเบฒเบเบญเบฒเบเบเบฐเบกเบตเปเบเบปเปเบฒเปเบฒเบเบฎเบนเบเปเบเบเบซเบผเบฒเบเบญเบฑเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
%.tab.h %.tab.c : %.y
yacc -d $(เบเปเบญเบเบเปเปเบกเบนเบ)
&mv y.tab.h $(stem).tab.h
&mv y.tab.c $(stem).tab.c
เปเบเบเบเบปเบเบเบฐเบเบด, เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบฝเบเปเบเปเบเบญเบเบซเบฒเปเบเบฅเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเบเบธเบเบฑเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฑเบ
เปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบปเปเบเบซเบฒเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเบเบธเบเบฑเบเปเบฅเบฐเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฑเบเบซเบกเบปเบเบเบตเปเบขเบนเปเบฅเบธเปเบกเบกเบฑเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒ
makepp_percent_subdir := 1
เบเปเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเปเบฒเบญเบดเบเปเบ makefile เบเบญเบเบเปเบฒเบเบซเบผเบทเบขเบนเปเปเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ.
เบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฑเบเบขเปเบฒเบเบเบฑเบเปเบเบเบฅเบฐเบซเบงเปเบฒเบ "%" เปเบฅเบฐเบเบปเบงเปเบเบ "*", เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฑเบเบชเบญเบเบเบฐเบเบปเบเบเบฑเบ
string: เบชเบฑเบเบเบฒเบฅเบฑเบเปเบเบเบเบตเปเบชเบปเปเบเบเบทเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเปเบเบฅเปเบเบตเปเบเบทเบเบเปเบฒเปเบเปเบขเปเบฒเบเบชเบปเบกเบเบนเบเปเบเบเบธเบเบเบฑเปเบ. เบเบฑเปเบเบเบฑเปเบ
เบเบตเปเปเบกเปเบเบเบถเปเบเบเบฑเบเบเบฑเบเบซเบกเบปเบ .o เปเบเบฅเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเปเบเบตเปเบเบตเป:
prog: *.o
$(LD) $(LDFLAGS) $(inputs) -o $(output)
เบญเบฑเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเบเปเบฝเบ "*" เบเปเบงเบ "%", เปเบเบฒเบฐเบงเปเบฒเบญเบฑเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบชเบณเบฅเบฑเบเปเบเบทเปเบญเบฅเบฐเบญเบฑเบ.
เบเบฒเบเบเบฑเบเบเบนเปเบเบญเบเบงเบฑเบเบชเบฐเบเบธเบเปเบญเบเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบฐเบฅเบดเบเบเบฒเบเปเบเบซเบเบถเปเบเบเบปเบเบฅเบฐเบเบฝเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบฅเปเบฒเบเบตเปเบเบฑเบเบเบนเป.
static เบฎเบนเบเปเบเบ เบเบปเบเบฅเบฐเบเบฝเบ
เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบปเบเบเบตเปเปเบกเปเบเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเบธเบเปเบเบฅเปเบเบตเปเบเปเบฒเบเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ:
$(SPECIAL_MODULES).o : %.o : %.cpp
$(CXX) -c $(input) -o $(output)
เบเบตเปเบเบญเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเปเบเปเบเบฑเบเปเบเบฅเปเปเบ "$(SPECIAL_MODULES).o".
เบเบตเปเปเบกเปเบเบชเปเบงเบเปเบซเบเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบ GNU เปเบฎเบฑเบเปเบซเป; เบเบปเบเบฅเบฐเบเบฝเบเบเบญเบ foreach (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป) เปเบกเปเบเปเบเบตเปเบกเปเบเบตเบก
เบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบฝเบงเบเบฑเบ.
เบเบฒเบเบฅเปเบงเบ เปเปเบฒ เบเบปเบเบฅเบฐเบเบฝเบ
syntax เบฎเบนเบเปเบเบเบเปเบฒเบเปเบเบดเบเปเบกเปเบเบกเบตเบญเปเบฒเบเบฒเบเบเบฝเบเบเปเบเบตเปเบเบฐเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบ, เปเบเป
เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ. Makepp เบชเบฐเบซเบเบญเบเปเบเบตเปเบกเปเบเบตเบก
syntax เบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบ: เบเบฐเปเบซเบเบ ":foreach" เบชเปเบฒเบฅเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ.
target_expression : dependency_expression : foreach file-list
เบซเบธเปเบ
เบเบฐเปเบเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบ foreach เปเบกเปเบเบเบฝเบเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเปเบเบทเบเบเปเบฒเบเบฑเบ
เปเบเบซเบฒเบฅเบฒเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเบฅเป. เบเบปเบงเบขเปเบฒเบ, เบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเบญเบ
makepp เบงเบดเบเบตเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบฑเบเบซเบกเบปเบ .c เปเบเบฅเป. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบกเบตเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบ .c เปเบเบฅโเปโเบเบตเปโเบเปเบฒเบโ
เบเปเบญเบเบเบฒเบเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
#เบเบตเปเบเบทเบเบปเบเปเบเบเบเบตเปเปเบเปเปเบเปเบเบฑเบเบเบธเบเบขเปเบฒเบ:
%.o : %.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
%.o : %.c : foreach $(SPECIAL_MODULES)
$(CC) $(SPECIAL_CFLAGS) -c $(input) -o $(output)
เบเบฒเบเบเปเบฒเปเบเปเบเบตเปเบกเบตเบญเปเบฒเบเบฒเบเบซเบผเบฒเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบ foreach เปเบเปเบเบฐเปเบซเบเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบปเบงเปเบ
"$(foreach)" เบเบทเบเบเบฑเปเบเบขเบนเปเปเบเปเบเปเบฅเบฐเปเบเบฅเปเบเบตเปเบเบปเบเบเบฑเบเบฅเบฒเบเบเบฒเบเปเบเบฅเปเปเบฅเบฐเปเบเบปเปเบฒเบซเบกเบฒเบเปเบฅเบฐ
เบเบฒเบเบชเบฐเปเบเบเบเบปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบทเบเบเบฐเปเบกเบตเบ. เบฅเบฒเบเบเบทเปเปเบเบฅเปเบญเบฒเบเบกเบตเบเบปเบงเปเบเบ, เปเบฅเบฐเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบตเป
เบเบปเบเบเบฑเบเปเบเบฅเปเบเบตเปเบเบฑเบเบเปเปเบเบฑเบเบกเบตเปเบเบทเปเบญ เปเบเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเป (เปเบเบดเปเบ "Wildcards" เปเบ
makepp_rules).
เบเบตเปเปเบกเปเบ syntax unwieldy เปเบเปเบกเบฑเบเบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบตเปเบชเบธเบ, เปเบเบฒเบฐเบงเปเบฒเบเบปเบงเปเบ "$(foreach)"
เบญเบฒเบเบเบฐเบเบฒเบเบปเบเปเบเบเบฒเบเปเบเบเปเปเบเบฒเบกเปเบเบเบฒเบเบชเบฐเปเบเบ. เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเปเบกเปเบเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ a
เบเปเบฅเบฐเบเบตเบเบดเปเบชเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบ foreach; เบเบปเบโเบฅเบฐโเบเบฝเบโเบฎเบนเบโเปเบเบโ
%.o : %.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
เปเบเบปเปเบฒเบเบฑเบ:
$(patsubst %.c, %.o, $(foreach)): $(foreach): foreach *.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
(เปเบโเบเบงเบฒเบกโเปเบเบฑเบโเบเบดเบ, เบกเบฑเบโเปเบเปโเบเบทเบโเบเปเบฝเบโเปเบเบฑเบโเบเบฐโเบกเบฒเบโเบเบตเปโเบขเบนเปโเบเบฒเบโเปเบ.)
เปเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบงเบดเบเบตเบเบตเปเปเบเบปเปเบฒเบเบฐเปเบเปเบเบฐเปเบซเบเบ ":foreach" เบเปเบญเบเบเบตเปเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเปเปเปเบกเปเบ
เบเบฝเบเบเป, เบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเบกเบตเบเบฒเบเบญเบฑเบ .c เปเบเบฅเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเปเบเบปเบงเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเบเบฐเบเบดเบ
เปเบเบดเปเบเปเบเปเปเบงเบฅเบฒเปเบเบฑเบเปเบเบฅเปเบเปเบญเบเบเปเปเบกเบนเบเบเปเบงเบ a .k เบเบฒเบเบเบฐเบซเบเบฒเบ. เบเปเบฒเบเบเปเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเปเบซเบผเบปเปเบฒเบเบฑเปเบ .c เปเบเบฅเปเบเบตเปเบกเบต a
เบเบฒเบเปเบฅเบทเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเบเปเบงเบฒเบเบปเบเบเบฐเบเบด .c เปเบเบฅเปเบเบตเปเปเบเบฑเบเปเบซเบผเปเบเบเปเบฒเบกเบฐเบเบฒ
เปเบเบฅเป. เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
# เบเบปเบเบฅเบฐเบเบฝเบเบชเบณเบฅเบฑเบเปเบเบฅเป .c เบเบณเบกเบฐเบเบฒ:
%.o : %.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
# เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบชเปเบฒเบเปเบเบฅเป .c เบเบฒเบเปเบเบฅเป .k:
%.c : %.k
$(preprocessor) $(input) > $(output)
# เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบชเปเบฒเบเบเบดเปเบชเบเบชเปเบฒเบฅเบฑเบเปเบเบฅเป .c เบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฒเบเปเบเบฅเป .k:
$(foreach:%.k=%.o): $(foreach:%.c=%.k): foreach *.k
$(CC) $(SPECIAL_CFLAGS) -c $(input) -o $(output)
(เบเบตเปเปเบเป syntax เบญเปเบฒเบเบญเบตเบเบเบฒเบเบเบปเบเปเบเบเบเบตเปเบซเบเปเปเปเบฅเบฑเบเบเปเบญเบเบเบงเปเบฒเบเบฒเบเปเบเบซเบฒ
"patsubst" เบขเปเบฒเบเบเบฑเบเปเบเบ.)
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบฎเบฑเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเปเบเบทเปเบญเบเปเบฝเบเบเปเบฒเบเบญเบเบเบปเบงเปเบ ("CFLAGS" เปเบเบเบตเป
เบเปโเบฅเบฐโเบเบตโ) เบเบฒเบโเบเบฑเปเบโเบกเบฑเบโเปเบเบฑเบโเบเบฒเบโเบชเบฐโเบเบงเบโเบซเบผเบฒเบโเปเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบเบปเบงโเปเบโเปเบเบปเปเบฒโเบซเบกเบฒเบโเบชเบฐโเปเบเบฒเบฐโ.
Legacy แแ แแ แแ เบเบปเบเบฅเบฐเบเบฝเบ
เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเปเปเบเบเปเบฒเบเบซเบฅเบฑเบ, makepp เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเปเปเบเปเบฒเบเปเบเบเปเบเบปเปเบฒ.
.suffix1.suffix2:
เบซเบธเปเบ
เปเบเบปเปเบฒเบเบฑเบ
%.suffix2: %.suffix1
เบซเบธเปเบ
เปเบเปเบซเบผเบฒเบเบเบฒเบเบเบตเปเบเบฐเบเบทเป. (เบเบณเบเปเปเบเปเบฒเบเบญเบฑเบเปเบเบกเบฒเบเปเบญเบ?) เปเบเบเบเบปเบเบเบฐเบเบด, เบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบเบฒเบเบปเบเบเบถเปเบ
เปเบ makefile เบกเปเบฅเบฐเบเบปเบเปเบเบฑเปเบเบเบตเป:
.co:
$(CC) $(CFLAGS) -c $*.c -o $*.o
เปเบเบดเปเบเปเบกเปเบเปเบเปเบเบฝเบเปเบเบปเปเบฒเบเบฑเบ
%.o : %.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
เบเบฒเบเบเบฑเบเบเบทเบ เบเบปเบเบฅเบฐเบเบฝเบ
เปเบกเบทเปเบญเบกเบตเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบงเบดเบเบตเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบฅเป, makepp เปเบเปเบเบฑเปเบเบเบญเบเบเปเบฒเบเปเปเบเบทเปเบญ
เบเปเบฒเบเบปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฐเบเปเบฒเปเบเป.
ยท เบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบฐเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฑเบเปเบเบเบเบตเปเบเบฑเบเปเบเปเบเบเบฑเบเปเบเบเบฒเบเบชเปเบฒเบเปเบเบฅเป.
ยท เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบ เปเบฅเบฐเบเบปเบเบฅเบฐเบเบฝเบเบเบญเบ foreach เบเบตเปเบกเบต wildcards เบเปเปเปเบเบตเบ override เบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฐเปเบเปเบ. เบเบฑเปเบเบเบฑเปเบ
เบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฑเบเปเบเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเปเปเบเบปเบเปเบงเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบ. (เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเบเป
เบเบฒเบเปเบเปเบเบฐเปเบซเบเบ ":foreach" เบเปเปเปเบเปเปเบฎเบฑเบเปเบซเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบ. เบกเบฑเบเบเปเบญเบเบกเบต a
wildcard (เปเบเบฑเปเบ "*" เบซเบผเบท "?") เปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบทเปเปเบเบฅเปเปเบเบเบฐเปเบซเบเบ ":foreach". เบเปเบฒเบกเบฑเบเปเบเบฑเบ
เบเบฝเบเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบตเปเบเบฑเบเปเบเบเบเบญเบเปเบเบฅเป, เบกเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฑเบเปเบเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ
เปเบเบฅเป.)
ยทเปเบกเบทเปเบญเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเบฑเบเปเบเปเบเบกเบฒเบเบฒเบ makefiles เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบ "เปเบเปเบเบงเปเบฒ"
makefiles override เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบ makefiles "เปเบเบเบงเปเบฒ". "เปเบเป" เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ makefile
เบเบฑเปเบเบขเบนเปเปเบเปเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบฅเปเบฒเบเบฑเบเบเบฑเปเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบต (ie, เบเบทเปเปเบเบฅเปเบเบญเบ
เปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเป makefile เบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบกเปเบเบชเบฑเปเบเบเบงเปเบฒ). เบเปเบฒเบเบตเป
เบเปเปเปเบเปเบเปเบฒเปเบเบ makefiles, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบ makefile เบเบตเปเบเบทเบเปเบซเบฅเบ
เบฅเปเบฒโเบชเบธเบโเปเบเปโเบเบทเบโเบเปเบฒโเปเบเปโ.
เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเปเบฒเปเบเปเบเบฑเบเปเบเบฅเปเบเบฑเบเบซเบกเบปเบเปเบเบเบญเบเบเปเบฒเบ
เบเบปเปเบเปเบกเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฑเบเบซเบกเบปเบเปเบเบเบฝเบเปเบเป makefile เบฅเบฐเบเบฑเบเปเบเบดเบ, เปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบ override เบกเบฑเบเปเบ
makefile เบฅเบฐเบเบฑเบเบเปเปเบฒ. เบเบปเบงเบขเปเบฒเบ, makefile เบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบญเบเบกเบต:
%.o : %.c : foreach **/*.c
$(CC) $(CFLAGS) -c $(input) -o $(output)
เปเบฅเบฐเบเปเบฒเบเบชเบฒเบกเบฒเบเบกเบต makefile เปเบเบซเบเบถเปเบเบเบญเบ subdirectories เบเบตเปเปเบงเบปเปเบฒเบงเปเบฒ:
%.o : %.c
$(CC) $(SPECIAL_CFLAGS) -c $(input) -o $(output)
ยท เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบกเบตเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบฒเบเบญเบฐเบเบธเบกเบฒเบเบชเบฑเปเบเบเบงเปเบฒเปเบกเปเบเบกเบฑเบเบซเบผเบฒเบเบเบงเปเบฒเบฎเบนเบเปเบเบเบญเบทเปเบเป
เบเบปเบเบฅเบฐเบเบฝเบ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเปเบฒเบเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบเปเปเปเบเบเบตเป (เบญเบตเบเปเบชเปเบเบปเบงเบขเปเบฒเบเบเบฒเบ
Linux kernel):
%.s: %.c
$(CC) -s $(input) -o $(output)
%.o: %.s
$(AS) $(input) -o $(output)
%.o: %.c
$(CC) -c $(input) -o $(output)
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบชเปเบฒเบ "xyz.o", เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเบฅเป ".s" เบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ
เปเบฅเปเบเบเปเบฒเบเบเบปเบงเบเบฐเบเบญเบเปเบเบเปเบเปเบชเบญเบเบเบปเบ เบเบณ เบญเบดเบ, เบซเบผเบทเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบซเบฒ a
เปเบเบฅเป ".o" เปเบเบเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบชเบธเบเบเปเบฒเบ. เบเบปเบเบฅเบฐเบเบฝเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบกเบฑเบเปเบเบฒเบฐเบงเปเบฒเบกเบตเบซเบเปเบญเบ
เบเบฑเปเบ เบเบญเบ เปเบ เบฅเบฐ เบเบปเบ เบเปเบญเบ เปเบชเป เบเบญเบ inference (เบซเบเบถเปเบ เปเบเบ เบเบตเป เบเบฐ เปเบเบฑเบ เบชเบญเบ).
ยท เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเปเปเบกเบฒเปเบ makefile override เบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเบเบตเปเบเปเบญเบเบซเบเปเบฒเบเบตเป. (เบเบตเปโเปเบกเปเบ
เบเบฑเบเบเบทเบเปเบเบเปเบญเบเบเบฒเบ GNU เปเบฎเบฑเบเปเบซเป.) เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเบงเบเบงเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบปเปเบงเปเบเบเบญเบเบเปเบฒเบ
เบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบฅเบฐเบเบปเบเบฅเบฐเบเบฝเบเบชเบฐเปเบเบฒเบฐเบเบญเบเบเปเบฒเบเบเปเปเบกเบฒ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
%o: %c # เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบเบปเปเบงเปเบ.
เบเบฒเบเบเบฐเบเบดเบเบฑเบ
special_%.o: special_%.c # เบเบปเบเบฅเบฐเบเบฝเบเบเบดเปเบชเบเบชเปเบฒเบฅเบฑเบเปเบเบฅเปเบเบตเปเบกเบต a
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ # "special_" เบเปเบฒเบเปเบฒเบซเบเปเบฒ.
เบเบปเบเบฅเบฐเบเบฝเบ เบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบ
เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฐเบซเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเบเบฑเบเปเบเบเบงเบดเบเบตเบเบฒเบ makepp เบเบฐเบเบดเบเบฑเบ
เบเบปเบเบฅเบฐเบเบฝเบ. เบเบปเบงเปเบฅเบทเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบทเบเบฅเบฐเบเบธเปเบเบฑเบ ":optionname value", เบเปเปเบงเปเบฒเบเบฐเบขเบนเปเปเบเปเบเบงเบเบตเปเบกเบต
เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เบซเบผเบทเปเบเปเบเบงเบเปเปเปเบ.
เบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบชเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบเบญเบฒเบเบเบฐเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเปเบเบฝเบงเบเบฑเบ
makefile เบเบฑเบ makepp เปเบฅเบฐเปเบฎเบฑเบเปเบเบเบเบฑเปเบเปเบเบตเบก. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
เปเบเบปเปเบฒเปเบฒเบ : เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช
: เบฅเบฒเบเปเบเบฑเบ target_newer
เบซเบธเปเบ
เบเบฐเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบตเบเบฑเบ Unix เปเบเบเบเบฑเปเบเปเบเบตเบก, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเบตเบเบงเบฒเบกเบซเบกเบฒเบเปเบชเบฑเปเบ ": เบฅเบฒเบเปเบเบฑเบ".
เปเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบเบฐ, เปเบฅเบฐเบเปเบฒเบชเบฑเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบเปเปเปเบฎเบฑเบเบซเบเบฑเบเปเบฅเบตเบ.
:build_cache /path/to/build/cache
เปเบเบปเปเบฒเปเบฒเบ : เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช
: build_cache /put/cache/files/over/there
เบซเบธเปเบ
เบฅเบฐเบเบธเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒ build cache เบเบตเปเบเบฐเปเบเปเบชเปเบฒเบฅเบฑเบเปเบเบฅเปเบเบตเปเบเบฐเบฅเบดเบเปเบเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเป. เบเบตเป
overrides เบเบปเบเบเบฐเบเบปเบเบเบญเบเบเปเบฒเบชเบฑเปเบ "build_cache" เบซเบผเบทเบเปเบฒเบชเบฑเปเบ "--build-cache".
เบเบฒเบเปเบฅเบทเบญเบเปเบเบง, เบเปเบฒเบกเบต, เบชเปเบฒเบฅเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเป. เปเบเบดเปเบ makepp_build_cache เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบ
เปเบเบช.
เบเปเบฒเบเปเบฒเบเบฅเบฐเบเบธ "none" เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเปเบชเบฑเปเบเบเบฒเบ, เบเปเบฒเบเบเบดเบเบเบฒเบเบชเปเบฒเบ cache เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป
เบเบปเบเบฅเบฐเบเบฝเบเบชเบฐเปเบเบฒเบฐ. เบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเปเบชเบเบเบทเปเบเบเบตเปเบเบดเบชเบเปเบเบฑเบเปเบเบฅเปเบเบตเปเบเปเบฒเบ
เบฎเบนเปเบงเปเบฒเบเปเปเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐ cache, เบเปเปเบงเปเบฒเบเบฐเบเปเบญเบเบงเปเบฒเบเปเบฒเบเปเบเปเปเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบฐเบเปเปเปเบเบฑเบ
เบเบทเบเบเปเบฒเปเบเปเบเบทเบเปเบซเบกเปเบซเบผเบทเบเปเบญเบเบงเปเบฒเบเบงเบเบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบงเบเบฑเปเบเบเบฑเปเบเบกเบฑเบเบเปเปเบเบธเปเบกเบเปเบฒเบเบตเปเบเบฐเปเบเบฑเบเบเบงเบเบกเบฑเบเปเบงเป.
:build_check build_check_method
เปเบเบปเปเบฒเปเบฒเบ : เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช
: build_check target_newer
เบซเบธเปเบ
เบญเบฑเบเบเบตเปเบเบญเบ makepp เบงเปเบฒเบเบฐเปเบเปเบงเบดเบเบตเปเบเปเบเบทเปเบญเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเปเบเบปเปเบฒเปเบฒเบเบเปเบญเบเบเบทเบเบชเปเบฒเบเปเปเปเบซเบผเบทเบเปเป.
เปเบเบดเปเบ makepp_build_check เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก. เบเบตเป overrides เบเบปเบเบเบฐเบเบปเบเบเบญเบ
เบเปเบฒเบชเบฑเปเบ "build_check" เบซเบผเบท "--build-check-method" เบเบฒเบเปเบฅเบทเบญเบเปเบเบงเบเปเบฒเบชเบฑเปเบ, เบเปเบฒเบกเบต, เบชเปเบฒเบฅเบฑเบ
เบเบปเบโเบฅเบฐโเบเบฝเบโเบเบตเปโ.
:env เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเป ...
เปเบเบตเปเบกเบเบฒเบเบเบถเปเบเบเบฑเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบกเบตเบเบทเป. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเปเบเปโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโ
เปเบเบเบเปเบฒเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบปเปเบฒเบซเบกเบฒเบเปเบกเปเบเบเบทเบงเปเบฒเบฅเปเบฒเบชเบฐเปเบซเบก, เบเปเบฒ
build_check method เบเบฑเปเบ dictates. (เบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบเบเบปเบเปเบงเบฑเปเบเบชเปเบฒเบฅเบฑเบ
target_newer เปเบเบปเบฒเบฅเบปเบเบญเบฑเบเบเบตเป.)
VARIABLE เบญเบฒเบเบเบฐเบขเบนเปเปเบเบฎเบนเบเปเบเบ "เบเบทเปเปเบเบฅเปเปเบ PATH_VARIABLE" (เปเบเบงเบปเบเบขเบทเบก), เปเบเบเปเบฅเบฐเบเบตเบเบตเป
เปเบเบปเปเบฒเปเบฒเบเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเบฅเปเบฒเบชเบฐเปเป เบเปเบฒเปเบเปเบฃเบฑเบเบเปเบฃเบตเบเบณเบญเบดเบเบเบฒเบเปเบเบทเปเบญเบเปเบฒเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบ
เบเปเบฒเบเบญเบ PATH_VARIABLE เปเบเบดเปเบเบกเบตเบเบทเปเปเบเบฅเปเปเบเบเบเปเบฒเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบซเบผเปเบฒเบชเบธเบ.
เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบชเปเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบซเบกเปเปเบกเบทเปเบญ PATH_VARIABLE เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบ
เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบ.
: เบเบฑเบเบชเบปเปเบ เบเปเบฒเบชเบฑเปเบ ...
เบเบฑเบเบเบดเบเปเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบณเบเบญเบเปเบเบฐ (เปเบเปเบเปเปเปเบกเปเบเบเบณเบชเบฑเปเบ Perl เบซเบผเบทเบเบณเบชเบฑเปเบ Perl) เปเบ "sh -c '...'"
เปเบฅเบฐเบเปเบฒเบซเบเปเบฒเบเปเบงเบเบเปเบฒเบชเบฑเปเบ, เปเบเปเบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบปเปเบฒเบซเบกเบฒเบเบเปเปเบเบถเปเบเบเบฑเบเบเปเบฒเบชเบฑเปเบ.
เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบชเบปเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบฅเบฐเบเบปเบเบเบฒเบเบเบฑเบเปเบเบงเบงเบฝเบ, เปเบเปเบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบ
เบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบดเบง, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบเปเบเบง
เบฅเบฐเบเบปเบเปเบเปเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบซเบกเบปเบ.
:เบฅเบงเบก file_or_pattern
เบเบปเบเบฅเบฐเบเบฝเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบฒเบก compiler:
%.o : %.c
: เบฅเบงเบก %.d : เบฅเบฒเบเปเบเบฑเบ C
gcc -MD -c ...
%.o : %.c
: include %.u : เบฅเบฒเบเปเบเบฑเบ C# IBM เปเบเปเบเบณเบเปเปเบเปเบฒเบเบเบตเปเปเบเบเบเปเบฒเบ
xlc -M -c ...
sub dependify { # เบเปเบฝเบเบเบฒเบเบชเบปเบเบเบฐเบเบฒเบเบญเบ Microsoft เปเบซเปเปเบเบฑเบเบฎเบนเบเปเบเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบ
s/\$/\$\$/g;
s/(เปเบฒเบเปเบซเบ: เบฅเบงเบกเบเบฑเบเปเบเบฅเป: *)?(.+?)\r?\n/$1 ? "'$2' " : "'".f_output()."': "/e;
}
%.o : %.c
: เบฅเบงเบก %.d : เบฅเบฒเบเปเบเบฑเบ C
cl -showIncludes -c ... >$(stem).d
&sed &dependify -o +<$(stem).d
เบเบฒเบ compilers (icc เบเบญเบ Intel เบเบทเบเบฑเบเบเบฑเบ gcc เบเปเบฒเบเปเบเบดเบ, เบซเบผเบท IBM's xlc) เบชเบฒเบกเบฒเบเบเบฐเบฅเบดเบ dependency.
เปเบเบฅโเปโเปเบโเบเบฒเบโเบเบดเบโ. เบเบฑเปเบเปเบกเปเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบงเบเปเบเบปเบฒเบฅเบงเบเบฅเบงเบก, เบเบงเบเปเบเบปเบฒเบเบฝเบ makefile เบเบตเป makepp เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป
เบฅเบงเบก. เบเบฐเปเบซเบเบเบซเบผเบฒเบเบเบงเปเบฒเปเบเบทเปเบญเบเบชเบฐเปเบเบเบเบญเบ makepp เปเบกเปเบเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบ 100%
เบเบทเบเบเปเบญเบ, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเปเบเบปเปเบฒเบกเบฒเปเบเป.
เบเบฒเบโเปเบฅเบทเบญเบโเบเบตเป harnesses เบงเปเบฒโเปเบโเบงเบดโเบเบตโเบเบฒเบโเบเบดโเปเบชเบโ: เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเปเบเบฅโเปโเบเปเปโเบกเบตโ, เปเบเบฑเปเบโ:โ
เปเบเบเบเบปเบเบเบฐเบเบดเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบต 1, เบเบฒเบเบชเบฐเปเบเบเบเบปเบเบเบฐเบเบดเปเบเบตเบเบเบทเปเบ. เปเบเปเบเปเบฒเปเบเบฅเปเบกเบตเบขเบนเป, เบเปเปเบกเบต
เบเบฒเบเบชเบฐเปเบเบเปเบเบตเบเบเบถเปเบ (เบเบถเปเบเปเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบฅเบฐเบเบธเบฅเบฒเบเปเบเบฑเบเบญเบฑเบเบชเบฐเบฅเบดเบเบฐเบเปเบฒเบเปเบเบดเบ -- เบเปเปเปเบกเปเบเบเบฒเบเบชเบฐเปเบเบเบเบปเบ
เบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโเบเปเบฒโเปเบฅเบตเปเบกโเบเบปเปเบ dumb เบเบญเบ timestamp เปเบฅเบฐโเบเบฐโเบซเบเบฒเบโ)โ. เปเบเบเบเบตเปเบเบฐ, เบกเบฑเบเบเบฐเบเบญเบเบกเบตเปเบเบฅเป, เบเปเบญเบ
เบเบฐโเบเบดโเบเบฑเบโเบเบปเบโเบฅเบฐโเบเบฝเบโ. เบซเบผเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ, เบกเบฑเบเบฅเบทเบกเปเบเบเปเปเบเบฒเบกเบกเบฑเบ
เบญเปเบฒเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เปเบเบทเปเบญเบเบเบฒเบเปเบเบฅเปเบญเบฒเบเบเบฐเบฅเปเบฒเบชเบฐเปเบซเบก. เปเบเบเบเบตเปเบเบฐเบกเบฑเบเบญเปเบฒเบ
เปเบเบฅเปเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เบเปเบฒเบกเบฑเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบกเบตเบเปเปเบกเบนเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเบฑเบเบชเบฐเปเบซเบก.
เบเปเบฒเปเบเบทเบญเบ: เบญเบฑเบเบเบตเปเปเบกเปเบเบเปเปเบซเบเปเบฒเปเบเบทเปเบญเบเบท. เปเบเบฅเปเบเบตเปเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบฅเบดเบเปเบเบเบซเบผเบฒเบ
เบเบปเบโเบฅเบฐโเบเบฝเบโเบเบตเปโเบกเบฑเบโเปเบเบฑเบโเบเบฒเบโเปเบเบดเปเบโเบเบฒโเบญเบฒโเปเบชโ. เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เบเบนเปเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบฑเบเบซเบกเบปเบ
เบกเบฑเบเบเบฐเบเบญเบเบกเบตเบเปเบญเบเบเบฒเบเปเบ, เปเบเบดเปเบ makepp เบกเบฑเบเบเบฐเบเปเปเบชเบปเบเปเบ. เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบซเบเปเบฒเปเบเบทเปเบญเบเบท
เบเบฐเปเบซเบเบเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบเบตเป patch compiler เปเบเปเปเบเบเบฝเบเปเบเปเบเปเบญเบ. เปเบเป
เบฅเบฒเบเบฒเปเบกเปเบเบงเปเบฒ makepp เบชเบดเปเบเบชเบธเบเบฅเบปเบเปเบเบดเปเบเปเบเบฅเปเบซเบผเบฒเบ, เปเบเบดเปเบเปเบเปเปเบงเบฅเบฒ.
เบกเบตเบเบฒเบเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเปเบญเบปเบฒเบเปเบฒเบเบฐเปเบซเบผเบ "#include" เบญเบญเบ เปเบฅเบฐ เปเบเบฅเปเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ:
เบกเบฑเบเบเบฐเบเบฑเบเบเบทเบเบเปเบฒเบงเปเบเบดเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบฒเบเบเบฑเปเบเบชเบธเบเบเปเบฒเบ, เปเบกเบทเปเบญเบกเบฑเบเปเบกเปเบ
เบเปเบญเบเบเบฒเบ. เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบง, เบเปเบฒเบเบเปเบญเบเปเบเปเปเบเปเบเบฅเป dependency เปเบเบทเปเบญเปเบญเบปเบฒ dependency
เบเบถเปเบโเบเปเปโเบชเบฒเบกเบฒเบโเบเบฑเบเบฅเบธโเปเบเปโเบญเบตเบโเบเปเปโเปเบ.
เบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเปเบเปเบเบฑเบ build cache เปเบเปเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบถเบเปเบเบฅเปเบเบฒเบเบเปเบญเบเบเบฑเปเบ
เบเปเบญเบเบเบฒเบเบฎเบนเปเบเบธเบเบขเปเบฒเบเบเปเบฝเบงเบเบฑเบเปเบเบฅเป. เปเบเปเปเบเบฅเปเบเบตเปเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบกเปเบเบเบถเปเบเบเบฑเบเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบฑเปเบ
เปเบเบฅเป makepp เบฎเบฝเบเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบฒเบเบญเปเบฒเบเบกเบฑเบ. เบเบฒเบเบเบทเปเบเบเบฑเบเบงเบปเบเบงเบฝเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบเปเปเบเบปเบเบเบฐเบเบด
เปเบเบฑเบเปเบเปเบเปเปเบเบฅเบฐเบเบปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเปเบเบทเปเบญเบเบทเปเบเป. เบเบตเปเปเบกเปเบเบเปเปเบเบปเบเปเบงเบฑเปเบเปเบเบฒเบฐเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบซเบกเป
เปเบฅเบฐเบเบฒเบเบญเปเบฒเบเปเบเบฅเป dependency เบเบทเบเปเปเปเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบทเบเบเปเบญเบเบญเบตเบเบเบฑเปเบ.
เบเปเบฒเบเปเบฒเบเบชเปเบฒเบเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบญเบเบเปเบฒเบ, makepp เบเบฐเปเบฅเบทเบญเบเปเบญเบปเบฒเปเบเบฅเปเบเบตเปเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบฒเบ
1 repository เบเบตเปเบเบฐเบเบญเบเบเปเบงเบเบซเบเบถเปเบ. เบเบตเปเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฒเบเปเบเบฅเปเบญเบทเปเบเป, เบเปเบญเบเบเบตเปเบกเบฑเบเปเบเปเปเบงเบฅเบฒเบเบต 1
เบเปเบงเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบเบฒเบเปเบงเป. เบเบตเปเปเบกเปเบเบเบตเบเปเบงเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ, เบเปเบญเบเบเบตเปเบเบฒเบเปเบเบ
เบฅเบฒเบเปเบเบฑเบ, เบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเปเบเบฅเปเปเบเป.
:เปเบญโเบเบฒเบโเบชเบธเบโเบเปเบฒเบ
เปเบเบตเบเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเปเบเบตเบ, เปเบเบฑเปเบ:
%.foo foo%.bar: :last_chance
&เบชเบฝเบ $@ -o $@
&cp $(เบเบปเบเปเบเปเบฎเบฑเบ)
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเปเบฒเบเบงเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเบเปเปเบกเบตเบเบญเบเปเบเบเบเบตเปเบเปเบฒเปเบเบฑเบ,
เปเบเบปเปเบฒเปเบฒเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฐเบเปเปเบเบปเบเบเบฑเบเบเบฑเบเบเบฑเบ $(wildcard) เบซเบผเบทเบเบปเบเบฅเบฐเบเบฝเบเบฎเบนเบเปเบเบเปเบงเบฑเปเบเปเบชเบเปเบเป
เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบญเบทเปเบเปเบเปเบเบปเบเบเบปเบงเบขเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเปเบเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบเบชเบฐเปเบเบฒเบฐ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒ "--rm-stale" เบเบทเบเบฅเบฐเบเบธ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเปเบซเบฅเบทเบญเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ
makepp run เบเบฐเบเบฒเบเบปเบเบงเปเบฒ stale เบเปเบฒเบงเบดเบเบตเบเบฝเบงเบเบตเปเบเบฐเบชเปเบฒเบเบกเบฑเบเปเบกเปเบเบเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบชเบธเบเบเปเบฒเบ
เบเบตเปเบเบฑเบเบเปเปเบเบฑเบเปเบเปเบเบปเบเบเบปเบงเบขเปเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบทเปเบญ, เบเบถเปเบเปเบเบฑเบเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบฒเบฐเบงเปเบฒ
เบเบฒเบโเบเปเปโเบชเปเบฒเบโเบเบฐโเบฅเบปเปเบกโเปเบซเบผเบงโเบซเบผเบฒเบโเบชเบฐโเบซเบกเปเปเบฒโเบชเบฐโเปเบซเบกเบตโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบกเบฑเบ erroneously เบญเบตเบโเปเบชเปโเบเบปเบงโเปเบเบโเบเบตเปโเบเบฐโ
เบเบฑเบเบเบนเปเปเบเบปเปเบฒเปเบฒเบเบเบฒเบเบเบฒเบเปเบฅเปเบเบเปเบญเบเปเปเบฒ.
เบเบฒเบเปเบฅเบทเบญเบ ":last_chance" เบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบฎเบฝเบเบฎเปเบญเบเบเบงเบฒเบกเบชเบปเบเปเบเบเปเปเบเบฑเบเบเบถเบเบเบดเบเปเบฒเบเบดเปเบชเบเบเบญเบ
เบเบปเบเบฅเบฐเบเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเบเบเบนเป wildcards.
:parser เปเบกเปเบเบปเบ
เบเบตเปเบเบญเบ makepp เบงเบดเบเบตเบเบฒเบเปเบเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบงเบเบชเบญเบ (เบฅเบงเบกเบเบฑเบ) เปเบเบฅเป. เบเบปเบเบเบฐเบเบดเปเบฅเปเบง,
makepp เบเบฒเบเปเบเบปเบฒเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบกเบฑเบเปเบเบเบญเบตเบเปเบชเปเบเปเบฒเบเบตเปเบขเบนเปเปเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบกเบฑเบเปเบญเบ (เปเบเบดเปเบ
makepp_scanning เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ). เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒ makepp เบเบฒเบเปเบเบปเบฒเบเบดเบ, เบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบญเบเบเบฒเบ
เบเบตเปเบเบญเบเบเบปเบงเบงเบดเปเบเบฒเบฐเบขเปเบฒเบเบเบฐเปเบเปเบ, เปเบเบฑเปเบเบเบตเป:
%.o: %.abc
: parser c_compilation
เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบขเบนเปโเบเบตเปโเบเบตเปโ
เบญเบฑเบเบเบตเปเปเบฎเบฑเบเปเบซเป makepp เบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบ เปเบฅเบฐเบชเบฐเปเบเบเปเบเบเบเบฝเบงเบเบฑเบเบเบฑเบ C/C++
เบเปเปเบชเปเบฒเบเบเปเบฒเบชเบฑเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบเปเปเปเบเปเบฎเบฑเบเบฎเบนเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบก C.
parser เปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเปเบฒเบชเบฑเปเบ. เบเปเบฒเบเปเบฒเบเบเปเปเบฅเบฐเบเบธเบเบปเบงเปเบฅเบทเบญเบ ":parser",
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบญเบดเบเบเบญเบเปเบเปเบฅเบฐเบเปเบฒเบชเบฑเปเบเบเบทเบเบเบงเบเบชเบญเบ. เบเบปเบงเบขเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบซเบผเบทเบเบฒเบเปเบเบทเปเบญเบกเบเปเป
เบเปเบฒเบชเบฑเปเบ, makepp เบเบฐเปเบเป "c_compilation" parser; เบซเบผเบทเบเปเบฒเบเปเบฒเบชเบฑเปเบเปเบเบดเปเบเบเบทเบงเปเบฒ
GNU variant, "gcc_compilation". เบเปเบฒเบเปเปเบเบปเบเบเบปเบงเบงเบดเปเบเบฒเบฐ, เบกเบฑเบเปเบเปเบเบปเบงเบงเบดเปเบเบฒเบฐ "none". เบชเปเบฒเบฅเบฑเบ
เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเป, เบซเบผเบทเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฝเบ parser เบเบญเบเบเปเบฒเบเปเบญเบเบซเบผเบทเบเปเบฝเบ makepp's
เบเบปเบงเบงเบดเปเบเบฒเบฐเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบดเปเบ makepp_scanning.
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบตเปเปเบเปเบเบฑเบเบเบธเบเปเบเปเบฒเบชเบฑเปเบเปเบเบเบปเบเบฅเบฐเบเบฝเบ, เปเบเบดเปเบเบญเบฒเบเบเบฐเบเปเปเปเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ:
%.o: %.c : parser c-compilation
@echo 'เบเบฒเบเบชเปเบฒเบ $(output)'
@funny_cc...
เบเบตเปเบเบฑเบเบเบฐเบเบตเบเบงเบฒเบกเบซเบกเบฒเบ "echo" เปเบเบฑเบ compiler เปเบฅเบฐ deduce เบเบฒเบเปเบเปเบเบฝเบเบเบญเบเบเบปเบ 'เบเบฒเบเบเปเปเบชเปเบฒเบ
mymodule.o' เปเบเบฑเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช implicit. เบเบตเปเบเบฐเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบฎเปเบญเบเบเบธเบเบงเปเบฒเบกเบฑเบ
เบเปเปเบฎเบนเปเบงเบดเบเบตเบชเปเบฒเบเปเบเบฅเปเบเบฑเปเบเบเปเบฒเบง. เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเบเบตเป, เบเปเบฒเบเบเบฐเบเบตเบเบงเปเบฒ
"register_parser". เบขเบนเปเบเบตเปเบเบฑเปเบเปเบเบปเปเบฒเบเบญเบเบซเบฒเบเบณเบญเบฐเบเบดเบเบฒเบเปเบเบงเปเบ เปเบกเปเบเบปเบ เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบกเบญเบเปเบซเปเบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบ
classname เบซเบผเบทเบเบทเปเบเบฑเบเบเบฑเบ.
:เบฅเบฒเบเปเบเบฑเบ signature_method
เปเบเบปเปเบฒเปเบฒเบ : เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช
: เบฅเบฒเบเปเบเบฑเบ md5
เบซเบธเปเบ
เบญเบฑเบเบเบตเปเบเบญเบ makepp เบงเปเบฒเบเบฐเปเบเปเบญเบฑเบเปเบเบญเบฑเบเปเบถเปเบเปเบเบทเปเบญเบเบณเบเบปเบเบงเปเบฒเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเปเบเปเบฝเบเปเบเบเบซเบผเบทเบเปเป.
เปเบเบดเปเบ makepp_signatures เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก. เบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบฅเบงเบกเบขเบนเปเปเบ
เบเบฒเบเปเบเบเบขเบฒเบ makepp เปเบกเปเบ "เบเปเบฒเบกเบฐเบเบฒ", "md5", "C" เบซเบผเบท "c_compilation_md5", เปเบฅเบฐ.
"shared_object". เบเบตเปเปเบเบเบเบตเปเบงเบดเบเบตเบเบฒเบเบฅเบฒเบเปเบเบฑเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเบเปเบงเบ "-m" เบซเบผเบท
"--signature-method" เบเบปเบงเปเบฅเบทเบญเบเปเบเบงเบเปเบฒเบชเบฑเปเบ, เบซเบผเบทเบเปเบงเบเบเปเบฒเบเบฐเปเบซเบผเบ "เบฅเบฒเบเปเบเบฑเบ".
เบเบดเปเบชเบ เบฅเบฑเบเบชเบฐเบเบฐ
Makepp เบชเบฒเบกเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบทเปเปเบเบฅเปเบเบตเปเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบดเปเบชเบเปเบเบเบงเบเบกเบฑเบเปเบเบฑเปเบ: เบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบซเบผเบทเบเปเบญเบเบซเบงเปเบฒเบ.
เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบชเปเบฒเบเปเบเบฅเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ "a:thing" เบเบฒเบเปเบเบฅเป "b:thing".
เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเบฝเบเบเบปเบเบฅเบฐเบเบฝเบเบเปเบงเบเบงเบดเบเบตเบเบตเป:
a:thing : b:thing # เบเบตเปเปเบกเปเบเบเปเปเบเบดเบเบเบฒเบเบเบญเบเปเบงเบเบฐเบเบญเบ
&cat $(input) -o $(output)
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ makepp เบเบฐเบเปเปเบฎเบนเปเบงเปเบฒเปเบเบเปเบซเบเปเปเบเบเบตเปเปเบเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฒเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบฅเบฐเบญเบฑเบเปเบ
เบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบทเปเปเบเบฅเป. เปเบเบเบเบตเปเบเบฐ, เบเบฝเบเปเบเปเปเบชเปเบเบทเปเปเบเบงเบปเบเบขเบทเบก, เปเบเบฑเปเบเบเบตเป:
"a:thing": "b:thing"
&cat $(input) -o $(output)
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเปเบกเปเบเบเปเปเปเบเปเบเบญเบ.
Syntax เบงเบปเบเบขเบทเบกเบเบญเบ Makepp เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ Shell's. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฝเบง
quotes เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบงเบปเบเบขเบทเบกเบเบนเป, เบซเบผเบทเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบเบตเบเบปเบงเบญเบฑเบเบชเบญเบเบเบดเปเบชเบเบเบตเปเบกเบต backslash:
a\:เบชเบดเปเบ : 'b:thing'
&cat $(input) -o $(output)
เบเบปเบงเบขเปเบฒเบ, เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบทเปเปเบเบฅเปเบเบญเบเปเบเบปเปเบฒเปเบกเปเบ "'"!;\$". เบเบฝเบงเบเบตเปเปเบเบฑเบเบซเบเบฑเบเปเบเบปเปเบฒเบเบถเปเบเบเปเบญเบเบเบฒเบเบเบทเปเปเบเบฅเปเบเบฑเปเบเบเปเบฒเบง.
เบเปเบญเบเบเปเปเบฎเบนเป, เปเบเปเบเบตเปเปเบกเปเบเบซเบผเบฒเบเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบฐเบเบธเบกเบฑเบเบเบฑเบ makepp (เปเบฅเบฐ shell):
\''"!;\$$'
"'\"!;\\$$"
เปเบญเบปเบฒ เปเบ เปเบชเป เบเปเบฝเบง เบเบฑเบ เปเบง เบฅเบฒ เบเบตเป makepp strips quotes เปเบฅเบฐ เปเบ เปเบง เบฅเบฒ เบเบตเป เปเบเบฐ เปเบเป. Makepp เปเบเบดเปเบเบขเบนเป
quotes เบเบฝเบเปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเปเปเบเบเบตเป:
ยทเปเบเบเบญเบเบเบปเบง "ifeq" เบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ
ยท เบเปเบญเบ เปเบฅเบฐ เบซเบผเบฑเบ เบเปเปเบฒ เบชเบญเบ เปเบกเบฑเบ
ยทเปเบเบเปเบฒเบชเบฑเปเบเบชเปเบฒเบเปเบ makepp
ยท เปเบโเบซเบเปเบฒโเบเบตเปโเบเบตเปโเบเปเบฝเบงโเบเปเบญเบโเบเบฑเบโเปเบเบฅโเปโ
เบเปเปเบเบทเบเบฑเบเปเบเบฐ, makepp เบเปเปเปเบเปเบเบฐเบซเบเบฒเบเบงเบปเบเบขเบทเบกเปเบเบเบฐเบเบฐเบเบตเปเบเปเบฒเบเบปเบเบเบงเบเบกเบฑเบเปเบซเปเบเบฑเบเบเบปเบงเปเบ. เบเบฑเปเบเบเบฑเปเบ
เบเบปเบเบฅเบฐเบเบฝเบเบเปเปเปเบเบเบตเปเปเบกเปเบเบเบทเบเบฑเบ:
FILE = 'เบเบทเปเบเบตเปเบกเบตเบเบฐเบซเบงเปเบฒเบ'
x := $(เบเบดเบก $(FILE)) # เบเบฝเบเปเบเปเปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบงเปเบฒเบงเบปเบเบขเบทเบกเบเบฑเบเบกเบตเบขเบนเป
$(FILE): # เบงเบปเบเบขเบทเบกเบเบฐเบกเบฒเบเปเบเบฅเปเบเบฝเบงเบเบตเปเบเบญเบเบญเบญเบเปเบเบ makepp
&echo hello -o$(FILE) # เบงเบปเบเบขเบทเบกเบเบฐเบกเบฒเบเปเบเบฅเปเบเบฝเบงเบเบตเปเบเบญเบเบญเบญเบเปเบเบ makepp
เบชเบฐเบเปเบญเบเบขเบนเปเบเบตเปเบเบฑเปเบ >>$(FILE) # เบงเบปเบเบขเบทเบกเบเบฐเบกเบฒเบเปเบเบฅเปเบเบฝเบงเบเบตเปเบเบทเบเบเบญเบเบญเบญเบเปเบเบ Shell
'เบเบทเปเบเบตเปเบกเบตเบเบฐเบซเบงเปเบฒเบ':
&เบชเบฐเบเปเบญเบเบชเบฐเบเบฒเบเบเบต -o'name with spaces'
echo there >>'$(output)' # quotes has stripped above, add them again
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒ (เบเปเปเบเบทเบเบฑเบ Shell) เบเบปเบงเปเบเบเบตเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ "$" เปเบกเปเบเบเบฐเบซเบเบฒเบเบญเบญเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเบเบฝเบง
เบงเบปเบเบขเบทเบก. เปเบเบทเปเบญเบเบซเบกเบฒเบเปเบเบดเบเปเบเบฅเบฒเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเบปเบเบเปเบญเบเปเบเบเบงเบปเบเบขเบทเบกเบซเบผเบท backslashes. เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเบฒเบเบฎเบนเปเบซเบเบฑเบเบชเบท
เปเบเบทเปเบญเบเบซเบกเบฒเบเปเบเบดเบเปเบเบฅเบฒ, เปเบเปเปเบเบทเปเบญเบเบซเบกเบฒเบเปเบเบดเบเปเบเบฅเบฒเบเบนเป, เบเบปเบงเบขเปเบฒเบ,
$(เบเบญเบเบเบฑเบเปเบปเบ):
@&echo เบเบตเปเปเบกเปเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบเบดเบเปเบเบฅเบฒ: $$
@for val เปเบ abcd; เปเบฎเบฑเบเบชเบฝเบเบชเบฐเบเปเบญเบ $$val; เบชเบณเปเบฅเบฑเบเปเบฅเปเบง
เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบง, เบเปเบฒเบเบเบงเบเบเบฐเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบดเปเบชเบเปเบเปเปเบเบเบเบฒเบเบญเปเบฒเบเปเบเบดเบเบกเบฑเบ
เปเบเบเบฒเบเบเบฒเบ. เบเบตเปเบเบฐเบเบญเบเบกเบตเบเปเบญเบเบซเบงเปเบฒเบ, เบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบเบเบงเบเบเบธเบก, เปเบฅเบฐเบญเบทเปเบเป. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบปเปเบเบฎเบนเปเบงเปเบฒเบขเบนเปเบเบตเป
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบฒเบเบเบญเบเบเปเบฒเบเบดเบเบเปเบฒเปเบซเบฑเบเบเบญเบ makepp เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบ, เปเบฅเบฐเบเบปเบงเบญเบฑเบเบชเบญเบ "#".
เบเปเบญเบเปเปเบฒเบเปเบงเบเบเปเบญเบเบซเบงเปเบฒเบเบเบฐเบเบทเบเบเบตเบเบงเบฒเบกเปเบฒเบเบงเปเบฒเปเบเบฑเบเบเบณเปเบซเบฑเบเบเปเปเบงเปเบฒเบเบงเบเบกเบฑเบเบเบทเบเบญเปเบฒเบเบญเบตเบเปเบเบงเปเบ.
เปเบกเบทเปเบญเบเบทเปเปเบเบปเปเบฒเปเบฒเบ เบซเบผเบทเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบปเบงเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบฑเปเบ "$(output)", เบเบฒเบเบเบฑเปเบ
เบงเบปเบเบขเบทเบก เปเบฅเบฐ backslashes เปเบเบเบทเบเบเบญเบเบญเบญเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบญเปเบฒเบเบญเบดเบ
เบเบทเปเปเบเบฅเปเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบญเบเบญเปเบฒเบเปเบเบดเบเบกเบฑเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เปเบเบฑเปเบเบเบตเป:
"เบเบทเปเปเบเบฅเปเบเบตเปเบกเบตเบเบฐเบซเบงเปเบฒเบ":
เบชเบฝเบเบชเบฐเบเปเบญเบ "เปเบเบทเปเบญเปเบเบเบดเปเบชเบ" > "$@"
เบเปเบฒเบเปเบฒเบเบเปเปเปเบชเปเบงเบปเบเบขเบทเบกเบเบฐเบกเบฒเบ $@, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ shell เบเบฐเปเบซเบฑเบเบเปเบฒเบชเบฑเปเบ
echo "เปเบเบทเปเบญเปเบเบเบดเปเบชเบ" > เบเบทเปเปเบเบฅเปเบเบตเปเบกเบตเบเบฐเบซเบงเปเบฒเบ
เปเบเบดเปเบเบเบฝเบเบเปเปเบเบงเบฒเบก "เบเบทเปเปเบเบฅเปเปเบเบทเปเบญเบซเบฒเบเบดเปเบชเบเบเบตเปเบกเบตเบเปเบญเบเบซเบงเปเบฒเบ" เปเบชเปเปเบเบฅเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ a.
เบเบตเปเบญเบฒเบเบเบฐเบเปเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ.
เปเบเป makepp_rules เบญเบญเบเบฅเบฒเบเปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ onworks.net