ããã¯ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãMAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ãè€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®ããããã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããã³ãã³ã fmake ã§ãã
ããã°ã©ã ïŒ
NAME
make â ããã°ã©ã ã®äŸåé¢ä¿ãç¶æãã
SYNOPSIS
make [-ABPSXeiknpqrstv] [-C ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã] [-D å€æ°] [-d ãã©ã°] [-E å€æ°] [-f ã¡ã€ã¯ãã¡ã€ã«]
[-I ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã] [-j max_jobs] [-m ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã] [-V å€æ°] [-x èŠåãªãã·ã§ã³]
[å€æ°=å€] [ã¿ãŒã²ãã ...]
DESCRIPTION
ã make utility ã¯ãä»ã®ããã°ã©ã ã®ä¿å®ãç°¡çŽ åããããã«èšèšãããããã°ã©ã ã§ãã ããã¯
å ¥åã¯ãäžä»£éã®äŸåé¢ä¿ãèšè¿°ããä»æ§ã®ãªã¹ãã§ã
ãã¡ã€ã«ãšããã°ã©ã ã®ã
ãŸããä»æ§ã®åæãªã¹ããã·ã¹ãã ã® makefile ããèªã¿åãããŸãã
sys.mkãã§çŠæ¢ãããŠããªãéã -r ãªãã·ã§ã³ã æšæº sys.mk FreeBSD ã«å梱ãããŠãã
ãæ±ããŸã make.conf(5)ãããã©ã«ãã®ãã¹ã¯ã make å€æ°
__MAKE_CONF.
ããããæåã® BSDã¡ã€ã¯ãã¡ã€ã«, ã¡ã€ã¯ãã¡ã€ã«, ã¡ãŒã¯ãã¡ã€ã« ããã¯çŸåšã§èŠã€ããããšãã§ããŸã
ãã£ã¬ã¯ããªããªããžã§ã¯ã ãã£ã¬ã¯ã㪠(ãåç §) .OBJDIRïŒããŸãã¯æ€çŽ¢ãã¹ïŒ -I ãªãã·ã§ã³ïŒãèªã¿èŸŒãŸããŸã
äŸåä»æ§ã®äž»ãªãªã¹ãã«ã€ããŠã¯ã å¥ã®ã¡ã€ã¯ãã¡ã€ã«ãŸãã¯ãããã®ãªã¹ãã䜿çšã§ããŸã
çµç±ã§äŸçµŠããã -f ãªãã·ã§ã³ã æåŸã«ããã¡ã€ã«ã®å Žå ãããã«ãã ã®ããããã§èŠã€ããããšãã§ããŸã
åè¿°ã®å Žæã§ã¯ããããèªã¿åãããŸã (åç § mkdepïŒ1ïŒïŒã
æ¥æ make makefile ãæ€çŽ¢ãããšããã®ååãå Žæãããåªå ãããŸãã çºã«
ã€ã³ã¹ã¿ã³ã¹ã BSDã¡ã€ã¯ãã¡ã€ã« ãªããžã§ã¯ã ãã£ã¬ã¯ããªå ã®ãã¡ã€ã«ãåªå ãããŸã ã¡ãŒã¯ãã¡ã€ã« çŸåšã®
ãã£ã¬ã¯ããªã«ãããŸãã
ãªãã·ã§ã³ã¯ä»¥äžã®ãšããã§ãã
-A ã¢ãŒã«ã€ããšã©ãŒãéèŽåœçã«ããåå ãšãªã make æ®ããŸãã¯ãã¹ãŠãã¹ããããã
ã¡ãã»ãŒãžãå°å·ããåŸãã¢ãŒã«ã€ãããŠç¶è¡ããŸãã
-B ã³ãã³ãããšã« XNUMX ã€ã®ã·ã§ã«ãå®è¡ããäžäœäºææ§ãä¿ã€ããã«ããŠãã ããã
ã³ãã³ããå®è¡ããŠãäŸåé¢ä¿è¡ã®ãœãŒã¹ãé çªã«äœæããŸãã ãã
ã§ãªãéããããã©ã«ãã§ãªã³ã«ãªã£ãŠããŸã -j 䜿çšãããŠããã
-C ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
ãžã®å€æŽ ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã Makefile ãèªãã ããä»ã®ããšããããããåã«ã ããã
ã®è©Šåã« -C ãªãã·ã§ã³ãæå®ãããŠããå Žåãããããã¯åã®ãªãã·ã§ã³ãšçžå¯Ÿçã«è§£éãããŸãã
-C / -C ç ã«çžåœããŸã -C ã®/ etc.
-D å€æ°
å®çŸ©ãã å€æ° ã°ããŒãã«ã³ã³ããã¹ãã§ã¯ 1 ã«ãªããŸãã
-d ãã©ã°
ãããã°ããªã³ã«ããã©ã®éšåãæå®ããããæå®ããŸãã make ãããã°ãåºåããããšã§ã
æ å ±ã å£è« ãã©ã° 次㮠XNUMX ã€ä»¥äžã§ãã
A èãããããã¹ãŠã®ãããã°æ å ±ãåºåããŸãã ãã¹ãŠãæå®ããã®ãšåç
ãããã°ãã©ã°ã
a ã¢ãŒã«ã€ãã®æ€çŽ¢ãšãã£ãã·ã¥ã«é¢ãããããã°æ å ±ãåºåããŸãã
c æ¡ä»¶ä»ãè©äŸ¡ã«é¢ãããããã°æ å ±ãåºåããŸãã
d ãã£ã¬ã¯ããªã®æ€çŽ¢ãšãã£ãã·ã¥ã«é¢ãããããã°æ å ±ãåºåããŸãã
f for ã«ãŒãã®å®è¡ã«é¢ãããããã°æ å ±ãåºåããŸãã
g1 äœããäœæããåã«ãå ¥åã°ã©ããå°å·ããŸãã
g2 ãã¹ãŠãäœæããåŸããŸãã¯ãšã©ãŒã§çµäºããåã«ãå ¥åã°ã©ããå°å·ããŸãã
j è€æ°ã®ã·ã§ã«ã®å®è¡ã«é¢ãããããã°æ å ±ãåºåããŸãã
l ãã¬ãã£ãã¯ã¹ãä»ããŠãããã©ããã«é¢ä¿ãªããMakefile å ã®ã³ãã³ããåºåããŸãã
@ ãŸãã¯ä»ã®ãéããªããã©ã°ã«ãã£ãŠã ããããããåäœãšãåŒã°ããŸãã
m ã¿ãŒã²ããã®äœæã«é¢ãããããã°æ å ± (å€æŽãå«ã) ãåºåããŸãã
æ¥ä»ã
s æ¥å°ŸèŸå€æã«ãŒã«ã«é¢ãããããã°æ å ±ãåºåããŸãã
t ã¿ãŒã²ãã ãªã¹ãã®ã¡ã³ããã³ã¹ã«é¢ãããããã°æ å ±ãåºåããŸãã
v å€æ°ã®å²ãåœãŠã«é¢ãããããã°æ å ±ãåºåããŸãã
-E å€æ°
ç°å¢å€ (ååšããå Žå) ããã¯ãå²ãåœãŠããªãŒããŒã©ã€ãããå€æ°ãæå®ããŸã
ã¡ã€ã¯ãã¡ã€ã«å ã
-e ç°å¢å€ããã¹ãŠã® makefile å ã®ãã¯ãå²ãåœãŠããªãŒããŒã©ã€ãããããã«æå®ããŸãã
å€æ°ã
-f ã¡ã€ã¯ãã¡ã€ã«
ããã©ã«ãã®ä»£ããã«èªã¿èŸŒã makefile ãæå®ããŸãã ããã ã¡ã€ã¯ãã¡ã€ã« ã§ã¯ãããŸãã
絶察ãã¹åã make äžèšã®ããã«æ€çŽ¢ããŸãã äžäžã«åã㊠ã¡ã€ã¯ãã¡ã€ã« is
'-'ãæšæºå ¥åãèªã¿èŸŒãŸããŸãã å€æ° -f ãªãã·ã§ã³ãæå®ã§ããã¡ã€ã¯ãã¡ã€ã«
ãšããé çªã§èªãŸããŸãã ä»ã®ã³ãã³ã ã©ã€ã³ ãªãã·ã§ã³ãšã¯ç°ãªãã -f ã©ã¡ãã§ããªã
ã«ä¿ç®¡ .MakeFLAGS MAKEFLAGS ãä»ããŠãµãã¡ã€ã¯ã«ããã·ã¥ããããšããããŸããã 詳现ã«ã€ããŠã¯ã以äžãåç §ããŠãã ãã
ãããã®å€æ°ã®è©³çŽ°ã
-I ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
ã¡ã€ã¯ãã¡ã€ã«ãšã€ã³ã¯ã«ãŒããããã¡ã€ã¯ãã¡ã€ã«ãæ€çŽ¢ãããã£ã¬ã¯ããªãæå®ããŸãã
è€æ° -I ãªãã·ã§ã³ãæå®ããŠãæ€çŽ¢ãã¹ã圢æã§ããŸãã ã·ã¹ãã ã¡ã€ã¯ãã¡ã€ã«
ãã£ã¬ã¯ã㪠(ãŸãã¯ãã£ã¬ã¯ããªã -m ãªãã·ã§ã³) ãæ«å°Ÿã«èªåçã«è¿œå ãããŸã
ãã®ãã¹ã®ã
-i ã¡ã€ã¯ãã¡ã€ã«å ã®ã·ã§ã« ã³ãã³ãã®ãŒã以å€ã®çµäºãç¡èŠããŸãã æå®ãšåç
'-' ã¡ã€ã¯ãã¡ã€ã«ã®åã³ãã³ã ã©ã€ã³ã®åã«è¿œå ããŸãã
-j max_jobs
ãžã§ãã®æ倧æ°ãæå®ããŸãã make ãã€ã§ãå®è¡ãããŠããå¯èœæ§ããããŸãã
äºæã¢ãŒãããªãã«ããŸãã -B ãã©ã°ãæå®ããŸãã
-k ãšã©ãŒãçºçããåŸãåŠçãç¶è¡ããŸããããšã©ãŒãçºçããã¿ãŒã²ããã§ã®ã¿åŠçãç¶è¡ããŸãã
äœæã«ãããšã©ãŒãçºçããã¿ãŒã²ããã«ã¯äŸåããŸããã
-m ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
ã·ã¹ãã ã®ã¡ã€ã¯ãã¡ã€ã«ãšã¡ã€ã¯ãã¡ã€ã«ãæ€çŽ¢ãããã£ã¬ã¯ããªãæå®ããŸã
<...> ã¹ã¿ã€ã«ãä»ããŠå«ãŸããŠããŸãã å€æ° -m ãªãã·ã§ã³ãæå®ããŠæ€çŽ¢ã圢æã§ããŸã
éã ãã®ãã¹ã¯ãããã©ã«ãã®ã·ã¹ãã ã€ã³ã¯ã«ãŒã ãã¹ãäžæžãããŸãã
/usr/share/mk-freebsd. ã·ã¹ãã ã€ã³ã¯ã«ãŒã ãã¹ã¯ãåžžã«
"..." ã¹ã¿ã€ã«ã®å å«ããã³ makefile æ€çŽ¢ã«äœ¿çšãããæ€çŽ¢ãã¹ ( -I
ãªãã·ã§ã³ïŒã
ãã¡ã€ã«åãŸãã¯ãã£ã¬ã¯ããªåã -m åŒæ° (ãŸã㯠MAKESYSPATH ç°å¢)
å€æ°) æååã.../ãã§å§ãŸãããã®åŸ make æå®ãããã¡ã€ã«ãæ€çŽ¢ããŸã
ãŸãã¯åŒæ°æååã®æ®ãã®éšåã§æå®ããããã£ã¬ã¯ããªã æ€çŽ¢ãå§ãŸããŸã
Makefile ã®çŸåšã®ãã£ã¬ã¯ããªã䜿çšããŠãããã«ãŒãã«åãã£ãŠäžæ¹åã«åäœããŸã
ãã¡ã€ã«ã·ã¹ãã ã æ€çŽ¢ãæåãããšãçµæã®ãã£ã¬ã¯ããªã眮ãæããããŸã
ã®ã.../ãæå® -m å£è«ã ãã®æ©èœã䜿çšãããšã make ããž
ã«ã¹ã¿ãã€ãºããã sys.mk ãã¡ã€ã«ãçŸåšã®ãœãŒã¹ ããªãŒã§ç°¡åã«æ€çŽ¢ããŸã (ããšãã°ã
".../mk/sys.mk" ãåŒæ°ãšããŠ)ã 泚æããŠãã ãã -C ã³ãã³ãã®åã«ãã
è¡ã¯ã©ãã«åœ±é¿ããŸã -m ã.../ãã§æ€çŽ¢ããŸãã
-n å®è¡ãããã¯ãã ã£ããå®éã«ã¯å®è¡ãããªãã£ãã³ãã³ãã衚瀺ãã
ãããã
-P ç¹å®ã®ãžã§ãã®åºåãç §åãã代ããã«ãžã§ããçµäºãããšãã«ã®ã¿è¡šç€ºããŸãã
䞊åãžã§ãã®åºåãäžç·ã«æ··åããã ãã®ãªãã·ã§ã³ã¯ã次ã®å Žåãé€ããŠå¹æããããŸããã -j
ã䜿çšãããŸãã
-p ã³ãã³ããå®è¡ããã«ãå ¥åã°ã©ãã®ã¿ãåºåããŸãã åºåã¯åãã§ã
-d g1ã ãšçµã¿åããããš -f / dev / nullã®çµã¿èŸŒã¿ã«ãŒã«ã®ã¿ make ã
衚瀺ãããŸãã
-Q éåžžã«éãã«ããŠãã ããã ãã«ããžã§ã ã¡ã€ã¯ã®å Žåãããã«ãããã¡ã€ã« ãããŒã衚瀺ãããªããªããŸãã
çæãããã
-q ã³ãã³ãã¯å®è¡ãããæå®ãããã¿ãŒã²ãããææ°ã§ãããææ°ã®å Žå㯠0 ãçµäºããŸãã
1ãããã§ãªãå Žåã
-r ã·ã¹ãã makefile ãåŠçããŸããã
-S ãšã©ãŒãçºçãããšãã«åŠçãåæ¢ããŸãã ããã©ã«ãã®åäœã ããã¯ã
ãåŠå®ãã -k ååž°ãã«ãäžã®ãªãã·ã§ã³ã
-s ã³ãã³ãã®å®è¡æã«ã³ãã³ãããšã³ãŒãââãªãã§ãã ããã ' ãæå®ããã®ãšåã@' åã«
ã¡ã€ã¯ãã¡ã€ã«å ã®åã³ãã³ãã©ã€ã³ã
-t ã¡ã€ã¯ãã¡ã€ã«ã§æå®ãããŠããããã«ã¿ãŒã²ãããåæ§ç¯ããã®ã§ã¯ãªããã¿ãŒã²ãããäœæãŸãã¯æŽæ°ããŸãã
ææ°ã«èŠããããã«ããããã®å€æŽæå»ã
-V å€æ°
å°å·ç© makeã®äŸ¡å€ã«ã€ããŠã®èã å€æ°ãã°ããŒãã« ã³ã³ããã¹ãã§ã ãã«ãããªãã§ãã ãã
ã¿ãŒã²ããã ãã®ãªãã·ã§ã³ã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãæå®ã§ããŸãã å€æ°ã¯
null ãŸãã¯æªå®çŸ©ã®å€æ°ããšã«ç©ºçœè¡ãå«ããŠãXNUMX è¡ã« XNUMX ã€ãã€åºåãããŸãã ããã
å€æ° ' ãå«ã$' å€ã¯å°å·åã«å±éãããŸãã
-v äœåã«åé·ã«ããŸãã è¿œå æ å ±ãåºåããŸãã
-X 䜿çšããŠããå Žå -V å€æ°ã®å€ãåºåãããªãã·ã§ã³ãååž°çã«å±éããªãã§ãã ãã
ãã®äŸ¡å€ã
å€æ°=å€
å€æ°ã®å€ãèšå®ããŸã å€æ° ããž å€.
-x èŠåãªãã·ã§ã³
æ¡åŒµèŠåãªãã·ã§ã³ãæå®ããŸãã ãã®ãªãã·ã§ã³ã¯è€æ°åæå®ã§ããŸãã ã
èŠåãªãã·ã§ã³ ãnoããåã«ä»ããããšãã§ããŸãããã®å ŽåãèŠåã¯ãªãã«ãªããŸãã
çŸåšå©çšå¯èœãªãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
ãã£ã¬ã¯ããªæ§æ
空çœãšã³ã¡ã³ã以å€ãç¶ãå Žåã«èŠåãã ãENDIF or ããã以å€
æ什ã
åç §ããŠãã ãã .WARN ç¹å¥ãªã¿ãŒã²ããã
ã¡ã€ã¯ãã¡ã€ã«ã«ã¯ XNUMX ã€ã®ç°ãªãã¿ã€ãã®è¡ããããŸãããã¡ã€ã«ã®äŸåé¢ä¿ã®ä»æ§ã
ã·ã§ã«ã³ãã³ããå€æ°ã®ä»£å ¥ãã€ã³ã¯ã«ãŒãã¹ããŒãã¡ã³ããæ¡ä»¶ãã£ã¬ã¯ãã£ããfor ã«ãŒãã
ãšã³ã¡ã³ãã
äžè¬ã«ãè¡ãããã¯ã¹ã©ãã·ã¥ã§çµäºããããšã«ãããããè¡ãã次ã®è¡ã«ç¶ç¶ããããšãã§ããŸãã
('\')ã 次ã®è¡ã®æ«å°Ÿã®æ¹è¡æåãšæåã®ç©ºçœã¯æ¬¡ã®ãšããã§ãã
åäžã®ç©ºéã«å§çž®ãããŸãã
FILE äŸå èŠæ Œ
äŸåé¢ä¿è¡ã¯ãXNUMX ã€ä»¥äžã®ã¿ãŒã²ãããæŒç®åãXNUMX å以äžã®ãœãŒã¹ã§æ§æãããŸãã
ããã«ãããã¿ãŒã²ããããœãŒã¹ã«ãäŸåãããéåžžã¯
ãããããäœæãããŸããã ã¿ãŒã²ãããšãœãŒã¹ã®éã®æ£ç¢ºãªé¢ä¿ã決å®ããã
ããããåé¢ããæŒç®åã«ãã£ãŠã XNUMX ã€ã®æŒç®åã¯æ¬¡ã®ãšããã§ãã
: ã¿ãŒã²ããã®å€æŽæéãä»ã®ã¿ãŒã²ãããããçãå Žåãã¿ãŒã²ããã¯å€ããšã¿ãªãããŸãã
ãã®æ å ±æºã®ã ãã®å Žåãã¿ãŒã²ããã®ãœãŒã¹ã¯äŸåé¢ä¿ã®å¢çç·ãè¶ããŠèç©ãããŸãã
æŒç®åã䜿çšãããŸãã 次ã®å Žåãã¿ãŒã²ããã¯åé€ãããŸãã make äžæãããŸãã
! ã¿ãŒã²ããã¯åžžã«åäœæãããŸããããã¹ãŠã®ãœãŒã¹ãæ€æ»ãããŠåäœæããããŸã§ã¯åäœæãããŸããã
å¿ èŠã«å¿ããŠäœæãããŸãã ãã®å Žåãã¿ãŒã²ããã®ãœãŒã¹ã¯äŸåé¢ä¿ã®å¢çç·ãè¶ããŠèç©ãããŸãã
æŒç®åã䜿çšãããŸãã 次ã®å Žåãã¿ãŒã²ããã¯åé€ãããŸãã make äžæãããŸãã
:: ãœãŒã¹ãæå®ãããŠããªãå Žåãã¿ãŒã²ããã¯åžžã«åäœæãããŸãã ãã以å€ã®å Žåãã¿ãŒã²ããã¯
ãœãŒã¹ã®ããããã以åãããæ°ããå€æŽãããå Žåãå€ããã®ãšã¿ãªãããŸãã
ç®æšã ãã®å Žåãã¿ãŒã²ããã®ãœãŒã¹ã¯äŸåé¢ä¿ã®å¢çç·ãè¶ããŠèç©ãããŸããã
æŒç®åã䜿çšãããŸãã 次ã®å Žåãã¿ãŒã²ããã¯åé€ãããŸããã make äžæãããŸãã
ã¿ãŒã²ãããšãœãŒã¹ã«ã¯ãã·ã§ã«ã®ã¯ã€ã«ãã«ãŒãåŒã?ããã*ããã[]ããããã³ã{}ããå«ããããšãã§ããŸãã ã®
åŒã?ããã*ããããã³ã[]ãã¯ãã¿ãŒã²ããã®æçµã³ã³ããŒãã³ãã®äžéšãšããŠã®ã¿äœ¿çšã§ããŸã
ãŸãã¯ãœãŒã¹ã§ãããæ¢åã®ãã¡ã€ã«ãèšè¿°ããããã«äœ¿çšããå¿ èŠããããŸãã åŒã{}ãã¯å¿ èŠãããŸãã
æ¢åã®ãã¡ã€ã«ãèšè¿°ããããã«å¿ ã䜿çšãããŸãã å±éã¯ãã£ã¬ã¯ããªé ã§ãããã§ã¯ãããŸãã
ã·ã§ã«ã§è¡ãããããã«ã¢ã«ãã¡ãããé ã«ã
SHELL ã³ãã³ã
åã¿ãŒã²ããã«ã¯äžé£ã®ã·ã§ã« ã³ãã³ããé¢é£ä»ããããŠããå Žåããããéåžžã¯äœæã«äœ¿çšãããŸãã
ã¿ãŒã²ããã ãã®ã¹ã¯ãªããã®åã³ãã³ã ããªããã°ãªããŸãã ã¿ããå è¡ããŸãã ãªãã
target ã¯äŸåé¢ä¿ã®è¡ã«è¡šç€ºãããå ŽåããããŸããããããã®äŸåé¢ä¿ã® XNUMX ã€ã®ã¿ã®åŸã«ã
'::' æŒç®åã䜿çšãããŸãã
ã³ãã³ã ã©ã€ã³ã®æåã®æåã ' ã®å Žå@'ã'-'ãããã³/ãŸãã¯'+'ãã³ãã³ããåŠçãããŸã
ç¹ã«ã ã '@' ãæå®ãããšãã³ãã³ããå®è¡ãããåã«ãšã³ãŒãããªããªããŸãã ãã-'åå
ã³ãã³ãã©ã€ã³ã®ãŒã以å€ã®çµäºã¹ããŒã¿ã¹ã¯ç¡èŠãããŸãã ã '+' ã³ãã³ãã
å®è¡ãããŠã -n ã³ãã³ãã©ã€ã³ã§æå®ããŸãã
å€æ° å²ãåœãŠ
ã®å€æ° make ã·ã§ã«ã®å€æ°ã«ãã䌌ãŠãããäŒçµ±çã«ããã¹ãŠã®å€æ°ã§æ§æãããŠããŸã
倧æåã å€æ°ã«å€ãä»£å ¥ããããã«äœ¿çšã§ãã XNUMX ã€ã®æŒç®åã¯æ¬¡ã®ãšããã§ãã
次ã®ããã«ïŒ
= å€ãå€æ°ã«ä»£å ¥ããŸãã 以åã®å€ã¯ãã¹ãŠäžæžããããŸãã
+= å€ãå€æ°ã®çŸåšã®å€ã«è¿œå ããŸãã
?= ãŸã å®çŸ©ãããŠããªãå Žåã¯ãå€æ°ã«å€ãå²ãåœãŠãŸãã
:= å±éããŠä»£å ¥ããŸããã€ãŸããå€æ°ã«ä»£å ¥ããåã«å€ãå±éããŸãã
éåžžãå€æ°ãåç §ããããŸã§å±éã¯è¡ãããŸããã
!= å€ãå±éããŠå®è¡ã®ããã«ã·ã§ã«ã«æž¡ããçµæã
å€æ°ã çµæå ã®æ¹è¡ã¯ã¹ããŒã¹ã«çœ®ãæããããŸãã
å²ãåœãŠãããåã®ç©ºçœ å€ åé€ãããŸãã å€ãè¿œå ãããå Žåã
å€æ°ã®åã®å 容ãšè¿œå ãããå 容ã®éã«åäžã®ã¹ããŒã¹ãæ¿å ¥ãããŸãã
ã®å€ã§ãã
å€æ°ã¯ãå€æ°åãäžæ¬åŒ§ ('{}') ã§å²ããããŸãã¯
ãã£ã (ã()ã) ãšãã®åã«ãã«èšå· (ã$ã) ãä»ããŸãã å€æ°åã«æ¬¡ã®ãã®ãå«ãŸããŠããå Žåã
åäžæåã®ã¿ã®å Žåãåšå²ã®äžæ¬åŒ§ãæ¬åŒ§ã¯å¿ èŠãããŸããã ããããçã
ãšãã圢åŒã¯æšå¥šãããŸããã
å€æ°çœ®æã¯ãå€æ°ãã©ãã«ãããã«å¿ããŠãXNUMX ã€ã®ç°ãªãæç¹ã§çºçããŸãã
䜿çšæžã¿ã è¡ãèªã¿åããããšãäŸåé¢ä¿è¡ã®å€æ°ãå±éãããŸãã ã·ã§ã«å ã®å€æ°
ã³ãã³ãã¯ãã·ã§ã« ã³ãã³ãã®å®è¡æã«å±éãããŸãã
å€æ°ã® XNUMX ã€ã®ç°ãªãã¯ã©ã¹ (åªå é äœã®é«ãé ) ã¯æ¬¡ã®ãšããã§ãã
ç°å¢å€æ°
ã®äžéšãšããŠå®çŸ©ãããå€æ° makeã®ç°å¢ã
ã°ããŒãã«å€æ°
Makefile ãŸãã¯çµã¿èŸŒãŸãã Makefile ã§å®çŸ©ãããå€æ°ã
ã³ãã³ãã©ã€ã³å€æ°
ã³ãã³ã ã©ã€ã³ã®äžéšãšããŠå®çŸ©ãããå€æ°ãšã
MAKEFLAGS ç°å¢å€æ°ãŸã㯠.MakeFLAGS ã¿ãŒã²ããã
ããŒã«ã«å€æ°
ç¹å®ã®ã¿ãŒã²ããã«åºæã«å®çŸ©ãããå€æ°ã
ç°å¢å€æ°ã®ååã makefile ã®å·ŠåŽã«ããå Žåã
å²ãåœãŠãåãååã®ã°ããŒãã«å€æ°ãäœæãããåŸè ã¯
çžå¯Ÿçãªåªå é äœã«åŸã£ãŠåè ã ãã®å Žåãç°å¢ã¯å€æŽãããŸããã
å€æŽã¯ãã«ãã£ãŠå®è¡ãããããã°ã©ã ã«ã¯ãšã¯ã¹ããŒããããŸããã make. ãã ããã³ãã³ãã©ã€ã³å€æ°
åŸè ãååšããå Žåãå®éã«ã¯åãååã®ç°å¢å€æ°ã眮ãæããŸãã
åããã°ã©ã ã«è¡šç€ºãããŸãã
ã«ã¯XNUMXã€ã®ããŒã«ã«å€æ°ããããŸã make:
.ALLSRC ãã®ã¿ãŒã²ããã®ãã¹ãŠã®ãœãŒã¹ã®ãªã¹ãã ãšããŠãç¥ãããŠãã '>'ã
ãã¢ãŒã«ã€ã ã¢ãŒã«ã€ã ãã¡ã€ã«ã®ååã ãšããŠãç¥ãããŠãã '!'ã
.IMPSRC ã¿ãŒã²ãããå€æããããœãŒã¹ã®åå/ãã¹ (
ãæé»ã®ãæ å ±æº); ãšããŠãç¥ãããŠãã '<'ã
ãã¡ã³ã㌠ã¢ãŒã«ã€ãã¡ã³ããŒã®ååã ãšããŠãç¥ãããŠãã '%'ã
.OODATE å€ããšèŠãªãããããã®ã¿ãŒã²ããã®ãœãŒã¹ã®ãªã¹ãã ãšããŠãç¥ãããŠãã
'?'ã
.ãã¬ãã£ãã¯ã¹ ãã¡ã€ã«ã®ãã¡ã€ã« ãã¬ãã£ãã¯ã¹ããã¡ã€ã«éšåã®ã¿ãå«ã¿ããµãã£ãã¯ã¹ãŸãã¯
å è¡ãããã£ã¬ã¯ã㪠ã³ã³ããŒãã³ãã ãšããŠãç¥ãããŠãã '*'ã
ãç®æš ã¿ãŒã²ããã®ååã ãšããŠãç¥ãããŠãã '@'ã
çãåœ¢åŒ '@'ã'!'ã'<'ã'%'ã'?'ã'>'ã'*' ã¯éæ¹åã«èš±å¯ãããŸã
äºææ§ããããæšå¥šãããŸããã XNUMX ã€ã®å€æ° '@F'ã'@D'ã'<F'ã'<D'ã'*F'ã ãš
'*D' AT&T System V UNIX makefile ãšã®äºææ§ã®ããã«èš±å¯ãããŠããã
ãå§ãããŸãã
ããŒã«ã«å€æ°ã®ãã¡ XNUMX ã€ã¯ãæ¡åŒµããããããäŸåé¢ä¿è¡ã®ãœãŒã¹ã§äœ¿çšãããå¯èœæ§ããããŸãã
ã©ã€ã³äžã®åã¿ãŒã²ããã®é©åãªå€ã«ã ãããã®å€æ°ã¯ ãç®æš, .ãã¬ãã£ãã¯ã¹,
ãã¢ãŒã«ã€ã, ãã¡ã³ããŒ.
å ããŠã make 次ã®å éšå€æ°ãŸãã¯ç°å¢ãèšå®ãŸãã¯èªèããŸã
å€æ°ïŒ
$ åäžã®ãã«èšå·ã$ããã€ãŸãã$$ãã¯åäžã®ãã«èšå·ã«å±éãããŸãã
MAKE ãšããåå make (ã§å®è¡ãããŸãã)åŒæ°[0]ïŒã
.CURDIR ãã£ã¬ã¯ããªãžã®ãã¹ make å®è¡ãããŸããã ã® make ãŠãŒãã£ãªãã£ã»ãã
.CURDIR ã«ãã£ãŠäžããããæ£æºãã¹ãž getcwdãšããŸãã
.OBJDIR ã¿ãŒã²ããããã«ãããããã£ã¬ã¯ããªãžã®ãã¹ã èµ·åæã make
ã¿ãŒã²ãã ãã¡ã€ã«ãé 眮ããããã®ä»£æ¿ãã£ã¬ã¯ããªãæ€çŽ¢ããŸãã è©Šã¿ãŸã
ãã®ç¹å¥ãªãã£ã¬ã¯ããªã«å€æŽãããã®ãã£ã¬ã¯ããªãæ€çŽ¢ããŸã
çŸåšã®ãã£ã¬ã¯ããªã« makefile ãèŠã€ãããŸããã 以äžã®ãã£ã¬ã¯ããªã¯
é çªã«è©ŠããŸããïŒ
1. ${MAKEOBJDIRPREFIX}/`pwd -P`
2. ${MAKEOBJDIR}
3.obj.${MACHINE}
4.ãªããžã§ã¯ã
5. /usr/obj/`pwd -P`
æåã®ãã£ã¬ã¯ã㪠make ã䜿çšãããŸãã ããããã®å Žå
MAKEOBJDIRPREFIX ãŸã㯠MAKEOBJDIR ãç°å¢ã«èšå®ãããŠããŸããã make ã§ããªã
察å¿ãããã£ã¬ã¯ããªã«å€æŽãããšãçŸåšã®ãã£ã¬ã¯ããªã¯
ãªã¹ãã®æ®ãããã§ãã¯ããã«äœ¿çšãããŸãã ããããæªå®çŸ©ã§ããã
make æ®ãã® XNUMX ã€ã®ãã£ã¬ã¯ããªã®ãããã«ãå€æŽã§ããªãå Žåã
çŸåšã®ãã£ã¬ã¯ããªã䜿çšãããŸãã MAKEOBJDIRPREFIX ãš MAKEOBJDIR ã«æ³šæããŠãã ããã
ç°å¢å€æ°ã§ããå¿ èŠããããèšå®ããªãã§ãã ãã makeã®ã³ãã³ãã©ã€ã³ã
ã make ãŠãŒãã£ãªãã£ã»ãã .OBJDIR ã«ãã£ãŠäžããããæ£æºãã¹ãž getcwdãšããŸãã
.MAKEFILE_LIST As make ããã©ã«ãã®ãã¡ã€ã«ãå«ãããŸããŸãªã¡ã€ã¯ãã¡ã€ã«ãèªã¿åããŸãã
ã³ãã³ãã©ã€ã³ããååŸãã ãå«ã ããã³ .sinclude ãã£ã¬ã¯ãã£ãããã®
ååã¯èªåçã« .MAKEFILE_LIST å€æ°ã 圌ã
çŽåã«è¿œå ãããŸã make ãããã®è§£æãéå§ããããã
çŸåšã®ã¡ã€ã¯ãã¡ã€ã«ã¯ããã®å€æ°ã®æåŸã®åèªã§ãã
MAKEFLAGS ç°å¢å€æ° MAKEFLAGS ã«ã¯ãæåã«ã
æå®ããã makeã®ã³ãã³ãã©ã€ã³ãå«ã -f ãªãã·ã§ã³ã åŸ
åŠçäžããã®å 容㯠.MakeFLAGS ã°ããŒãã«å€æ°ã
ã©ããªã« -f ãªãã·ã§ã³ã¯çç¥ã 次ã«ããã¹ãŠã®ãªãã·ã§ã³ãšå€æ°
ã§æå®ãããå²ãåœãŠ makeã®ã³ãã³ãã©ã€ã³ãäŸå€ã¯ -fãã«è¿œå ãããŸã
ã .MakeFLAGS å€æ°ã«ä¿åããŸãïŒ
éœåºŠ make ããã°ã©ã ãå®è¡ãããšãããã°ã©ã ã® MAKEFLAGS ãèšå®ãããŸãã
ç°å¢ãçŸåšã®å€ã« .MakeFLAGS ã°ããŒãã«å€æ°ã ãããã£ãŠã
MAKEFLAGS ã®å Žå makeã®ç°å¢ã«ã¯ -f ãªãã·ã§ã³ããããã¯ãããŸãã
åããã°ã©ã ã«èªåçã«ããã·ã¥ãããŸãã ã® make å¹çš
ãã£ã«ã¿ãŒã§é€å€ -f ç°å¢ãšã³ãã³ãã©ã€ã³ããã®ãªãã·ã§ã³ã§ããã
ããã©ã«ãã§ã¯ãæ®ãã®ãªãã·ã§ã³ã MAKEFLAGS ãä»ããŠãµã make ã«æž¡ããŸãã
MAKEFLAGS ã§ãã¯ãå®çŸ©ãšãã©ã°åŒæ°ãæž¡ãå Žå
ç°å¢å€æ°ãã¹ããŒã¹ãããã³ã¿ãæåã¯ããããã®åã«åŒçšç¬Šã§å²ã¿ãŸã
ããã¯ã¹ã©ãã·ã¥ä»ãã ç°å¢ãã MAKEFLAGS å€æ°ãèªã¿åããšãã
ããã¯ã¹ã©ãã·ã¥ã®ãã¹ãŠã®ã·ãŒã±ã³ã¹ãšãã¹ããŒã¹ãŸãã¯ã¿ãã®ããããã次ã®ããã«çœ®ãæããããŸã
åèªã®åºåããçºçãããã« XNUMX çªç®ã®æåã ãã®ä»ã®åºæ¥äº
ã®ããã¯ã¹ã©ãã·ã¥ã¯ä¿æãããŸãã åŒçšç¬Šã§å²ãŸããŠããªãã¹ããŒã¹ãã¿ããããã³æ¹è¡ã®ã°ã«ãŒã
æåã¯åèªåå²ãåŒãèµ·ãããŸãã
.MakeFLAGS æåããã®ã°ããŒãã«å€æ°ã«ã¯ makeã®çŸåšã®å®è¡æãªãã·ã§ã³
MAKEFLAGS ã®äžã§ãäžèšã®ç°å¢ããã³ã³ãã³ã ã©ã€ã³ããã
ã®å 容ãå€æŽããããšã§ã .MakeFLAGS ã°ããŒãã«å€æ°ãã¡ã€ã¯ãã¡ã€ã«
å©çšå¯èœã«ãªã£ã MAKEFLAGS ç°å¢å€æ°ã®å 容ãå€æŽã§ããŸã
ãã¹ãŠã®ããã°ã©ã ã«å¯Ÿã㊠make å®è¡ããŸãã ããã«ã¯è¿œå ãå«ãŸããŸã -f ãªãã·ã§ã³ã
çŸåšã®å€ .MakeFLAGS ã® MAKEFLAGS ã«ãã®ãŸãŸã³ããŒãããã ãã§ãã
åããã°ã©ã ã®ç°å¢ã
ã«å ¥åããããªãã·ã§ã³ã«æ³šæããŠãã ããã .MakeFLAGS ã©ã¡ããé»æµã«åœ±é¿ãäžããŸãã
ã®ã€ã³ã¹ã¿ã³ã¹ make MAKEFLAGS ã®ç¬èªã®ã³ããŒã«ãå³åº§ã«è¡šç€ºãããŸããã
ãã ããããã°ã©ã ã® MAKEFLAGS ç°å¢å€æ°ã«ã¯è¡šç€ºãããŸãã
ã«ãã£ãŠå®è¡ãããŸã make. äžæ¹ãMAKEFLAGS ãžã®çŽæ¥å²ãåœãŠ
ã©ã¡ããçŸåšã®ã€ã³ã¹ã¿ã³ã¹ã«ã¯åœ±é¿ããŸãã make ã«åãç¶ãããããšããªã make's
åäŸã ãšæ¯èŒããŠãã ãã .MakeFLAGS 以äžã®ç¹å¥ãªã¿ãŒã²ããã
MFãã©ãã°ã¹ ãã®å€æ°ã¯äžäœäºææ§ã®ããã«æäŸãããŠããããã¹ãŠã®
MAKEFLAGS ç°å¢å€æ°ã®ãªãã·ã§ã³ãšæå®ããããªãã·ã§ã³
on makeã®ã³ãã³ãã©ã€ã³ã
.ã¡ã€ã¯.PID ã®ããã»ã¹ ID make.
.Make.PPID ã®èŠªããã»ã¹ ID make.
.ã¡ã€ã¯.ãžã§ã.ãã¬ãã£ãã¯ã¹
If make ã§å®è¡ãããŸã -j -v 次ã«ãåã¿ãŒã²ããã®åºåã®åã«
ããŒã¯ã³ '--- ã¿ãŒã²ãã ---' ã®æåã®éšåã¯æ¬¡ã®æ¹æ³ã§å¶åŸ¡ã§ããŸã
.ã¡ã€ã¯.ãžã§ã.ãã¬ãã£ãã¯ã¹.
äŸ: .MAKE.JOB.PREFIX=${.newline}---${MAKE:T}[${.MAKE.PID}]
'---make[1234] target ---' ãŸãã¯
.MAKE.JOB.PREFIX=---pid[${.MAKE.PID}],ppid[${.MAKE.PPID}] ã¯çæããŸã
ã---pid[56789]ãppid[1234] ã¿ãŒã²ãã ---ãã®ãããªããŒã¯ã³ã«ããã远跡ã容æã«ãªããŸã
éæããã䞊å床ã
.ã¿ãŒã²ãã 察象äžèŠ§ make çŸåšæ§ç¯äžã§ãã
å«ãŸããŠããŸã èŠã å«ãŸããŠããŸã ç¹å¥ãªã¿ãŒã²ããã
.LIBS èŠã .LIBS ç¹å¥ãªã¿ãŒã²ããã
æ©æ¢° ãã·ã³ ã¢ãŒããã¯ãã£ã®åå make ããååŸãããŸãã
MACHINE ç°å¢å€æ°ããŸã㯠uname(3) å®çŸ©ãããŠããªãå Žåã
ãã·ã³_ã¢ãŒã ãã·ã³ ã¢ãŒããã¯ãã£ã®åå make ã®ããã«ã³ã³ãã€ã«ãããã§å®çŸ©ããã
ã³ã³ãã€ã«æéã
VPATH Makefile ã¯ãã³ãã³ã§åºåããããã£ã¬ã¯ããªã®ãªã¹ãã VPATHã ããã
ãã£ã¬ã¯ããªã¯ãã«ãã£ãŠãœãŒã¹ãã¡ã€ã«ãæ€çŽ¢ãããŸã make çµãã£ãåŸ
ãã¹ãŠã®å ¥å makefile ã解æããŸãã
å€æ° 修食å
å€æ°ã®å±éãå€æŽããŠãå€æ°ã®ååèªãéžæãŸãã¯å€æŽããããšãã§ããŸã (ããã§ã
ãåèªãã¯ã空çœã§åºåãããäžé£ã®æåã§ã)ã å€æ°ã®äžè¬çãªåœ¢åŒ
å±éã¯ä»¥äžã®éãã§ãã
{å€æ°[:修食å[:...]]}
å修食åã¯ãã³ãã³ãšæ¬¡ã®ç¹æ®æåã®ããããã§å§ãŸããŸãã ã³ãã³
ããã¯ã¹ã©ãã·ã¥ ('\') ã§ãšã¹ã±ãŒãã§ããŸãã
:C/ãã¿ãŒã³/眮æ/[1g]
å€ã®ååèªãå€æŽããæ¡åŒµæ£èŠè¡šçŸã®ãã¹ãŠã®äžèŽã眮ãæããŸã
è¡šçŸ ãã¿ãŒã³ ïŒåç §ããŠãã ãã åãã©ãŒããã(7)) ed(1)ã¹ã¿ã€ã« 眮æ æååã
éåžžãå€ã®ååèªã§ãã¿ãŒã³ãæåã«åºçŸããã®ã¯
ããã£ãã '1' 修食åã䜿çšãããšã眮æã¯æ倧㧠XNUMX ã€ã®åèªã«é©çšãããŸãã
'g' 修食åã«ããã眮æããã®å€ãã®ã€ã³ã¹ã¿ã³ã¹ã«é©çšãããŸãã
ãããèŠã€ãã£ãåèªãŸãã¯åèªã§çºçããæ€çŽ¢ãã¿ãŒã³ãã1ããšãXNUMXãã«æ³šæããŠãã ããã
ãgãã¯çŽäº€ã§ãã åè ã¯ãè€æ°ã®åèªãæœåšçã«å«ãŸãããã©ãããæå®ããŸãã
圱é¿ãåãããåŸè ã¯è€æ°ã®çœ®æãæœåšçã«çºçããå¯èœæ§ããããã©ãã
圱é¿ãåããååèªã
:E å€æ°å ã®ååèªããã®æ¥å°ŸèŸã«çœ®ãæããŸãã
:H å€æ°å ã®ååèªããæåŸã®ã³ã³ããŒãã³ããé€ããã¹ãŠã®åèªã«çœ®ãæããŸãã
:L å€æ°ãå°æåã«å€æããŸãã (éæšå¥š)
:Mãã¿ãŒã³ æ®ãã®ä¿®é£Ÿåã«äžèŽããåèªã®ã¿ãéžæããŸãã ã¹ã¿ã³ããŒããªã·ã§ã«
ã¯ã€ã«ãã«ãŒãæå ('*'ã'?'ãããã³ '[]') ã䜿çšã§ããŸãã ã¯ã€ã«ãã«ãŒãæå
ããã¯ã¹ã©ãã·ã¥ ('\') ã§ãšã¹ã±ãŒãã§ããŸãã
:Nãã¿ãŒã³ ããã¯æ¬¡ãšåãã§ã :Mãããããæ®ãã®éšåãšäžèŽããªããã¹ãŠã®åèªãéžæããŸã
修食åã
:O å€æ°å ã®ãã¹ãŠã®åèªãã¢ã«ãã¡ãããé ã«äžŠã¹ãŸãã
:Q å€æ°å ã®ãã¹ãŠã®ã·ã§ã« ã¡ã¿æåãåŒçšç¬Šã§å²ã¿ãæž¡ãããšãã§ããããã«ããŸãã
ã®ååž°åŒã³åºãã«ããå®å šã« make.
:R å€æ°å ã®ååèªããã®æ¥å°ŸèŸãé€ããã¹ãŠã®åèªã«çœ®ãæããŸãã
:S/å€ãæåå/æ°ããæåå/[g]
æåã«åºçŸããéšåãå€æŽããŸã å€ãæåå å€æ°ã®å€ã®ååèªã§ã
ããã æ°ããæåå. 'g' ãæåŸã®ã¹ã©ãã·ã¥ã«è¿œå ãããå Žå
ãã¿ãŒã³ã§ã¯ãååèªã®ãã¹ãŠã®åºçŸç®æã眮ãæããããŸãã ããã å€ãæåå ã§å§ãŸã
ãã£ã¬ãã ('^'), å€ãæåå ååèªã®å é ã«åºå®ãããŠããŸãã ããã
å€ãæåå ãã«èšå· ('$') ã§çµãããããããã®æ«å°Ÿã«åºå®ãããŸãã
èªã äžèº« æ°ããæååãã¢ã³ããµã³ã (ã&ã) ã¯æ¬¡ã®ããã«çœ®ãæããããŸãã å€ãæååã ã©ãã
æåã¯ã修食æååã®äžéšã®åºåãæåãšããŠäœ¿çšã§ããŸãã ã®
ã¢ã³ã«ãªã³ã°ãã¢ã³ããµã³ããåºåãæåã¯ããã¯ã¹ã©ãã·ã¥ã§ãšã¹ã±ãŒãã§ããŸã
('\')ã
å€æ°ã®å±éã¯äž¡æ¹ã®å éšã§éåžžã®æ¹æ³ã§è¡ãããŸãã å€ãæåå ããã³
æ°ããæåå å¯äžã®äŸå€ãšããŠãããã¯ã¹ã©ãã·ã¥ã䜿çšããŠ
éåžžã®ããã«å è¡ãããã«èšå·ã§ã¯ãªãããã«èšå· ('$') ã®å±éã
:old_string=æ°ãã_string
ããã¯ãAT&T System V UNIX ã¹ã¿ã€ã«ã®å€æ°çœ®æã§ãã ãããæåŸã«ãªãã¯ãã§ã
修食åãæå®ãããŠããŸãã ãã å€ãæåå or æ°ããæåå ãã¿ãŒã³ãå«ãŸãªã
äžèŽããæå % ãã®åŸããããã¯ã®æåŸã«åºå®ãããŠãããšæ³å®ãããŸã
ãããã£ãŠããµãã£ãã¯ã¹ã®ã¿ãŸãã¯åèªå šäœã眮ãæããããšãã§ããŸãã ãããªããš % ã¯
ã®éšåæåå å€ãæåå ã«çœ®ãæãããã æ°ããæåå.
:T å€æ°å ã®ååèªããã®æåŸã®ã³ã³ããŒãã³ãã«çœ®ãæããŸãã
:tl å€æ°ãå°æåã«å€æããŸãã
:〠å€æ°ã倧æåã«å€æããŸãã
:U å€æ°ã倧æåã«å€æããŸãã (éæšå¥š)
:u é£æ¥ããéè€ããåèªãåé€ããŸã (äŸ: uniqïŒ1ïŒïŒã
æ什ã æ¡ä»¶ä»ãã ãã㊠FOR ã«ãŒã
C ããã°ã©ãã³ã°èšèªãé£æ³ããããã£ã¬ã¯ãã£ããæ¡ä»¶æãããã³ for ã«ãŒãã¯ã
ã§æäŸ make. ãã®ãããªæ§é ã¯ãã¹ãŠãåäžã®ãããã§å§ãŸãè¡ã«ãã£ãŠèå¥ãããŸã
ïŒ'ã'ïŒ ãã£ã©ã¯ã¿ãŒã 次ã®ãã£ã¬ã¯ãã£ãããµããŒããããŠããŸãã
ãå«ã
ãå«ã "ãã¡ã€ã«"
æå®ãããã¡ã€ã¯ãã¡ã€ã«ãå«ããŸãã å±±æ¬åŒ§ãŸã㯠double ã®éã®å€æ°
åŒçšç¬Šãå±éãããŠãã¡ã€ã«åã圢æãããŸãã å±±ãã£ãã䜿çšããå Žåã¯ãä»å±ã®
makefile ã¯ãã·ã¹ãã ã® makefile ãã£ã¬ã¯ããªã«ãããšæ³å®ãããŠããŸãã äºéåŒçšç¬Šã
makefile ã®ãã£ã¬ã¯ããªãšã -I
ãªãã·ã§ã³ã¯ãã·ã¹ãã ã® makefile ãã£ã¬ã¯ããªã®åã«æ€çŽ¢ãããŸãã
.sinclude
.sinclude "ãã¡ã€ã«"
ããã ãå«ãããã ãããã¡ã€ã«ãèŠã€ãããªãå Žåãéãããšãã§ããªãå Žåã¯ãé»ã£ãŠç¡èŠãããŸãã
.undef å€æ°
æå®ãããã°ããŒãã«å€æ°ã®å®çŸ©ã解é€ããŸãã æªå®çŸ©ã«ã§ããã®ã¯ã°ããŒãã«å€æ°ã®ã¿ã§ãã
ããšã©ãŒ ã¡ãã»ãŒãž
ã¡ã€ã¯ãã¡ã€ã«ã®åŠçããã ã¡ã«çµäºããŸãã ã¡ã€ã¯ãã¡ã€ã«ã®ãã¡ã€ã«åã
ãšã©ãŒãçºçããè¡ãšæå®ãããã¡ãã»ãŒãžã
æšæºãšã©ãŒåºåãš make çµäºã³ãŒã 1 ã§çµäºããŸãã
ã¡ãã»ãŒãžãå±éãããŸãã
ãèŠå ã¡ãã»ãŒãž
èŠåã¡ãã»ãŒãžãçºè¡ããŸãã ã¡ã€ã¯ãã¡ã€ã«ã®ãã¡ã€ã«åãèŠåã衚瀺ãããè¡
ãæ€åºãããæå®ãããã¡ãã»ãŒãžãæšæºãšã©ãŒåºåã«åºåãããŸãã
ã¡ãã»ãŒãžå ã®å€æ°ãå±éãããŸãã
æ¡ä»¶ã¯ãMakefile ã®ã©ã®éšåãåŠçãããã決å®ããããã«äœ¿çšãããŸãã ãããã¯äœ¿çšãããŸã
C ããªããã»ããµã§ãµããŒããããŠããæ¡ä»¶ãšåæ§ã§ãã 以äžã®æ¡ä»¶
ãµããŒããããŠããŸãïŒ
ãããã [ïŒ]è¡šçŸ [ãªãã¬ãŒã¿ è¡šçŸ ...]
åŒã®å€ããã¹ãããŸãã
.ifdef [ïŒ]å€æ° [ãªãã¬ãŒã¿ å€æ° ...]
å€æ°ã®å€ããã¹ãããŸãã
.ifndef [ïŒ]å€æ° [ãªãã¬ãŒã¿ å€æ° ...]
å€æ°ã®å€ããã¹ãããŸãã
.ifmake [ïŒ]ã¿ãŒã²ãã [ãªãã¬ãŒã¿ ã¿ãŒã²ãã ...]
æ§ç¯äžã®ã¿ãŒã²ããããã¹ãããŸãã
.ifnmake [ïŒ]ã¿ãŒã²ãã [ãªãã¬ãŒã¿ ã¿ãŒã²ãã ...]
æ§ç¯äžã®ã¿ãŒã²ããããã¹ãããŸãã
ãããä»¥å€ æåŸã®æ¡ä»¶æã®æå³ãéã«ããŸãã
.elif [ïŒ]è¡šçŸ [ãªãã¬ãŒã¿ è¡šçŸ ...]
ã®çµã¿åãã ãããä»¥å€ ç¶ã ãããã.
.elifdef [ïŒ]å€æ° [ãªãã¬ãŒã¿ å€æ° ...]
ã®çµã¿åãã ãããä»¥å€ ç¶ã .ifdef.
.elifndef [ïŒ]å€æ° [ãªãã¬ãŒã¿ å€æ° ...]
ã®çµã¿åãã ãããä»¥å€ ç¶ã .ifndef.
.elifmake [ïŒ]ã¿ãŒã²ãã [ãªãã¬ãŒã¿ ã¿ãŒã²ãã ...]
ã®çµã¿åãã ãããä»¥å€ ç¶ã .ifmake.
.elifnmake [ïŒ]ã¿ãŒã²ãã [ãªãã¬ãŒã¿ ã¿ãŒã²ãã ...]
ã®çµã¿åãã ãããä»¥å€ ç¶ã .ifnmake.
ãENDIF æ¡ä»¶æã®æ¬äœãçµäºããŸãã
ã ãªãã¬ãŒã¿ 次ã®ããããã«ãªããŸãã
|| è«çOR
&& è«çç©; 'ãããåªå é äœãé«ã||'ã
C ã®ããã«ã make æ¡ä»¶ã決å®ããããã«å¿ èŠãªå Žåã«ã®ã¿æ¡ä»¶ãè©äŸ¡ããŸãã
䟡å€ã æ¬åŒ§ã䜿çšããŠè©äŸ¡ã®é åºãå€æŽã§ããŸãã ããŒã«æŒç®å '!'
æ¡ä»¶å šäœãè«ççã«åŠå®ããããã«äœ¿çšã§ããŸãã ãããåªå é äœãé«ããªããŸã
'&&'ã
ã®å€ è¡šçŸ æ¬¡ã®ããããã«ãªããŸãã
å®çŸ©æžã¿ã® å€æ°åãåŒæ°ãšããŠåããå€æ°ã
å®çŸ©ãããŠããŸãã
make ã¿ãŒã²ããåãåŒæ°ãšããŠåãåããã¿ãŒã²ããã次ã®å Žåã« true ãšè©äŸ¡ããŸãã
ïœã®äžéšãšããŠæå®ããã makeã®ã³ãã³ãã©ã€ã³ããŸãã¯ããã©ã«ãã®ã¿ãŒã²ãããšããŠå®£èšãããŸãã
(æé»çãŸãã¯æ瀺çã«ããåç §ããŠãã ããã ãäž»èŠ) ãå«ãè¡ã®å
æ¡ä»¶ä»ãã
空㮠å¯èœãªä¿®é£Ÿåãå«ãå€æ°ãåãã次ã®å Žåã« true ã«è©äŸ¡ãããŸãã
å€æ°ãå±éãããšã空ã®æååã«ãªããŸãã
ååš ãã¡ã€ã«åãåŒæ°ãšããŠåãåãããã¡ã€ã«ãååšããå Žå㯠true ãšè©äŸ¡ãããŸãã ã®
ãã¡ã€ã«ã¯ã·ã¹ãã æ€çŽ¢ãã¹äžã§æ€çŽ¢ãããŸã (ã ããã¹).
ã¿ãŒã²ãã ã¿ãŒã²ããåãåŒæ°ãšããŠåãåããã¿ãŒã²ãããæ¢ã«æå®ãããŠããå Žå㯠true ãšè©äŸ¡ãããŸãã
å®çŸ©ãããã
An è¡šçŸ æ°å€æ¯èŒãŸãã¯æååæ¯èŒã®å ŽåããããŸãããã®å Žåãå·ŠåŽ
ããªããã°ãªããŸãã be å€æ°å±éãå³èŸºã¯å®æ°ãŸãã¯å€æ°ã«ããããšãã§ããŸã
æ¡åŒµã äž¡åŽã§å€æ°å±éãå®è¡ãããåŸãçµæã®å€
æ¯èŒãããŸãã å€ã®åã« 0x ãããå Žåãå€ã¯ XNUMX é²æ°ãšããŠè§£éãããŸãã
XNUMX é²æ°ã§ãã XNUMX é²æ°ã¯ãµããŒããããŠããŸããã
æååæ¯èŒã§ã¯ã' ã®ã¿ã䜿çšã§ããŸã=='ãŸãã¯'!=' æŒç®åãæ°å€ (äž¡æ¹
æŽæ°ããã³æµ®åå°æ°ç¹) ã¯ã' ã䜿çšããŠæ¯èŒããããšãã§ããŸã>'ã'>='ã'<'ãš'<='
æŒç®åã
é¢ä¿æŒç®å (ããã³å³åŽã®å€) ãæå®ãããŠããªãå Žåãæé»ã® '!= 0' 䜿çšãããŠããã
ãã ããç¹ã«å·ŠåŽã®å€æ°ã
å±éã¯æååãè¿ããŸãã
æ¥æ make ãããã®æ¡ä»¶åŒã® XNUMX ã€ãè©äŸ¡ããŠãããšãã«ã次ã®åèªã«ééããŸãã
ã«å¿ããŠããmakeããŸãã¯ãdefinedãåŒãé©çšãããŸãã
æ¡ä»¶ã®åœ¢åŒã ãã©ãŒã ã ãããã, .ifdef or .ifndefããå®çŸ©æžã¿ã
è¡šçŸãé©çšãããŸãã åæ§ã«ããã©ãŒã ã .ifmake or .ifnmakeããmakeãåŒ
é©çšãããã
æ¡ä»¶ã true ãšè©äŸ¡ãããå Žåãã¡ã€ã¯ãã¡ã€ã«ã®è§£æã¯ä»¥åãšåæ§ã«ç¶è¡ãããŸãã ããã§ããã°
false ãšè©äŸ¡ããããšã次ã®è¡ã¯ã¹ããããããŸãã ã©ã¡ãã®å Žåããããã¯æ¬¡ã®æç¹ãŸã§ç¶ããŸãã
ãããä»¥å€ or ãENDIF èŠã€ãã£ãã
éåžžãfor ã«ãŒãã¯ãäžé£ã®ã«ãŒã«ããã¡ã€ã«ã®ãªã¹ãã«é©çšããããã«äœ¿çšãããŸãã ã®æ§æ
for ã«ãŒãã¯æ¬¡ã®ãšããã§ãã
ãã«ãšã£ãŠ å€æ° in è¡šçŸ
.endfor
forã®åŸ è¡šçŸ è©äŸ¡ãããåèªã«åå²ãããŸãã ç¹°ãè¿ã å€æ° is
ãååèªã«é 次èšå®ãã èŠåãäœã for ã®æ¬äœå éš
ã«ãŒãã
ã³ã¡ã³ã
ã³ã¡ã³ãã¯ãã·ã§ã« ã³ãã³ã ã©ã€ã³ä»¥å€ã®å Žæã§ã¯ããã·ã¥ ('#') æåã§å§ãŸããŸãã
è¡ã®æåŸãŸã§ç¶ããŸãã
ç¹æ® SOURCES
ãç¡èŠ ãã®ã¿ãŒã²ããã«é¢é£ä»ããããã³ãã³ãããã®ãšã©ãŒãç¡èŠããŸãã
ãã¹ãŠã®åã«ããã·ã¥ ('-') ãä»ããŸãã
ãäœã ããšã -n or -t ãªãã·ã§ã³
ãæå®ãããŸããã éåžžãååž°ãããŒã¯ããããã«äœ¿çšãããŸã make'sã
.NOTMAIN é垞㯠make æåã«ééããã¿ãŒã²ãããããã©ã«ãã®ã¿ãŒã²ãããšããŠéžæããŸãã
ã¿ãŒã²ãããæå®ãããŠããªãå Žåã«ãã«ããããŸãã ãã®ãœãŒã¹ã«ããããã®ã¿ãŒã²ããã¯
éžæãããã
.ãªãã·ã§ã³ ã¿ãŒã²ããããã®å±æ§ã§ããŒã¯ãããŠããå Žåã make æ¹æ³ãããããŸãã
äœæãããšããã®äºå®ã¯ç¡èŠããããã¡ã€ã«ãäžèŠãŸãã¯æ¢ã«ååšãããšèŠãªãããŸã
ååšããŠããŸãã
ã貎é æ¥æ make äžæããããšãéšåçã«äœæãããã¿ãŒã²ãããåé€ãããŸãã ãã®ãœãŒã¹
ã¿ãŒã²ãããåé€ãããã®ãé²ããŸãã
ãéãã ãã®ã¿ãŒã²ããã«é¢é£ä»ããããã³ãã³ããããããããšã³ãŒãããã®ããã«ãšã³ãŒããªãã§ãã ããã
ãã¹ãŠã®åã«ã¢ããããŒã¯ (ã@ã) ãä»ããŠããŸããã
ãäœ¿çš ã¿ãŒã²ããã次ã®ããã«å€ãã makeã®ãã¯ãã®ããŒãžã§ã³ã ã¿ãŒã²ãããšããŠäœ¿çšããå Žå
å¥ã®ã¿ãŒã²ããã®ãœãŒã¹ãååŸãããšãä»ã®ã¿ãŒã²ããã¯ã³ãã³ãããœãŒã¹ãããã³
å±æ§ïŒãé€ãïŒ ã䜿çšïŒãœãŒã¹ã®ã ã¿ãŒã²ããã«ãã§ã«ã³ãã³ããããå Žåã
ã ãäœ¿çš ã¿ãŒã²ããã®ã³ãã³ãããããã«è¿œå ãããŸãã
ãåŸ ã£ãŠ ç¹å¥ãªã ãåŸ ã£ãŠ source ã¯äŸåé¢ä¿ã®è¡ã«è¡šç€ºããããã®åã«ãããœãŒã¹
ããã¯ããã®è¡ã§ããã«ç¶ããœãŒã¹ã®åã«äœæãããŸãã ã«ãŒãããŠããŸãã
æ€åºãããã«ãŒãã圢æããã¿ãŒã²ããã¯é»ã£ãŠç¡èŠãããŸãã
ç¹æ® ã¿ãŒã²ãã
ç¹å¥ãªã¿ãŒã²ããã¯ãä»ã®ã¿ãŒã²ãããšäžç·ã«å«ããããšã¯ã§ããŸãããã€ãŸããããããå¯äžã®ã¿ãŒã²ããã§ãªããã°ãªããŸããã
æå®ã
ãå§ãã ãã®ã¿ãŒã²ããã«ã¢ã¿ãããããã³ãã³ã ã©ã€ã³ã¯ãä»ã®ã³ãã³ããå®è¡ãããåã«å®è¡ãããŸãã
è¡ããŸãã
ããã£ãã©ã«ã ããã¯ããçš®ã®ããšã§ã ãäœ¿çš ã¿ãŒã²ãã (ãœãŒã¹ãšããŠã®ã¿äœ¿çšããã) ã«å¯Ÿããã«ãŒã«ã
make äœæããä»ã®æ¹æ³ãç解ã§ããŸããã ã·ã§ã« ã¹ã¯ãªããã®ã¿ã䜿çšãããŸãã
ã .IMPSRC ç¶æ¿ããã¿ãŒã²ããã®å€æ° ããã£ãã©ã«ãã®ã³ãã³ãã¯ã
ã¿ãŒã²ããèªèº«ã®ååã
ãçµãã ãã®ã¿ãŒã²ããã«ã¢ã¿ãããããã³ãã³ã ã©ã€ã³ã¯ãä»ã®ãã¹ãŠãå®äºããåŸã«å®è¡ãããŸãã
è¡ããŸãã
ãç¡èŠ åãœãŒã¹ã«ããŒã¯ãä»ããŸãã ãç¡èŠ å±æ§ã ãœãŒã¹ããªãå Žå
ããã¯ã -i ãªãã·ã§ã³ãéžæããŸãã
å«ãŸããŠããŸã ãœãŒã¹ ãã¡ã€ã«ã«å«ããããšãã§ãããã¡ã€ã«ã瀺ããµãã£ãã¯ã¹ã®ãªã¹ãã
æ¥å°ŸèŸã¯ããã§ã«å®£èšãããŠããå¿ èŠããããŸã ãæ¥å°ŸèŸ; ä»»æã®ãµãã£ãã¯ã¹
宣èšãããšããã®æ€çŽ¢ãã¹ã«ãã£ã¬ã¯ããªãå«ãŸããŸã (ãåç §ããŠãã ãã)ã ããã¹ïŒã«é 眮
å«ãŸããŠããŸã ããããã®åã« -I ãã©ã°ã
ãå²ã蟌㿠If make ãäžæããããšããã®ã¿ãŒã²ããã®ã³ãã³ããå®è¡ãããŸãã
.LIBS ããã¯ã©ã€ãã©ãªã«å¯ŸããŠäœãããŸãã å«ãŸããŠããŸã ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ã«å¯ŸããŠã¯è¡ããŸããã
䜿çšãã©ã°ã¯ -L.
ãäž»èŠ ã¿ãŒã²ãããæå®ãããŠããªãå Žå make ãåŒã³åºããããšããã®ã¿ãŒã²ãããæ§ç¯ãããŸãã ãã
åžžã«æ瀺çãŸãã¯æé»çã«èšå®ãããŸãã make ããã©ã«ããéžæããŸã
ã³ãã³ãã§ããã©ã«ãã®ã¿ãŒã²ãããåç §ããæ¹æ³ããŠãŒã¶ãŒã«æäŸããŸãã
ã©ã€ã³ã
.Makefiledeps
ã§èª¬æãããŠããããã«ããã¡ã€ã¯ãã¡ã€ã«ã®åäœæãæ©èœãæå¹ã«ããŸãã ãªã¡ã€ã¯
ã¡ã€ã¯ãã¡ã€ã« 以äžã®ã»ã¯ã·ã§ã³ãã芧ãã ããã
.MakeFLAGS ãã®ã¿ãŒã²ããã¯ã次ã®ãã©ã°ãæå®ããæ¹æ³ãæäŸããŸãã make ã¡ã€ã¯ãã¡ã€ã«ã䜿çšããå Žåã
ãã©ã°ã¯ã·ã§ã«ã«å ¥åããããã®ããã«èŠããŸããã -f ãªãã·ã§ã³ã¯ãããŸãã
å¹æã ãã©ã° (ãé€ã -f) ããã³ãœãŒã¹ãšããŠæå®ãããå€æ°ã®å²ãåœãŠ
ãã®ã¿ãŒã²ããã® .MakeFLAGS å éšå€æ°ã ãé¡ãããŸã
ãã®ã¿ãŒã²ãããšã®éãã«æ³šæããŠãã ãã .MakeFLAGS å éšå€æ°:
ãã®ã¿ãŒã²ããã®ãœãŒã¹ãšããŠãªãã·ã§ã³ãŸãã¯å€æ°ã®å²ãåœãŠãæå®ãããšã
圱é¿ãåãŒã äž¡èšèªã§ çŸåšã®ã¡ã€ã¯ãã¡ã€ã«ãšãã¹ãŠã®ããã»ã¹ make å®è¡ããŸãã
.MFLAGS äžäœäºææ§ã®ãããäžèšãšåãã§ãã
.NOTPARALLEL
ãã©ã¬ã«ã¢ãŒããç¡å¹ã«ããŸãã
.NO_PARALLEL
äžèšãšåæ§ãä»ã®ãã®ãšã®äºææ§ã®ãã ååŸã¡ã€ã¯ ããªã¢ã³ãã
ã泚æ ååä»ãã¿ãŒã²ããã¯é çªã«äœæãããŸãã
ããã¹ ãœãŒã¹ã¯ããã£ã¬ã¯ããªå ã«èŠã€ãããªããã¡ã€ã«ãæ€çŽ¢ãããã£ã¬ã¯ããªã§ãã
ã«ã¬ã³ããã£ã¬ã¯ããªã ãœãŒã¹ãæå®ãããŠããªãå Žåã¯ã以åã«æå®ããããœãŒã¹
ãã£ã¬ã¯ããªãåé€ãããŸãã å¯èœã§ããã°ã ããã¹ ã®äœ¿çšãããåªå ãããŸã
ã VPATH å€æ°ã«ä¿åããŸãïŒ
ããã¹ãµãã£ãã¯ã¹
ãœãŒã¹ã¯ãæ¡åŒµåã®ãªããã¡ã€ã«ãæ€çŽ¢ãããã£ã¬ã¯ããªã§ãã
çŸåšã®ãã£ã¬ã¯ããªã«ãããŸãã ã® make ãŠãŒãã£ãªãã£ã¯æåã«æ¥å°ŸèŸãæ€çŽ¢ããŸã
ãã¡ã€ã«ãèŠã€ãããªãå Žåã«ããã©ã«ã ãã¹ã«æ»ãåã«ãæ€çŽ¢ãã¹
ããã®ã ãã®ãã©ãŒã ã¯æ¬¡ã®å Žåã«å¿ èŠã§ã .LIBS ããã³ å«ãŸããŠããŸã åäœããããã«ã
.PHONY é©çš .PHONY æå®ããããœãŒã¹ãžã®å±æ§ã ããã§å¯Ÿè±¡
å±æ§ã¯åžžã«å€ããªã£ãŠãããšèŠãªãããŸãã
.POSIX Adjust makeã®åäœã該åœãã POSIX ä»æ§ã«äžèŽãããŸãã ïŒããã«æ³šæããŠãã ãã
ãã¡ã€ã¯ãã¡ã€ã«ã®åäœæãæ©èœãç¡å¹ã«ããŸãã)
ã貎é é©çš ã貎é æå®ããããœãŒã¹ãžã®å±æ§ã ãœãŒã¹ããªãå Žåã¯ã
æå®ã ã貎é å±æ§ã¯ãã¡ã€ã«å ã®ãã¹ãŠã®ã¿ãŒã²ããã«é©çšãããŸãã
ãã·ã§ã« å¥ã®ã·ã§ã«ãéžæããŸãã ãã®ã¿ãŒã²ããã®ãœãŒã¹ã®åœ¢åŒã¯ ããŒ=å€.
ã ã㌠ã®äžã€ã§ãããŸãïŒ
path æ°ããã·ã§ã«ãžã®ãã¹ãæå®ããŸãã
å æ°ããã·ã§ã«ã®ååãæå®ããŸãã ããã¯ã
XNUMX ã€ã®çµã¿èŸŒã¿ã·ã§ã« (以äžãåç §) ãŸãã¯ãã®ä»ã®ååã
éã㪠ã·ã§ã« ã³ãã³ããæå®ããŠããšã³ãŒããªãã«ããŸãã
echo ãšã³ãŒããªã³ã«ããã·ã§ã« ã³ãã³ããæå®ããŸãã
filter éåžžãã·ã§ã«ã¯ããšã³ãŒããªãã«ããåã«ããšã³ãŒ ãªã ã³ãã³ããåºåããŸãã
ããã¯ãã·ã§ã«ã«ãã£ãŠåºåãããæ£ç¢ºãªæååã§ããã
ã·ã§ã«åºåããã£ã«ã¿ãªã³ã°ã㊠echo off ã³ãã³ããåé€ããããã«äœ¿çšãããŸãã
ãšã³ãŒãã©ã° ãšã³ãŒããªã³ã«ããã·ã§ã«ãªãã·ã§ã³ã
ãšã©ãŒãã©ã° ãšã©ãŒãã§ãã¯ããªã³ã«ããã·ã§ã«ãªãã·ã§ã³ã ãšã©ãŒãã§ãã¯ããªã³ã®å Žåã
ã³ãã³ãããŒã以å€ã®ã¹ããŒã¿ã¹ãè¿ããå Žåãã·ã§ã«ã¯çµäºããå¿ èŠããããŸãã
hasErrCtl ã·ã§ã«ã«ãšã©ãŒå¶åŸ¡ãããå Žå㯠trueã
ãã§ã㯠If hasErrCtl true ã®å Žåãããã¯ãšã©ãŒãæå¹ã«ããã·ã§ã« ã³ãã³ãã§ãã
ãã§ãã¯äžã ããã hasErrCtl false ã®å Žåãããã¯ã³ãã³ã ãã³ãã¬ãŒãã§ã
ãšã©ãŒãã§ãã¯ãç¡å¹ã«ãªã£ãŠããã³ãã³ãããšã³ãŒãââãŸãã ãã³ãã¬ãŒã
'%s' ãå«ãŸããŠããå¿ èŠããããŸãã
ç¡èŠãã If hasErrCtl trueãããã¯ãšã©ãŒãæå¹ã«ããã·ã§ã« ã³ãã³ãã§ãã
ãã§ãã¯ãªãã ããã hasErrCtl ã false ã®å Žåãããã¯ã³ãã³ã ãã³ãã¬ãŒãã§ãã
ãšã©ãŒãç¡èŠãããããã«ã³ãã³ããå®è¡ããŸãã ãã³ãã¬ãŒãã¯
'%s' ãå«ãŸããŠããŸãã
ã¡ã¿ ã·ã§ã«ã®ã¡ã¿æååã§ãã
ãã«ãã€ã³ ããã¯ããã¹ãŠã®ã·ã§ã«ã®çµã¿èŸŒã¿ã³ãã³ããåºåã£ãŠä¿æããæååã§ã
ãã©ã³ã¯ã«ãã£ãŠã ã® ã¡ã¿ ããã³ ãã«ãã€ã³ æååã¯äºæã¢ãŒãã§äœ¿çšãããŸãã
ã³ãã³ã ã©ã€ã³ã«ã¡ã¿æåãå«ãŸããŠãããã次ã®æåã§å§ãŸã£ãŠããªãå Žå
ã·ã§ã«çµã¿èŸŒã¿ã§ãã·ã§ã«ãåŒã³åºããã«çŽæ¥å®è¡ãããŸãã
ãããã®æååã® XNUMX 〠(ãŸãã¯äž¡æ¹) ã空ã®å Žåããã¹ãŠã®ã³ãã³ãã¯
ã·ã§ã«ãä»ããŠå®è¡ãããŸãã
èšå®è§£é€ true ã®å Žåãå®è¡åã« ENV ç°å¢å€æ°ãåé€ããŸãã
æå³ã ããã¯ãKorn ã·ã§ã« (kshã®).
æååã®å€ã¯ãäºéåŒçšç¬Šã§å²ãå¿ èŠããããŸãã ããŒã«å€ã¯
true ãæå³ãã 'T' ãŸã㯠'Y' (ãããã®å Žåã) ãšããŠæå®ãããŸãã ãã®ä»ã®å€ãååŸãããŸã
åœãæå³ããŸãã
ã«ã¯ããã€ãã®çšéããããŸã ãã·ã§ã« ç®æšïŒ
· çµã¿èŸŒã¿ã·ã§ã«ã® XNUMX ã€ãéžæããŸãã ããã¯ã
ã·ã§ã«ã®åå å ããŒã¯ãŒãã ãå€æŽããããšãå¯èœã§ãã
ä»ã®ããŒã¯ãŒããæå®ããã ãã§ãçµã¿èŸŒã¿ã·ã§ã«ã®ãã©ã¡ãŒã¿ãŒ (äŸå€ãé€ã)
for path).
· çµã¿èŸŒã¿ã·ã§ã«ã® XNUMX ã€ã«å¥ã®å®è¡å¯èœãã¡ã€ã«ã䜿çšããã ããã¯ã«ãã£ãŠè¡ãããŸã
ã§å®è¡å¯èœãã¡ã€ã«ãžã®ãã¹ãæå®ãã path ããŒã¯ãŒãã æåŸã®å Žå
component ã¯çµã¿èŸŒã¿ã·ã§ã«ã®ååãšåãã§ããååãä»ããå¿ èŠã¯ãããŸãã
æå®; ç°ãªãå Žåã¯ãååãæå®ããå¿ èŠããããŸãã
.SHELL: ãã¹="/usr/local/bin/sh"
çµã¿èŸŒã¿ã·ã§ã«ãshããéžæããŸãããããå®è¡ããŸã /usr/local/bin/sh.
åã®å Žåãšåæ§ã«ãã®ãã©ã¡ãŒã¿ãŒãå€æŽããããšãå¯èœã§ã
ããããæå®ããã ãã§çµã¿èŸŒã¿ã·ã§ã«ã
· ãŸã£ããç°ãªãã·ã§ã«ã䜿çšã ããã¯ããã¹ãŠã®ããŒã¯ãŒããæå®ããããšã«ãã£ãŠè¡ãããŸãã
çµã¿èŸŒã¿ã·ã§ã«ã¯ãshãããcshããããã³ãkshãã§ãã FreeBSD ã«ã¯ kshã® in
/ binã«ãæå®ããã®ã¯è³¢æã§ã¯ãããŸãã åãã¹ãæå®ããã« ="ksh" ã
ãéãã é©çš ãéãã æå®ããããœãŒã¹ãžã®å±æ§ã ãœãŒã¹ããªãå Žåã¯ã
æå®ã ãéãã å±æ§ã¯ãã¡ã€ã«å ã®ãã¹ãŠã®ã³ãã³ãã«é©çšãããŸãã
ãæ¥å°ŸèŸ åãœãŒã¹ã¯æ¥å°ŸèŸãæå®ããŸãã makeã ãœãŒã¹ãæå®ãããŠããªãå Žåã¯ã
以åã«æå®ããããµãã£ãã¯ã¹ã¯åé€ãããŸãã
.WARN åãœãŒã¹ã¯ãåè¿°ã®ããã«èŠåãã©ã°ãæå®ããŸãã -x command
åç·ãªãã·ã§ã³ã ã³ãã³ãã©ã€ã³ã§æå®ãããèŠåãã©ã°ãåªå ãããŸã
ã¡ã€ã¯ãã¡ã€ã«ã§æå®ããããã©ã°ã ãŸããã³ãã³ãã©ã€ã³èŠåãã©ã°ãããã·ã¥ãããŸã
èŠåãã©ã°ãçæãããããã«ãMAKEFLAGS ç°å¢å€æ°ããµãã¡ã€ã¯ããŸã
ã³ãã³ãã©ã€ã³ã§æå®ãããšããã¹ãŠã®ãµã make ã«åœ±é¿ããŸãã è€æ°ã®ãã©ã°ã䜿çšã§ããŸã
åäžã§æå®ãã .WARN ãããã空çœã§åºåã£ãŠã¿ãŒã²ããã«ããŸãã
ãªã¡ã€ã¯ ã¡ã€ã¯ãã¡ã€ã«
ã¹ãã·ã£ã«ã¿ãŒã²ãããªã .Makefiledeps Makefile ã«ååšãã make ããªã¡ã€ã¯ããå¯èœã«ãã
Makefileãæ©èœã Makefileãšå«ãŸããŠãããã¹ãŠã®ãã¡ã€ã«ãèªãã åŸ
ãå«ã or .sinclude ãã£ã¬ã¯ãã£ã (ãœãŒã¹ Makefile) make åãœãŒã¹ Makefile ã
ã¿ãŒã²ããã«ãããããåæ§ç¯ããããšããŸãã æ瀺çã«ãŒã«ãšæé»çã«ãŒã«ã®äž¡æ¹ããã§ãã¯ããããã¹ãŠã®ãœãŒã¹ããã§ãã¯ãããŸã
Makefile ã¯å¿ èŠã«å¿ããŠæŽæ°ãããŸãã ãœãŒã¹ Makefile ã®ãããããåæ§ç¯ãããå Žåã make
ããããªç¶æ ããåèµ·åããŸãã
ç¡éã«ãŒããé²ãããã«ã次ã®ãœãŒã¹ Makefile ã¿ãŒã²ããã¯ç¡èŠãããŸãã
· :: åææ¡ä»¶ã®ãªãã¿ãŒã²ãã
· ! ã¿ãŒã²ãã
· æã£ãŠããã¿ãŒã²ãã .PHONY or .EXEC å±æ§
· åææ¡ä»¶ãã³ãã³ãããªãã¿ãŒã²ãã
ãœãŒã¹ Makefile ãäœãçŽããšãã®ãªãã·ã§ã³ -t ïŒã¿ãŒã²ããã«ã¿ããïŒã -q (ã¯ãšãªã¢ãŒã)ãããã³ -n (å®è¡è ãªã)
ãœãŒã¹ Makefile ãã¿ãŒã²ãããšããŠæ瀺çã«æå®ãããŠããªãéããæå¹ã«ãªããŸããã make
ã³ãã³ãã©ã€ã³ã
ããã«ãã·ã¹ãã ã®ã¡ã€ã¯ãã¡ã€ã«ãš ãããã«ãã ã§ãã Makefile ãšã¯èŠãªãããŸããã
å建ãããã
ENVIRONMENT
ã make ãŠãŒãã£ãªãã£ã¯ãååšããå Žåã次ã®ç°å¢å€æ°ã䜿çšããŸã: MACHINEãMAKEã
MAKEFLAGSãMAKEOBJDIRãMAKEOBJDIRPREFIXãããã³ MAKESYSPATHã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ fmake ã䜿çšãã