ããã¯ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒããŸã㯠MAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ã®è€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã® XNUMX ã€ã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããã³ãã³ã ã¡ã¿ã³ã³ãã£ã°ã§ãã
ããã°ã©ã ïŒ
NAME
metaconfig - æ§æã¹ã¯ãªãã ãžã§ãã¬ãŒã¿ãŒ
SYNOPSIS
ã¡ã¿æ§æ [-dhkmostvwGMV ] [ -L DIR ]
DESCRIPTION
ã¡ã¿æ§æ Configure ã¹ã¯ãªãããçæããããã°ã©ã ã§ãã äœãããããªãå Žåã¯ã
ã¹ã¯ãªããã®èšå®ã¯ã次ã®ã»ã¯ã·ã§ã³ã«é²ãã§ãã ããã ãã¥ãŒããªã¢ã« ãã®ããã¥ã¢ã«ããŒãžã®ã»ã¯ã·ã§ã³ã ããªããæããªã
䜿çšæ¹æ³ã®å®å šãªïŒæ£åŒãªïŒèª¬æ ã¡ã¿æ§æ ãšãã®åäœã«ã€ããŠã¯ããã芧ãã ããã
REFERENCE ã»ã¯ã·ã§ã³ã 以äžã¯ãç¥èã®ãã人åãã®ç°¡åãªçŽ¹ä»ãšãªãã¡ã¬ã³ã¹ã§ãã
ãŠãŒã¶ãŒã
ã¡ã¿æ§æ ã®ã»ããããåäœããŸã ãŠããã ããã¯ãmetaconfig ãç¥ã£ãŠãããã¹ãŠãå®çŸ©ããŸã
æºåž¯æ§ã åãŠãããã¯èªå·±å®çµåã§ãããã©ãã«ãç»é²ããå¿ èŠã¯ãããŸãã
ãããªã㯠U ãã£ã¬ã¯ããªãŸãã¯ãã©ã€ããŒã U ãã£ã¬ã¯ããªã®ããããã«å«ããå Žåãé€ããŸãã ãã
dist ããã±ãŒãž (metaconfig ã¯äžéšã§ã) ã LIB ã«ã€ã³ã¹ããŒã«ããã次ã«ãããªã㯠U
ãã£ã¬ã¯ããªã¯ LIB/dist/mcon/U ã§ãã ãã®ãã·ã³ã§ã¯ãLIB ãã£ã¬ã¯ããªã¯ /usr/share/dist ã§ãã ããªãã®
ãã©ã€ããŒã U ãã£ã¬ã¯ããªãããå Žåã¯ãããã±ãŒãžã®æäžäœãã£ã¬ã¯ããªã«ãããŸãã
èµ°ãåã« ã¡ã¿æ§æ ããã€ãã®ããšãè¡ãå¿ èŠããããŸãã
· 次ã®ã³ãã³ããå®è¡ããŠãããã±ãŒãžã®æäžäœãã£ã¬ã¯ããªã« .package ãã¡ã€ã«ãäœæããŸãã ããã¯ã€ãã.
ãã®ããã°ã©ã ã¯ããªãã®è·ç©ã«ã€ããŠå°ããããªãã話ããå 容ãèšæ¶ããŸãã
ãã¹ãŠã® dist ããã°ã©ã ã¯è³¢æã§ãã
· çšèªé (LIB/dist/mcon å ) ãåç §ããã·ã§ã« ã¹ã¯ãªãããš C ããã°ã©ã ãäœæããŸãã
ã·ã³ãã«ã«é¢ããŠã¯ãmetaconfig ãå®çŸ©æ¹æ³ãç¥ã£ãŠããŸãã èšãå¿ èŠã¯ãªãã
metaconfig ãã©ã®ã·ã³ãã«ã䜿çšãããã調ã¹ãŸãã
· Makefile ãŸãã¯äŸåããã·ã§ã« ã¹ã¯ãªãããäœæããããã«å¿ èŠãª .SH ã¹ã¯ãªãããçæããŸãã
Configure ã§å®çŸ©ãããå€ã«åºã¥ããŠã ãšããããã°ã©ã ããããŸã ã¡ã€ã¯SH ããã¯ããªããå©ããã§ããã
ãã¬ãŒã³ãªã¹ã¯ãªããã script.SH ãã³ãã¬ãŒãã«å€æããŸãã ãŸã ç·šéãå¿ èŠãªå ŽåããããŸã
çµæã® .SH ãã¡ã€ã«ã«å¯ŸããŠå®è¡ãããå€æ°æ§æéšåã
ã¹ã¯ãªããã®å é éšå (ã«ãã£ãŠçæãããã€ã³ã©ã€ã³ ã³ã¡ã³ããåç §) ã¡ã€ã¯SH .SH å ã§
ãã¡ã€ã«ïŒã
· æäžäœãã£ã¬ã¯ããªã«ããã¹ãŠã®ãã¡ã€ã«ããªã¹ããã MANIFEST.new ãã¡ã€ã«ãäœæããŸãã
ããªãã®ããã±ãŒãžã ãã®ãã¡ã€ã«ã¯éå ¬éã®ãŸãŸã§ãããæçµçãªãã¡ã€ã«ã«ã¯å«ãŸããŸããã
ååžã (䟿å®äžãMANIFEST ãã¡ã€ã«ã¯ ã¡ã¿æ§æ if
MANIFEST.new ãã¡ã€ã«ã¯ãŸã ãããŸããã) ãã¡ã€ã«åã¯åãã¡ã€ã«ã®æåã®ãã£ãŒã«ãã§ããå¿ èŠããããŸãã
ã©ã€ã³ã ããã€ãã®ç©ºçœã®åŸã«ããã¡ã€ã«ã説æããçãã³ã¡ã³ããè¿œå ã§ããŸãã ã®ã¿
ãœãŒã¹ãã¡ã€ã«ãããã«ãªã¹ããããŠããã¯ãã§ãã ç¹å¥ãªãã¡ã€ã« ãããã¬ãã«.h ïŒããã¯
ãããé©çšããŒã«ã«ãã£ãŠåŠçããã³ä¿å®ãããŸã -- ãåç §ããŠãã ããã ããã(1)) ã¯ã
MANIFEST.new ãã¡ã€ã«ã§ãããäžéšã®ããŒã«ã§ã¯é»ã£ãŠç¡èŠãããå ŽåããããŸãã çµéšåãšããŠã
RCS ã«ãã£ãŠç®¡çãããŠãããã¡ã€ã«ã®ã¿ãããã«ãªã¹ããããå¿ èŠããããŸãã ãããã¬ãã«.h ãã¡ã€ã«ã§ãã
éèŠãªäŸå€ã XNUMX ã€ãããŸãã
· ãªãã·ã§ã³ã§ããšã¯ã¹ããŒããããããŒãžã§ã³ãšãªã MANIFEST ãã¡ã€ã«ãäœæããããšãã§ããŸãã
MANIFEST.new ã®ã ãã®ãã¡ã€ã«ã¯ãªãªãŒã¹ã®äžéšã«ããå¿ èŠããããŸããã€ãŸããäž¡æ¹ã®ãªãªãŒã¹ã«ãªã¹ããããå¿ èŠããããŸãã
MANIFEST.new ãš MANIFEST èªäœã ã®XNUMX〠ã¡ã¿æ§æ ãŠãããã¯ããã«ã€ããŠç¥ã£ãŠããŸã
ãã¡ã€ã«ãäœæããConfigure ã«ãªãªãŒã¹ ãã§ãã¯ã匷å¶çã«å®è¡ããããã¹ãŠã®ãã¡ã€ã«ã確å®ã«ä¿åãããŠããããšã確èªããŸãã
ããã«ãªã¹ããããŠããã®ã¯é åžç©ã®äžéšã§ãã MANIFEST ããã³ MANIFEST.new ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
ãªã³ã¯ã§ã¯ãªããåºå¥ããŠãã ããã
· å€æŽãã .U ãã¡ã€ã«ããã©ã€ããŒã U ãã£ã¬ã¯ããªã«ã³ããŒããŸãã ä»»æã® .U ãã¡ã€ã«
ãã©ã€ããŒã U ãã£ã¬ã¯ããªã«ãããã£ã¬ã¯ããªã¯ããããªã㯠U ãã£ã¬ã¯ããªã«ãããã£ã¬ã¯ããªãããåªå ããŠäœ¿çšãããŸãã
ãã£ã¬ã¯ããªã ããšãã°ãä»»æã®ãŠãããã匷å¶çã«å«ãã XNUMX ã€ã®æ¹æ³ã¯ãEnd.U ãã³ããŒããããšã§ãã
ãã¡ã€ã«ã .U ãã£ã¬ã¯ããªã«è¿œå ããäŸåé¢ä¿ãšããŠå¿ èŠãªãŠãããã®ååãè¿œå ããŸãã
?MAKE: è¡ã®çµããã ç¹å®ã®ãŠãããã¯ãã®æ¹æ³ã§ã®ã¿åŒ·å¶ã§ããŸãã
Warn_*.U ããã³ Chk_*.U ã®åœ¢åŒã®ãã®ã ç¹å®ã®ããã©ã«ããã«ã¹ã¿ãã€ãºããããšãã§ããŸã
Myinit.U ãããã±ãŒãžã®ãã©ã€ããŒã U ãã£ã¬ã¯ããªã«ã³ããŒããŠå€æ°ãæ§æããŸãã
ãã®ãŠãããå ã®å€æ°ãèšå®ããŸãã
ããã§å®è¡ã®æºåãæŽããŸãã ã¡ã¿æ§æã ããã¯ã æ§æ ãã¡ã€ã«ãããã³ãªãã·ã§ã³ã§
config_h.SH ãã¡ã€ã« (ãœãŒã¹ã§ C ã·ã³ãã«ã䜿çšãããŠããå Žå)ã çæããããã¡ã€ã«ã¯ã
å¿ èŠã«å¿ããŠãMANIFEST.new ã«èªåçã«è¿œå ãããŸãã å¿ããã«ã¢ããããŒãããŠãã ãã
ãã ãMANIFESTãã¡ã€ã«ã
æ°ãããŠããããäœæããã«ã¯ã次ã®æé ãå®è¡ããŸãã
· åæ§ã®ãŠããããæ°ãã .U ãã¡ã€ã«ã«ã³ããŒããŸãã éžæããååã¯ã
ãŠãããã«ãã£ãŠçæãããå€æ°ããã ããããã¯ãŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å®çãªãã®ã§ãããæ©èœãæäŸãããã®ã§ã¯ãããŸããã
èŠä»¶ã ãã¡ã€ã«åãéåããªãããã«ã12 æå以äžã«ããå¿ èŠããããŸãã
å®éã«ã¯ãRCS ã䜿çšããã人ã䜿çšã§ããããã«ããããã 10 以äžã«ããå¿ èŠããããŸãã
åãåããã«æåŸã« .U,v ãä»ããŸãã Metaconfig ã¯æåã®æåã®å€§æåãšå°æåã䜿çšããŠã
å€æ°ãå®éã«ãã®ãŠãããã«ãã£ãŠçæããããã©ãããå€æããããã倧æåã«ããªãã§ãã ããã
ã·ã§ã«å€æ°ãçæããããšã«ãªã£ãŠããå Žåã¯ãŠãããåã
· æ°ãã .U ãã¡ã€ã«ãå¿ èŠã«å¿ããŠç·šéããŸãã æåã® ?MAKE: è¡ã¯ã
äŸåé¢ä¿; æåŸã®ãªã¹ãã®åã«ããã®ãŠããããå®çŸ©ãããã¹ãŠã®å€æ°ãã³ãã³ä»ãããŸãã
æåŸã®ã³ãã³ã®åŸã«ã¯ããã®åäœãäŸåãããã¹ãŠã®å€æ° (ãŸãã¯ä»ã®åäœ) ãå ¥ããŸãã
ãããã®ãªã¹ããæ£ç¢ºã§ããããšã¯éåžžã«éèŠã§ãã äŸåé¢ä¿ããªãã·ã§ã³ã§ããã
ããã©ã«ãå€ã䜿çšã§ããå Žåã¯ãäŸåé¢ä¿ã®åã«ã+ãèšå·ãä»ããå¿ èŠããããŸãã ã®
æ¬åœã«å¿ èŠã§ãªãéãã察å¿ãããŠãããã¯ã·ã³ãã«ãèšç®ããããã«ããŒããããŸããã
å¥ã®ãŠãããã§ã
· å¯èœãªéããäžã§å®çŸ©ãããã·ã§ã«å€æ°ã«åºã¥ããŠãŠãããããã©ã¡ãŒã¿åããŸãã
?INIT: è¡ã ããã«ãããå€æ°å®çŸ©ã Init.U ãŠããããŸã§ç§»åãããŸãã
ãããã¯ãInit.U ã®åŸã«å«ãŸãã Myinit.U ã®å®çŸ©ã«ãã£ãŠãªãŒããŒã©ã€ãã§ããŸãã
· å¿ èŠãª C ã·ã³ãã«ã®å®çŸ©ã ?H: è¡ãšããŠè¿œå ããŸãã ã§å§ãŸãè¡
.U ãã¡ã€ã«å ã® ?H:?%<: ã¯ã次ã®å Žåã«éããæçµç㪠config.h ãã¡ã€ã«ã«è¿œå ãããŸãã
metaconfig ã¯ããã®ãŠããããå¿ èŠã§ãããšå€æããŸãã %< ã¯ãŠãããã®ååãè¡šããŸãã
以äžã«åŸã£ãå Žåãããã¯ããŸããŸãã¡ã€ã«åã§ããããŸã (.U ãªã)ã
倧äŒã å€æ°ã®ããããã®å Žåã«åããŠãå ?H: è¡ã«å¿ ãã³ã¡ã³ããå ¥ããŠãã ããã
è¡ã®ååã§çœ®æãè¡ããšãã³ã¡ã³ããçµäºããã«ã³ã¡ã³ããéå§ãããŸãã ä»»æã®ã·ã§ã«
d_ ã§å§ãŸãå€æ°ã¯ãããè¡ãå¯èœæ§ãããããã泚æããŠãã ããã ?%<: ãçç¥ãããšã
metaconfig ã¯ãå®çŸ©ãå¿ èŠãªã·ã³ãã«ãçŽæçã«ç解ããããšããŸãã
config.h ã«å«ããŸãã
· çšèªéã®å®çŸ©ããã·ã§ã«å€æ°ã®å Žå㯠?S: è¡ãC ã®å Žå㯠?C: è¡ãšããŠè¿œå ããŸãã
ããªããã»ããµå€æ°ã äŸã«ã€ããŠã¯ãçŸåšã®åäœãåç §ããŠãã ããã éåžžã«éèŠã§ã
åãšã³ããªã¯å·Šæãã®ã·ã³ãã«åã§å§ãŸããåãšã³ããªã¯ ?C: ã§çµãããŸãã ãŸãã¯
?S:ã ã©ã€ã³ã C ããªããã»ããµã®ã·ã³ãã« ãšã³ããªãå€æããã¢ã«ãŽãªãºã ã
config.h ã®ã³ã¡ã³ããžã®çšèªéã¯ããã«äŸåããŸãã
ã»å šãŠã®æ³šæãå¿ ã確èªããŠãã ããã ã©ã€ã³ã¯æ£ããã§ãã æ£ããé åºã¯æ¬¡ã®ãšããã§ãã
?RCS: ããã³ ?X: åºæ¬çã«ã¯åãªãã³ã¡ã³ãã§ã
?MAKE: ã¡ã¿ã³ã³ãã£ã°ã®äŸåé¢ä¿
?Y: ãŠãããé 眮æ什
?S: çšèªéã®ã·ã§ã«å®çŸ©
?C: çšèªé C ã®å®çŸ©
?H: config.h ã®å®çŸ©
?M: confmagic.h ã®å®çŸ©
?W: å¿ èŠãªã·ã³ãã«
?V: å¯èŠã·ã³ãã«
?FïŒæ¬æ©ã§äœæãããã¡ã€ã«
?T: 䜿çšãããäžæã·ã§ã«ã·ã³ãã«
?D: ãªãã·ã§ã³ã®äŸåé¢ä¿ã®ããã©ã«ãå€
?O: å»æ¢ããããŠããããããŒã¯ããããã«äœ¿çšãããŸãã
?LINT: metalint ãã³ã
?INIT: ã·ã§ã«ã·ã³ãã«ã®åæå
以äžã«ãè¡ã®é åºãšäœ¿çšã§ããããŸããŸãªåœ¢åŒã瀺ãäŸã瀺ããŸãã
?RCS: $RCS-Id$
?RCSïŒèäœæš©æ å ±
?RCS: $RCS-Log$
ïŒããïŒ
?X: äžèªç¶ãªäŸ
ïŒããïŒ
?MAKE:d_one two: three +XNUMX Five
?MAKE: -pick add $@ %
?Y:ããã©ã«ã
?S:d_one:
?S: æåã®ã·ã§ã« ã·ã³ãã«ãæ¡ä»¶ä»ã㧠ONE ãå®çŸ©ããŸãã
?S:ã
?S:XNUMX:
?S: XNUMX çªç®ã®ã·ã§ã« ã·ã³ãã«ãTWO ã®å€ã
?S:ã
ïŒåéïŒ
?C: æåã® C èšå·ã
?C:ã
?CïŒããŒïŒ
?C: XNUMX çªç®ã® C èšå·ã
?C:ã
?H:#$d_one ONE /**/
?H:#define TWO "$two"
?H:#$d_one ONE_TWO "$two"
?H:ã
?M:ããªãã: HAS_FLIP
?M:#ifndef HAS_FLIP
?M:#define ããªãã(x) ãããã(x)
?M:#endif
?MïŒã
?W:%<:one_two
?V:p_one p_two:p_three
?F:ãã¡ã€ã« ./ftest !tmp
?T:tmp å€æ°
?D:two='undef'
?LINT: XNUMX ã€å€æŽ
?INIT:two_init='2'
: ãŠããããå®è£ ããã·ã§ã«ã³ãŒãã¯æ¬¡ã®ãšããã§ã
p_one='XNUMX'
p_two='XNUMX'
p_three=""
ããäžåºŠèšã£ãŠãããŸãããäžèšã®åäœå®çŸ©ã¯ åœ ã®ã¿ã衚瀺ãããã®
ããŸããŸãªå¯èœæ§ã ãããã«ããããã®ãããªãŠãããã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸãã... ããã«è©³ãã
é«åºŠãªæ©èœã«ã€ããŠã¯ããã§ã¯èª¬æããŸããã ãåç §ããŠãã ããã REFERENCE 詳现ã«ã€ããŠã¯ã»ã¯ã·ã§ã³
å®å šãªæ å ±ã
· å¿ èŠã«å¿ããŠããŠãããããããªãã¯ãŸãã¯ãã©ã€ããŒã U ãã£ã¬ã¯ããªã«çœ®ããŸãã
ã»åæŸé ã¡ã¿æ§æ.
· ãŠãããã次ã®å®å ã«éä¿¡ããŠãã ãã [ã¡ãŒã«ä¿è·] (Raphael Manfredi) ãã¹ã¿ãŒã³ããŒã«å«ããããã«ã
ãããäžè¬çãªé¢å¿äºã ãšæãããå Žåã
æ€çŽ¢ããæ°ããããã°ã©ã ãè¿œå ããã«ã¯:
· Loc.U ãç·šéããããã°ã©ã ã®ååã ?MAKE: è¡ (
XNUMX ã€ã®ã³ãã³) ãš loclist ãŸã㯠trylist (ããã°ã©ã ã
å¿ é ãã©ããïŒã
· ã¡ã¿ã³ã³ãã£ã°ãåå®è¡ããŸãã
· äžè¬çãªå 容ã ãšæãããå Žåã¯ããã¹ã¿ãŒ ã³ããŒã«å«ããããã«ããªãã®ãŠããããç§ã«éã£ãŠãã ããã
é¢å¿ã
.U ãã¡ã€ã«ãæžã蟌ãå Žåã®æ³šæäºé :
* ããã©ã«ã㧠rm ã察話åã«ãªãã·ã¹ãã ããããããåžžã«ãrm -fãã䜿çšããŠãã ããã
* ã--ãã¯ãã¹ãŠã®ã·ã§ã«ã§æ©èœããããã§ã¯ãªãããããset -- ...ãã¯äœ¿çšããªãã§ãã ããã ãset x ...;ãã䜿çšããŸãã
ã·ãã"ã
* unset ã¯å®å šã«ç§»æ€å¯èœã§ã¯ãªãããããunset ENVãã¯äœ¿çšããªãã§ãã ããã 代ããã«ãENV=ããšèšã£ãŠãã ããã
* Eunice ã·ã¹ãã ã®ãããåžžã« echo " " (ã¹ããŒã¹ãå«ã) ã䜿çšããŠãã ããã
â»äœ¿çšã®ã¿ test -rã-wã-fããŸã㯠-d ã䜿çšããŸããããã¯ãããããå¯äžã®ç§»æ€å¯èœãªã¹ã€ããã§ããããã§ãã ã§
ç¹ã«ããtest -xãã¯é¿ããŠãã ããã
* 誰ãããããæã£ãŠããããšããããããã«ãV7 ã«ä»å±ã®ããã°ã©ã ã®ã¿ã䜿çšããŠãã ããã
* ãã¹ãŠã® grep ãçµæãè¿ãããã§ã¯ãªããããæ¡ä»¶ä»ã㧠grep ãå®è¡ããå Žå㯠$contains ã䜿çšããŸãã
劥åœãªã¹ããŒã¿ã¹ã '>/dev/null ã䜿çšããŠãåºåã /dev/null ã«ãªãã€ã¬ã¯ãããŠãã ããã
2>&1'ã
* ãã¹ãŠã® sh ãåŸè ã®æ§é ãç¥ã£ãŠããããã§ã¯ãªãããããif [...]ãã§ã¯ãªããif testãã䜿çšããŠãã ããã
* ã·ã§ã«ãšã¹ã±ãŒããšããã©ã«ããå®è¡ã§ããããã«ãå ¥åã« myread ã¹ã¯ãªããã䜿çšããŸãã
è©äŸ¡ã äžè¬çãªåœ¢åŒã¯æ¬¡ã®ãšããã§ã
ã±ãŒã¹ã$grimbleã
'') dflt=452;;
*) dflt="$ã°ãªã ãã«";;
ESAC
rp='ã°ãªã ãã«ã¯äœåãããŸãã?'
ã ./myread
ã°ãªã³ãã«=ã$ansã
* ãªãã·ã§ã³ã®ãã¡ã€ã« ãã¹åãèŠæ±ããå Žåã¯ãgetfile ã¹ã¯ãªããã䜿çšããŸãã
~ååã®æ¡åŒµãšå¥å šæ§ãã§ãã¯ã å®å šãªèª¬æã«ã€ããŠã¯ãGetfile.U ãŠããããåç §ããŠãã ããã
* ãå¿ ãå ¥ããŠãã ãã
$startsh
ã«ãã£ãŠèµ·åãŸãã¯ãœãŒã¹ããããã¹ãŠã®çæãããã¹ã¯ãªããã®å é ã«
æ§æ.
* ãªããžã§ã¯ã ãã¡ã€ã«ã次ã®æåã§çµãããšããäžè¬ç㪠UNIX 䞻矩ã決ããŠæ³å®ããªãã§ãã ããã .o &
ã©ã€ãã©ãªåã次ã§çµããããš .aã äœ¿çš $_o & $_a 代ããã«å€æ°ã䜿çšããŸã (ã
Unix.U)ã
* ã³ã³ãã€ã«ããªã³ã¯ãå®è¡ã®ãã¹ããè¡ãå Žåã¯ãåžžã«æ¬¡ã®ããã«èšè¿°ããŸãã
$cc $ccflags $ldflags try.c -o $libs ãè©ŠããŠãã ãã
äžéšã®ã·ã¹ãã ã§ã¯ãã³ã³ãã€ã«ãããåã«ãªã³ã¯ ãã©ã°ãæå®ããå¿ èŠãããããã§ãã
ã¿ãŒã²ãã (æ«å°Ÿã®ãªã³ã¯ ã©ã€ãã©ãªãé€ã)ã
* '>&4' ã䜿çšããŠåºåããªãã€ã¬ã¯ããããã¡ã€ã«èšè¿°å #4 ã§éèŠãªã¡ãã»ãŒãžãçºè¡ããŸãã
ãããã®ã¡ãã»ãŒãžã®ã¿ã衚瀺ãããŸãã -s ã¹ã€ãããäžãããã æ§æ
ã³ãã³ãã©ã€ã³ïŒãµã€ã¬ã³ãã¢ãŒãïŒã
* æ©èœãååšãããã©ãããæãå ·äœçãªæ¹æ³ã§åžžã«å€æããããšããŸããããããªãã§ãã ããã
libc ã grep ã§ãããšãã«ãif bsdããšèšããŸãã äžã®äžã«ã¯ãã€ããªããã·ã¹ãã ããããããããŸããã
åæ©èœã¯åç¬ã§ç«ã€ãåããå¿ èŠããããŸãã
* æãäžè¬çãªæ¹æ³ã§æ©èœãååšãããã©ãããåžžã«å€æããããšããŸãã
ä»ã®ããã±ãŒãžã§ãããªãã®ãŠãããã䜿çšã§ããŸãã
* çåãããå Žåã¯ãããã©ã«ããèšå®ããŠè³ªåããŠãã ããã äœãæ³å®ããªãã§ãã ããã
* ãŠãŒã¶ãŒãééã£ãŠãããšæãå Žåã¯ããŠãŒã¶ãŒãæ£ãããããããªããšããäºå®ãèæ ®ããŠãã ããã ã®ããã«
ããšãã°ã䜿çšããã·ã¹ãã ãšã¯å¥ã®ã·ã¹ãã 㧠Configure ãå®è¡ããŠããå¯èœæ§ããããŸãã
æçµè£œåãå®æããŸãã
Metaconfig ã¯ãã£ã¬ã¯ããªå ã«æ¬¡ã®ååãäºçŽããŸãããã®ãããªååã䜿çšãããšã
ç Žå£ããããããã®ä»ã®äºæãã¬åœ±é¿ãçºçãããããå¯èœæ§ããããŸãã
.MT/*
æ§æ
欲ããã§ã
å»æ¢ããã
configure
config_h.SH
confmagic.h
ã/*
ãããã§ã¹ã.new
ããã«ãConfigure ãå®è¡ãããŠãããã£ã¬ã¯ããªå ã®ãããã®ååãäžæžãããå¯èœæ§ããããŸãã
UU/*
config.sh
config.h
OPTIONS
次ã®ãªãã·ã§ã³ã¯ã«ãã£ãŠèªèãããŸã ã¡ã¿æ§æ:
-d ãããã°ã¢ãŒãããªã³ã«ããŸãã ãããã°ããªãéãããŸã圹ã«ç«ã¡ãŸãã ã¡ã¿æ§æ
ãã®ãã®ã
-h ãã«ãã¡ãã»ãŒãžãå°å·ããŠçµäºããŸãã
-k äžæãã£ã¬ã¯ããªãä¿åããŠãããšã䜿çšãããäœæ¥ãã¡ã€ã«ã調ã¹ãããšãã§ããŸãã
ã¡ã¿æ§æ ããªããæ§ç¯ãã æ§æ èæ¬ã ãããã°ããå Žåã«ã®ã¿åœ¹ç«ã¡ãŸãã
åäœ
-m 倧éã®ã¡ã¢ãªãšã¹ã¯ããé åãæ³å®ããŸãã ããã«ãããã·ã³ãã«ã®æ€çŽ¢ãé«éåãããŸãã
ãœãŒã¹ ãã¡ã€ã«ã®èªã¿èŸŒã¿ã«ããªãã®æéãããããã¡ã¢ãªãæ¶è²»ãããŸã
æ¶è²»...
-o å»æ¢ãããã·ã³ãã«ãæ°ããã·ã³ãã«ã«ãããã³ã°ããŸãã ãŸã æ®ã£ãŠããå Žåã¯ããã®ã¹ã€ããã䜿çšããŠãã ãã
ãœãŒã¹ã³ãŒãå ã«å€ãã·ã³ãã«ããããåé€ããããªãïŒãŸãã¯åé€ã§ããªãïŒ
ä»ã®ãšãã圌ãã ãã以å€ã®å Žåãå»æ¢ãããã·ã³ãã«ã¯ç¡èŠãããŸããã
ïœããèŠåãçºããŸã ã¡ã¿æ§æ.
-s ãµã€ã¬ã³ãã¢ãŒãããªã³ã«ããŸãã
-t ã·ã³ãã«ãèŠã€ãã£ãããã¬ãŒã¹ããŸãã
-v 詳现ã¢ãŒãããªã³ã«ããŸãã
-w æ±ããããŠãããã¡ã€ã«ã¯ææ°ã§ãããšä»®å®ããŸãã ããã«ããæéãšèšæ¶ãã¹ããããããŸã
ãœãŒã¹ ã³ãŒã ã¹ãã£ã³ã®æ¶è²»æ®µéã§ãæ¢ç¥ã®ã·ã³ãã«ãæ¢ããŸãã ããã䜿ã£ãŠ
ãœãŒã¹ãã¡ã€ã«ãå€æŽãããŠããªãããšãããã£ãŠããå Žåã«ã®ã¿ã
ã®ããŒã« ã¡ã¿æ§æ 䜿çšãããèšå·ã
-G GNUãæäŸããŸã configureçæãããããã³ããšã³ãã®ãããªãã® æ§æ
ã¹ã¯ãªããããã£ã¹ããªãã¥ãŒã·ã§ã³ã«å«ãŸããäºå®ã§ãã ããã¯åãªãã©ãããŒã§ã
åšãã« æ§æ ã¹ã¯ãªããã¯èªç¶ã§ãããããã«ããã人ã ã¯
æ°ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã«çŽé¢ãããšãã«å€±ãããªãããã«ããããã® GNU ããŒã«ã
-L DIR ããã©ã«ãã®ã©ã€ãã©ãªã®å ŽæãäžæžãããŸãã éåžžã¯ã¡ã¿ã³ã³ãã£ã°ã«ã®ã¿åœ¹ç«ã¡ãŸã
ã¡ã³ããã¯ãéçºäžã®ãŠããããããŒã«ã«ã§äœ¿çšã§ããŸãã
å ¬çã«å ¥æå¯èœãªãã®ã ã® DIR æå®ããããã®ã¯åäœãå«ããã®ã§ã
U ãã£ã¬ã¯ããªã«ãããŸãã
-M ã®çç£ãèš±å¯ãã confmagic.h ãã¡ã€ã«ã䜿çšããŠãããã€ãã®ãŠã§ã«ãèªåçã«åãããã³ã°ããŸãã
æ¢ç¥ã®ã·ã³ãã«ãä»ã®ä»£æ¿æ段ã«çœ®ãæãã bã³ããŒ() åãããã³ã°äž
ééçã« memcpy() å©çšã§ããªããšãã ãã®ãªãã·ã§ã³ã¯ãªã³ã«ãªã£ãŠããŸã
èªåçã« confmagic.h ãã¡ã€ã«ã¯æäžäœãã£ã¬ã¯ããªã«ååšããŸãã
ãã®ãªãã·ã§ã³ãæ°žä¹ ã«ç¡å¹ã«ãããå Žåã¯ããã®ãã¡ã€ã«ãåé€ããŠãã ããã
-V ããŒãžã§ã³çªå·ãåºåããŠçµäºããŸãã
ãã¥ãŒããªã¢ã«
ãã® (é·ã) ã»ã¯ã·ã§ã³ã¯ã ã¡ã¿æ§æãããã§ç§ãã¡ã¯ãã¹ãŠãåŠã³ãŸã
åºæ¬ã ãã§ã«äœ¿ãæ¹ãç¥ã£ãŠããå Žå ã¡ã¿æ§æã次ãžå®å šã«ã¹ãããã§ããŸã
ã®ã»ã¯ã·ã§ã³ããç¡æã§ããŠã³ããŒãã§ããŸãã
æŠèŠ
éåžžãç¹å®ã®ãã©ãããã©ãŒã ã§ã³ã³ãã€ã«ãããœãŒã¹ ããã±ãŒãžãååŸãããå Žåã¯ã
ã¡ã€ã³ã® Makefile ãç·šéããã«ã¯ (ããããããšä»®å®ããŠ!)ãC ã³ã³ãã€ã©ãéžæããŠãã ããã
é©åãªã©ã€ãã©ãªãçšæããŠããã make æ瀺ã ããã±ãŒãžãåççã§ããã°
ããæžãããŠããã®ã§ãã³ã³ãã€ã«ã§ããŸã (ãªãã·ã§ã³ã®èŠåãªã㧠:-)ã ããèªäœã¯æåŸã«
çŸåšå©çšå¯èœãªããŸããŸãª UNIX ãã©ãããã©ãŒã ãèæ ®ãããšããã®æã¯æ¬ç©ã®ããã©ãŒãã³ã¹ã§ãã
ãããŠãã¬ãŒããŒã®å€æ§æ§ãããã¯ããã±ãŒãžã®äœè ãæ·±ãè¿œæ±ããããšãæå³ããŸã
æšæºçãªè©Šè¡ãæšæž¬ãæ··ä¹±ãèæ ®ãããšãæ£ããéžæãèŠã€ããã®ã«èŠåŽãã
ã·ã¹ãã ã®ã€ã³ã¯ã«ãŒããšã¿ã€ãã«ã€ããŠèª¬æããŸãã
ããããããã ãã®æèœã«ãããããããèè ã¯ãããã·ã¹ãã ã«
ã·ã¹ãã ã³ãŒã«ãå£ããŠããããã·ã¹ãã æ§é ã®äžéšã«æšæºãã£ãŒã«ãã XNUMX ã€æ¬ ããŠããããŸãã¯
åã«æå®ãããã€ã³ã¯ã«ãŒã ãã¡ã€ã«ãååšãããã©ããã ãã§ãã ãããŠç§ã¯æé»ã®ããšãèæ ®ããŠããŸãã
ã«ãã£ãŠè¿ãããåãªã©ã®ä»®å® mallocïŒïŒ æ©èœãŸãã¯ãã®ååš
ãªããŒã () ããã€ãäŸãæãããšãã·ã¹ãã ã³ãŒã«ã§ãã ãããããã®ç¥èã¯æ¬åœã®ããšãéæããããã«å¿ èŠã§ã
移æ€æ§ã
ä»ãèªåèªèº«ãèåŸ ããªãããã«ããŸãããã ãã®æ å ±ã䜿çšããã«ã¯ãããé«åºŠãªã¹ãã«ãå¿ èŠã§ããã
ã·ã¹ãã ã«äŸåããªãæ¹æ³ã§èšè¿°ãããããããã移æ€æ§ã®é«ãããã°ã©ã ãå¯èœã«ãªããŸãã
ããä»®å®ãç¹å®ã®ã·ã¹ãã äžã§çãåœã§ãããšããäºå®ã®ã¿ã«äŸåããŸãã
ããããã®ä»®å®ã¯äºãã«ç¡é¢ä¿ã§ãã ã€ãŸããç§ãã¡ã¯ãç§ãã¡ã¯ïœã«ããŸãããšã¯èšããŸããã
BSD ã·ã¹ãã ããŸã㯠USG ã·ã¹ãã ã䜿çšããŠããŸãã ãšã«ããä»ã§ã¯ææ§ãããŸãã ãããããããããã§ã
ãœãŒã¹ ã³ãŒãã«ããèšããŸã: ãã®ã·ã¹ãã ã«ã¯ ãªããŒã () ã·ã¹ãã ã³ãŒã«ãš mallocïŒïŒ
ãè¿ã ïŒç©ºæ *) ã®å€ã§ãã
Metaconfig ã¯ãŸãã«ãããå¯èœã«ããããŒã«ã§ããã次ã®ãããªå©ç¹ããããŸãã
ãã¹ãŠãããŸããã£ãå Žåã¯ãMakefile ãæåã§ç·šéããå¿ èŠããããŸãã èµ°ãããšã§ ã¡ã¿æ§æãäœæãããšã
ãšããååã®ã·ã§ã«ã¹ã¯ãªãã æ§æã Configure ã¹ã¯ãªããã«ã¯å€å€§ãªåŽåãè²»ããããŸããã
çŸæç¹ã§å©çšå¯èœãªæ¢åã®ã·ã§ã«ã® 99% ã§åäœããããšãä¿èšŒããããã®å éšæ§é
æžã蟌ã¿ã Configure ã¯ã¿ãŒã²ãã ã·ã¹ãã ã調æ»ããçåãããå Žåã¯è³ªåããŸãã
ãã¹ãŠã®åçã XNUMX ã€ã®ã·ã§ã« ãã¡ã€ã«ã«åéããããã次ã®ç®çã«äœ¿çšã§ããŸãã
èšå®ããã Makefile ãš C ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ãèªåçã«çæããŸãã
ã·ã§ã« ã¹ã¯ãªããã§äœ¿çšã§ããã·ã³ãã«ã®ã»ããã¯éãããŠããŸã (ãã ããããªã倧ãã)ã
ãããŠCããã°ã©ã ã ãããã¯ãã¹ãŠçšèªéãã¡ã€ã«ã«ææžåãããŠããŸãã å¿ èŠãªã®ã¯åŠã¶ããšã ãã§ã
ãããã«ã€ããŠèª¬æãã移æ€æ§ãšæ§æã®åé¡ã«å¯ŸåŠããããã«ãããã䜿çšãå§ããŠãã ããã ããããã
å®è¡ããããšã«ãã ã¡ã¿æ§æãéžæãããšãããã±ãŒãžã«é©ããæ§æã¹ã¯ãªãããçæãããŸãã
æ§æã¹ã¯ãªããã¯è€æ°ã®ãŠããã (300 以äž) ã§æ§ç¯ãããŠãããåãŠãããã¯
å°æ°ã®ã·ã§ã«ããã³/ãŸã㯠C ã·ã³ãã«ã®å®çŸ©ãæ åœããŸãã ãŠããããçµã¿ç«ãŠãããŠããŸã
äŸåé¢ä¿ã°ã©ããå°éããŠãæçµæ®µéã§äžç·ã«å®è¡ããŸã (XNUMX ã€ã®ãŠããããçµæãå¿ èŠãšããå ŽåããããŸã)
ä»ã®ããã€ãã®ãŠãããã¯ã¹ã¯ãªããã®åã«é 眮ãããŸã)ã
ã·ã³ãã«
ã·ã³ãã«ã¯ãã®äžã§æãéèŠãªãã®ã§ã ã¡ã¿æ§æ äžçã 圌ãã¯æãå°ããã§ã
èªèããããšã³ãã£ã㣠(éåžžã¯åèª) ã§ãããèšå®ã®æåŸã«å€ãä»äžã§ããŸãã
å®è¡ã ããšãã°ãC ããªããã»ããµ ã·ã³ãã« HAS_RENAME ã ã¡ã¿æ§æ ããã象城ãã
ãå®çŸ©ãããããšãä¿èšŒãããã®ã¯ã ãªããŒã () ã·ã¹ãã ã³ãŒã«ãååšããŸãã åããã
ã $ranlib ã·ã§ã«å€æ°ã¯ã
ã«é»è©±ãã ã©ã³ãªã ã©ã€ãã©ãªãã¡ã€ã«ã泚æããã«ã¯ããã°ã©ã ãå¿ èŠã§ãã ãããã©ã®ããã«æ©èœãããã¯ããã§ã¯ãããŸãã
çŸæç¹ã§ã¯éèŠã§ãããéèŠãªã®ã¯ããããã®ã·ã³ãã«ã«ã¯æ¬¡ã®ãããªæ§è³ªãäžããããŠããããšãç解ããããšã§ãã ç掻
(ã€ãŸãå€) æ§æ å®è¡ã
ã·ã³ãã«ã®äœ¿çšã¯æ¯èŒçç°¡åã§ãã C ãœãŒã¹ ãã¡ã€ã«ã§ã¯ãåã«æ¬¡ã®ã·ã³ãã«ã䜿çšããŸãã
ããªããã»ããµ ãã£ã¬ã¯ãã£ããšããŠã®å€ (ããšãã°: #ifdef HAS_RENAME) ãŸãã¯ãèšå·ã®å Žå
value ã¯æååã§ããC ã§ãã¯ãã䜿çšããå Žåãšåæ§ã«ãã·ã§ã« ãã¡ã€ã«ãŸãã¯
Makefile ã§ã¯ãã·ã§ã« ã·ã³ãã«ãçŽæ¥åç §ã§ããŸãã
å®éã®ãšãããç§ã¯åãã€ããŠããŸãããªããªããããã¯åã®æ®µèœã»ã©å®å šã«éæ³ã§ã¯ãªãããã§ãã
èããããããããªãã C ãã¡ã€ã«ã«ã¯ãConfigure ã§çæããã config.h ãã¡ã€ã«ãããã³
ã·ã§ã« ã¹ã¯ãªãããŸã㯠Makefile ã .SH ãã¡ã€ã«ã§ã©ããããå¿ èŠããããã·ã§ã«ãåç §ããããšãã§ããŸãã
ã·ã³ãã«ã¯ããã® .SH ãã¡ã€ã«ã®å€æ°çœ®æéšåã«ã®ã¿å«ãŸããŸãã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
ãœãŒã¹
ã·ã³ãã«ã¯ãéããããœãŒã¹ ãã¡ã€ã«ã®ã»ããã«ã®ã¿è¡šç€ºãããå ŽåããããŸãã ã¡ã¿æ§æ ã®ã¿
æ¢ç¥ã®ã·ã³ãã«ãæ¢ããšãã«ããããã¹ãã£ã³ããå¿ èŠãªåäœãææ¡ããããšããŸãã
C ãœãŒã¹ ãã¡ã€ã«ãã€ãŸãã .c, .h, .y or .l æ¡åŒµãããã³
ã·ã§ã« ã·ã³ãã«ã¯ .SH ãã¡ã€ã«å ã§ã®ã¿æ€çŽ¢ãããŸãã
ã·ã³ãã«ã®å€ãååŸããã«ã¯ãC ãã¡ã€ã«ã«ç¹å¥ãª config.h
ãã¡ã€ã«ãã«ãã£ãŠäœæãããŸã æ§æ C ã·ã³ãã«ãååšããå Žåã ãããŠã.SHãã¡ã€ã«ãå®è¡ãããŸã
ã·ã§ã«ãä»ããŠæ°ãããã¡ã€ã«ãäœæããŸãã ãã ãã.SH ãã¡ã€ã«ã®å é ã»ã¯ã·ã§ã³ã§ã¯ã
ç¹å¥ config.sh ãã¡ã€ã« (å®è¡ã«ãã£ãŠãçæãããŸã) æ§æ) ã¯ãœãŒã¹ã§ãããå€æ°ã§ã
代æ¿åãé©çšãããŸãã å®ã¯ã config.h ãå®è¡ããããšã«ãã£ãŠçæãããŸã ã¡ã¿æ§æ - çç£ããã
config_h.SH ãã¡ã€ã«ãå床å€æ°çœ®æã䜿çšããŠäœæããŸãã ããã§ã¯ããããèŠãŠãããŸã
ãããå šäœã®äžå¿ãªã®ã§ãããå°ã詳ããèŠãŠã¿ãŸããã ã®ç£èŠ ã¹ããŒã ...
å€æ° 眮æ
ãšããã·ã§ã«æ§é ããããŸã ãã¡ã ããã¥ã¡ã³ã ã³ãã³ããå ¥åãååŸã§ããããã«ããŸã
ã¹ã¯ãªããèªäœã®äžã§æå®ãããŸãã ãã®å ¥åã¯ã·ã§ã«ã«ãã£ãŠ double-
ãã¢ããã¥ã¡ã³ãã®åœ¢åŒã«å¿ããŠåŒçšç¬Šã§å²ãŸããæååãŸãã¯äžéåŒçšç¬Šã§å²ãŸããæåå
ä»æ§ã
ãã¢ããã¥ã¡ã³ããæå®ããã«ã¯ãã<<ãããŒã¯ã³ã®åŸã«åäžã®èå¥åã䜿çšããŸãã ãã
ãã®åŸãæ®ãã®ã¹ã¯ãªããè¡ãã³ãã³ãã®å ¥åã圢æãããããŸã§ç¶ããŸãã
ããã¥ã¡ã³ããåç¬ã§è¡äžã«èŠã€ãããŸãã ã·ã§ã«çœ®æïŒã·ã§ã«å€æ°ãå«ãïŒ
眮æ) ã¯ãèå¥åãäžéåŒçšç¬Šã§å²ãŸããŠããªãéãå®è¡ãããŸãã äŸãã°ïŒ
var='æå'
tar='ç§'
echo "--> æåã®ããã®ããã¥ã¡ã³ã:"
ç«<
var='$var'
tar='$tar'
EOM
echo "--> ããã® XNUMX çªç®ã®ããã¥ã¡ã³ã:"
ç« <<'EOM'
$varããšã³ãŒãã
$tarããšã³ãŒãã
EOM
ãšã³ãŒã-->çµäºãã
ã·ã§ã«ãéããŠå®è¡ãããšã次ã®ãã®ãçæãããŸãã
--> æåã®ããã¥ã¡ã³ãã¯æ¬¡ã®ãšããã§ãã
var='æå'
tar='ç§'
--> XNUMX çªç®ã®ããã¥ã¡ã³ã:
$varããšã³ãŒãã
$tarããšã³ãŒãã
--> çµäºã
æåã®ãã¢ããã¥ã¡ã³ãã®å 容ã¯è§£éãããXNUMX çªç®ã®ããã¥ã¡ã³ãã¯ãã®ãŸãŸåºåãããŸãã
ãããã説æããããã«ãã©ã¡ãã .SH ã¹ã¯ãªããã§åœ¹ç«ã¡ãŸãã
䜿ãæ¹ ãNS ã¹ã¯ãªãã
.SH ã¹ã¯ãªããã¯éåžžã次ã®ã³ãã³ããå®è¡ããããšã«ãã£ãŠçæãããŸãã MakeSH æ¢åã®ãã¡ã€ã«ä»¥å€ã®ã¹ã¯ãªããã
å€æ file ãã¡ã€ã«.SHã äžã€ã®äŸãæããŠã¿ãŸãããã ããã«å°ããªã¹ã¯ãªããããããŸã
ïŒãããåŒã³ãŸããã ã€ã³ãµã€ãº) åäžã®ã¡ãã»ãŒãžãåºåããŸãã intå C ã®ããŒã¿åã
æ®å¿µãªãããããã«ã¯å€ãçµã¿èŸŒãŸããŠããããã次ã®ããã«ãªããŸãã
#!/bin/sh
intsize='4'
echo "ãã®ãã·ã³ã§ã¯ãint å㯠$intsize ãã€ãã§ã"
èµ°ãã ã¡ã€ã¯SH ãããšå ¥åããŠãã®äžã§ã¡ã€ã¯SH ã€ã³ãµã€ãº'ã ã·ã³ã°ã«ãæã«å ¥ããŸã intsize.SH ãã®ãã¡ã€ã«
次ã®ããã«ãªããŸãã
$CONFIG ã®å Žå
''ïŒ
if ãã¹ã -f config.sh; 次㫠TOP=.;
elif ãã¹ã -f ../config.sh; 次㫠TOP=..;
elif ãã¹ã -f ../../config.sh; 次ã«TOP=../ ..;
elif ãã¹ã -f ../../../config.sh; 次ã«TOP=../../.ã;
elif ãã¹ã -f ../../../../config.sh; 次ã«TOP=../../../.ã;
ã»ãã«
echo "config.sh ãèŠã€ãããŸããã"; åºå£1
fi
ã $TOP/config.sh
;;
ESAC
: ããã«ãããSH ãã¡ã€ã«ã¯åŒ·å¶çã« SH ãã¡ã€ã«ãšåããã£ã¬ã¯ããªã«ã¿ãŒã²ãããäœæããŸãã
: ããã¯ãmake depend ãåžžã« SH å°é¢æ°ãã©ãã«ããããç¥ãããã§ãã
ã±ãŒã¹ã$0ã
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "intsize ãæœåºããŠããŸã (å€æ°çœ®æãã)"
: ãã¡ã€ã«ã®ãã®ã»ã¯ã·ã§ã³ã§ã¯å€æ°çœ®æãè¡ãããŸãã
: èšå®ãµãã¹ã¯ã©ã€ããå¿ èŠãªãã®ã¯ãã¹ãŠ !NO!SUBS! ãã移åããŸãã !GROK!THIS! ãŸã§ã®ã»ã¯ã·ã§ã³ã
: 解éãããããªããã«èšå·ãšããã¯ã¯ã©ãŒããä¿è·ããŸãã
: åã«ããã¯ã¹ã©ãã·ã¥ã眮ããŸãã ãããã®ã³ã¡ã³ãã¯åé€ããŠãæ§ããŸããã
$spitshell >intsize <
$startsh
!ã°ãã!ãã!
: 以äžã®ãã«ãšããã¯ã¯ã©ãŒãã§ã¯ãäœåãªããã¯ã¹ã©ãã·ã¥ã¯å¿ èŠãããŸããã
$spitshell >>intsize <<'!NO!SUBS!'
intsize='4'
echo "ãã®ãã·ã³ã§ã¯ãint å㯠$intsize ãã€ãã§ã"
!ããã!ãµãã¹!
chmod 755 intsize
$eunicefix intsize
ãã®ã¹ã¯ãªããã®æåã®éšå ( å Žå ã¹ããŒãã¡ã³ã) ãèŠã€ããããšããŠããŸã config.sh
ãã¡ã€ã«ããœãŒã¹ããããã«ã ã® $CONFIG å€æ°ã¯ããã©ã«ãã§ã¯ false ã§ããã次ã®å Žå㯠true ã«ãªããŸãã
config.sh ãã§ã«ãœãŒã¹ãããŠããŸã (ãã®ãã¡ã€ã«ãããå®è¡ãããå Žåã«åœãŠã¯ãŸããŸã)
以å æ§æ ããèªäœã§ãããããã§åé¡ãæ··åããªãããã«ããŸããã)ã
äžåºŠ config.sh ãã¡ã€ã«ã¯ãœãŒã¹ã§ãããã«ãã£ãŠå®çŸ©ããããã¹ãŠã®ã·ã§ã« ã·ã³ãã«ãå«ãŸããŠããŸãã æ§æ ã
ã»ããã XNUMX çªç®ã® case ã¹ããŒãã¡ã³ãã«å°éããããšãããããŸããããã¯ãçŸåšã®ãã£ã¬ã¯ããªãå€æŽããããã«äœ¿çšãããŸãã
ãã®ããã°ã©ã ã«å°éããããã«ãã¹ã䜿çšããå¿ èŠããããŸã (ããšãã°ããsh ../scripts/intsize.SH'ã ç§ãã¡ã¯
æåã«å®è¡ããã®ã¯ 'cd ../ã¹ã¯ãªããç¶è¡ããåã«)ã ãããç解ã§ããªãå Žåã¯ãããªãã§ãã ãã
å¿é ããŠãã ããã
ããã§èå³æ·±ãããšãèµ·ãããŸãã ãã®ã¹ã¯ãªããã§ã¯ã $ã¹ãããã·ã§ã« å€æ°ã§ãããããã§ã¯ãããŸãã
ç§ãã¡ãç¥ã£ãŠããããšã¯...ãŸã ãããŸãã çšèªéãã¡ã€ã«ãèŠããšã次ã®ããšãããããŸãã
ããã¯ã«ãã£ãŠç¥ãããå€æ°ã§ã ã¡ã¿æ§æã ãã®ãã¡ã€ã«ããã£ã¹ããªãã¥ãŒã·ã§ã³ã®äžéšã«ãããšã
(ããã MANIFEST.new ãã¡ã€ã«ã«å«ããããšã«ãããåŸã§èª¬æããŸã) ãå®è¡ããŸãã
ã¡ã¿æ§æã ããã㊠æ§æ ã¹ã¯ãªããã¯ãã®å€æ°ã«é©åãªå€ã決å®ããŸã
ãããŠããã¯ã«èšå®ãããŸã config.shã åãããšãèšããŸã $startsh ãããŠç¥ç§ç㪠$eunicefix at
çµããã åççãªã·ã¹ãã ã§ã¯ã config.sh 次ã®ããã«ãªããŸã:
spitshell='ç«'
startsh='#!/bin/sh'
ãŠãã¹ãã£ãã¯ã¹=':'
ããïŒ ããã«è¿ã¥ããŠããŸãã ä»ã§ã¯èŠæ £ãããã®ã«èŠããŸãã ç§ãã¡ã¯ã·ã³ã°ã«ã«çŽé¢ããŠããŸã cat 誰ã®ã³ãã³ã
å ¥åã¯å€æ°è£éããããã¢ããã¥ã¡ã³ãããååŸããããã®åºåã¯ã«ãªãã€ã¬ã¯ããããŸãã
ã€ã³ãµã€ãºã å€ã¯æ¬¡ã®ããã«ãªããŸãã $startshãã€ãŸãã#!ã/bin/sh'ã ãããŸã§ã¯å€§äžå€«ã§ãã
次ã«ãã¹ã¯ãªããã®æ®ããååŸããããã«ãXNUMX çªç®ã®ã㢠ããã¥ã¡ã³ãå±éã«å°éããŸãã ãã
ãã¢ããã¥ã¡ã³ãã®ã·ã³ãã«ã¯äžéåŒçšç¬Šã§å²ãŸããŠãããããå 容ã¯æ¬¡ã®ããã«ãªããŸãã
ã«éèªçã«è¿œå ãããŸãã ã€ã³ãµã€ãº ãã¡ã€ã«ã ãããã£ãŠããããå®è¡ãããšãsh intsize.SH' ãååŸããŸãã
次ã®åºå:
intsize ã®æœåº (å€æ°çœ®æãã)
çæããã intsize ãã¡ã€ã«ãèŠããšã次ã®ããšãããããŸãã
#!/bin/sh
intsize='4'
echo "ãã®ãã·ã³ã§ã¯ãint å㯠$intsize ãã€ãã§ã"
ããã¯ãŸãã«ç§ãã¡ãæåã«æã£ãŠãããã®ã§ãã ãããŸã§ã¯ç¡æäœæé ã§ã...
ããããäœãšçŽ æŽãããããšã§ãããã ããã¯ããŸããŸã§ãïŒãŸã£ããã®å¶ç¶ã§ããä¿¡ããŠãã ããïŒïŒã ã¡ã¿æ§æ ç¥ã£ãŠãã
çŽ $intsize ã·ã§ã«ã®ã·ã³ãã«ã intsize ã®åæåãå€æ°ã«ç§»åããããšã§ã
.SH ã¹ã¯ãªããã®è£éé åãšããã䜿çšããåæå æ§æ- èšç®ãããå€ã
ã«ãã£ãŠè¿œå ãããäžèŠãªã³ã¡ã³ããåé€ããŸã ã¡ã€ã¯SHã æã ãåŸãïŒ
$CONFIG ã®å Žå
''ïŒ
if ãã¹ã -f config.sh; 次㫠TOP=.;
elif ãã¹ã -f ../config.sh; 次㫠TOP=..;
elif ãã¹ã -f ../../config.sh; 次ã«TOP=../ ..;
elif ãã¹ã -f ../../../config.sh; 次ã«TOP=../../.ã;
elif ãã¹ã -f ../../../../config.sh; 次ã«TOP=../../../.ã;
ã»ãã«
echo "config.sh ãèŠã€ãããŸããã"; åºå£1
fi
ã $TOP/config.sh
;;
ESAC
ã±ãŒã¹ã$0ã
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "intsize ãæœåºããŠããŸã (å€æ°çœ®æãã)"
$spitshell >intsize <
$startsh
intsize='$intsize'
!ã°ãã!ãã!
$spitshell >>intsize <<'!NO!SUBS!'
echo "ãã®ãã·ã³ã§ã¯ãint å㯠$intsize ãã€ãã§ã"
!ããã!ãµãã¹!
chmod 755 intsize
$eunicefix intsize
ãã¡ãããã·ã§ã«ãéããŠãã®ã¹ã¯ãªãããå®è¡ãããšãåãã¹ã¯ãªãããå床åºåãããŸãã ãããããã
ç§ãã¡ã¯èµ°ã æ§æ ãã·ã³äžã§ intå 64 ãããéãšããŠä¿åãããŸãã config.sh æå¿
ã»ãã·ã§ã³ã« ã€ã³ãµã€ãº 8ãš ã€ã³ãµã€ãº ã¹ã¯ãªããã«ã¯æ£ããå€ãå«ãŸãã次ã®ããã«åºåãããŸãã
ãã®ãã·ã³ã§ã¯ int å㯠8 ãã€ãã§ã
ã©ã¡ããæ£ããã ããã§ãšãïŒ ã·ã§ã«ã¹ã¯ãªãããèšå®ããŸãã!!
ãããã¥ãŒã¹ config.h
ä»ããã®éãèŠãŠã¿ãŸããã config.h ããçç£ãããŸã config_h.SHã ç§éã¯ããšãç¥ã£ãŠããŸã
ã©ã³ãã³ã° æ§æ ãçæããŸã config.sh ã¹ã¯ãªãã (ãããã©ã®ããã«æ£ç¢ºã«è¡ããããã¯å³å¯ã«ã¯ããããŸãã)
ããã«é¢é£ããŸãããèå³ãããæ¹ã®ããã«ãããã¯ããã§ã®å¥ã®ããã¥ã¡ã³ãã®çœ®æã§ãã
æ§æ èªäœïŒã ã® config_h.SH ããèªäœã¯ã«ãã£ãŠæ§ç¯ãããŸã ã¡ã¿æ§æ åæã«
æ§æ ãã ãããœãŒã¹å ã§å°ãªããšã XNUMX ã€ã® C ã·ã³ãã«ã䜿çšããå Žåã«éããŸãã
ã©ã³ãã ã«èŠãŠã¿ãŸããã config_h.SH å®éã«äœãèµ·ãããã確èªããã«ã¯ã次ã®ãã¡ã€ã«ã䜿çšããŸãã
$CONFIG ã®å Žå
''ïŒ
if ãã¹ã -f config.sh; 次㫠TOP=.;
elif ãã¹ã -f ../config.sh; 次㫠TOP=..;
elif ãã¹ã -f ../../config.sh; 次ã«TOP=../ ..;
elif ãã¹ã -f ../../../config.sh; 次ã«TOP=../../.ã;
elif ãã¹ã -f ../../../../config.sh; 次ã«TOP=../../../.ã;
ã»ãã«
echo "config.sh ãèŠã€ãããŸããã"; åºå£1
fi
ã $TOP/config.sh
;;
ESAC
ã±ãŒã¹ã$0ã
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
ESAC
echo "config.h ãæœåºããŠããŸã (å€æ°çœ®æãã)"
ã»ã< config.h -e 's!^#undef!/define!' -e 's!^#un-def!#undef!'
/*
* ãã®ãã¡ã€ã«ã¯ config_h.SH ã¹ã¯ãªãããå®è¡ããããšã«ãã£ãŠçæãããŸããã
* config.sh ããå€ãååŸããŸããconfig.sh ã¯éåžžã次ã®ããã«çæãããŸãã
* æ§æãå®è¡äžã
*
â»å¿ èŠã«å¿ããŠèªç±ã«ä¿®æ£ããŠãã ããã ãã ãã泚æããŠãã ããã
* config.h.SH ãå床å®è¡ãããšãè¡ã£ãå€æŽã¯ãã¹ãŠæ¶å»ãããŸãã
* ããæ°žç¶çãªå€æŽãè¡ãã«ã¯ãconfig.sh ãç·šéããconfig.h.SH ãåå®è¡ããŸãã
*/
/* æ§ææé: $cf_time
* æ§æè : $cf_by
* 察象ã·ã¹ãã : $myuname
*/
#ifndef _config_h_
#define _config_h_
/* bã³ããŒ:
* bcopy() ã«ãŒãã³ãååšããªãå Žåããã®ã·ã³ãã«ã¯ memcpy ã«ããããããŸãã
* æååãã³ããŒã§ããŸãã
*/
/* HAS_BCOPY:
* ãã®ã·ã³ãã«ã¯ãbcopy() ã«ãŒãã³ãå©çšå¯èœãªå Žåã«å®çŸ©ãããŸãã
* ã¡ã¢ãªã®ãããã¯ãã³ããŒããŸãã ãã®èšå·ã¯ä»¥äžã®ç°å¢ã§ã¯äœ¿çšããªãã§ãã ããã
* éåžžã®ç¶æ³ã§ã¯ã代ããã« bcopy() ãçŽæ¥äœ¿çšããŸãã
* bcopy ã䜿çšã§ããªãå Žåã¯ãmemcpy() ã«ããããããŸãã
*/
#$d_bcopy HAS_BCOPY /**/
#ifndef HAS_BCOPY
#ifdef bcopy
#un-def bcopy
#endif
#define bcopy(s,d,l) memcpy((d),(s),(l)) /* memcpy ã«ãããããã */
#endif
/* HAS_DUP2:
* ãã®ã·ã³ãã«ãå®çŸ©ãããŠããå Žåãdup2 ã«ãŒãã³ã
* ãã¡ã€ã«èšè¿°åã®è€è£œã«äœ¿çšã§ããŸãã
*/
#$d_dup2 HAS_DUP2 /**/
/* I_STRING:
* ãã®ã·ã³ãã«ãå®çŸ©ãããŠããå ŽåãC ããã°ã©ã ã«å¯ŸããŠæ¬¡ã®ããšã瀺ããŸãã
* å«ã(USG ã·ã¹ãã ) ã®ä»£ããã«(BSD ã·ã¹ãã )ã
*/
#$i_string I_STRING /**/
#endif
!ã°ãã!ãã!
ãã¡ã€ã«ã®å é ã§ããã§ã«çšæãããŠããæšæºã® .SH æ§é ãèªèããŸãã
詳ããå匷ããŸããã 次ã«ããã¢ããã¥ã¡ã³ããä»ããŠãã¡ã€ã«èªäœãæœåºããŸãã
å€æ°ã®çœ®æã ãã ããããã§ã¯ãã¬ãŒã³ã¯äœ¿çšããŸããã cat ãããã sed 代ããã«ã
ããã«ãã®å Žã§ç·šéãè¡ãå¿ èŠããããŸãã çç±ã¯åŸã»ã©ãããã®ã§å¿ããŸããã
ä»ããã«ã€ããŠã
ããã§å é ã®ã³ã¡ã³ãã«å°éãããã¡ã€ã«ã«ã¯èšå®æéã®ã¿ã°ãä»ããããŠããŸãã
ã¿ãŒã²ãã ã·ã¹ãã ãªã©... (ãããã®å€æ°ã¯ãœãŒã¹ããååŸãããŸã) config.sh ãã¡ã€ã«ã¯
ã«ãã£ãŠèšå®ãããŸãã æ§æïŒã ãã®ã³ã¡ã³ãããããŒã®åŸã«ã¯ãã#ifndefãä¿è·ãç¶ããŸãã
ãã®ãã¡ã€ã«ã®è€æ°ã®ã€ã³ã¯ã«ãŒãã«å¯ŸããŠã 次ã«ããã¡ã€ã«ã®äžå¿éšåãæ¥ãŸã...
ãã®ããšãç¥ãã®ã«åœ¹ç«ã¡ãŸã $d_* & $i_* å€æ°ã¯æ¬¡ã®ããããã«èšå®ãããŸããå®çŸ©ããŸã'ãŸãã¯'æªå®çŸ©' ã«ãã
æ§æé¢æ°ãŸãã¯ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ãã·ã¹ãã äžã«ååšãããã©ããã«å¿ããŠã
ãªãã ããã¯æ¬¡ã®ããšãæå³ããŸã:
#$d_bcopy HAS_BCOPY /**/
è¡ã¯æ¬¡ã®ããããã«å±éãããŸãã
#define HAS_BCOPY /**/
$d_bcopy å€æ°ããdefineãã«èšå®ãããŠããå ŽåããŸãã¯:
#undef HAS_BCOPY /**/
$d_bcopy ã 'undef' ã«èšå®ãããŠããå Žåããã®æ©èœã¯ååšããŸããã§ããã ããããããã§ã¯ãããŸãã
ã«äœãæžãããŠããã config.h ãã¡ã€ã«ã®ãã sed ãã§ã«èŠããã£ã«ã¿ãŒã
ããã«ãããXNUMX çªç®ã®åœ¢åŒã次ã®ããã«å€æãããŸãã
/*#define HAS_BCOPY /**/
ããã¯åŸã§ç·šéããã®ã«äŸ¿å©ãªãã©ãŒã ã§ã config.h ãåé€ããã ãã§ããããã
äžæžãããå Žåã¯å é ã«ã/*ããä»ããŸã æ§æããã®éžæã åæ§ã«ãåäžã®ãè¿œå ããããšãã§ããŸã
ç¹å®ã®ã·ã³ãã«ã®å®çŸ©ãåé¿ããã«ã¯ãã#defineãè¡ã®å é ã«ã/*ãã䜿çšããŸãã
ãã®ãããåã·ã³ãã«å®çŸ©ã¯å é ã®ã·ã³ãã«ãéããããã«æ«å°Ÿã®ã/**/ãã§ä¿è·ãããŠããŸãã
ã³ã¡ã³ã㯠'/*' ã«ãã£ãŠéãããŸã (ã³ã¡ã³ã㯠C ã§ã¯ãã¹ããããŸãã)ã
'#undef' ã '/*#define' ã«å€æããã®ã¯è¯ãããšã§ãããå®éã«
ã#undefããç§ãã¡ã¯è¡ãè©°ãŸã£ãŠããŸã...ã#un-defããšæžããŠèš±å¯ããªãéãã sed ãããã#undefãã«ä¿®æ£ããŠãã ãã
å¶äœäž config.hããããããã§å®éã«è¡ãããŠããããšã§ãã
åããããªæšè«ã次㮠XNUMX è¡ã«ãåœãŠã¯ãŸããŸãã
#$d_dup2 HAS_DUP2 /**/
#$i_string I_STRING /**/
ãããŠä»®å®ãããš config.sh å®çŸ©ããŸã:
d_dup2='å®çŸ©'
i_string='undef'
ç§ãã¡ã¯çç£ããããã®ã«å ¥ããŸã config.h:
#define HAS_DUP2 /**/
/*#I_STRING ãå®çŸ© /**/
æµæ°Žã®ããã«éæã§ããïŒ è¯ãïŒ
ããã§ã次ã®ããšãæããã«ãªãã¯ãã§ãã config.h ãã¹ãŠã® C ãœãŒã¹ ãã¡ã€ã«ã§ã次ã®ããšãè¡ãããšãã§ããŸãã
äœãç¥ã£ãŠãã æ§æ ããªãã®ã·ã¹ãã ãæšæž¬ããŸããã å®éããããã®èšå·ã䜿çšãããšã
èšå®ããã C ã³ãŒããèšè¿°ããããã ã¡ã¿æ§æ ãããã®ã·ã³ãã«ãå¿ èŠã§ããããšããããã
é©åãªãã®ãçæãã config_h.SH ãã¡ã€ã«ãšå¿ èŠãªãã¹ãŠã®ã³ãŒã æ§æ ããž
(é¢é£ããã·ã§ã«å€æ°ã«å€ãå²ãåœãŠãããšã«ãã£ãŠ) ãããã®é©åãªå€ãèšç®ããŸãã
Running: ã¡ã¿æ§æ
ã«çŠç¹ãåœãŠãŸããã ã¡ã¿æ§æ ãã°ããããã°ã©ã ãå®è¡ããŠããã®åäœãã©ã®ããã«äœ¿çšãããããç解ããŸãã
ãœãŒã¹ ã³ãŒãã䜿çšããŠãå¿ èŠãªãã¹ãŠã®æ§æãã¡ã€ã«ãçæããŸãã æ°ããæžãããšæã£ãã
åäœãååŸããã«ã¯ãå šäœã®ã¹ããŒã ãããç解ããå¿ èŠããããŸãã
MANIFEST.newãã¡ã€ã«ããªãå Žåã¯ã ã¡ã¿æ§æ 代ããã« MANIFEST ãã¡ã€ã«ã䜿çšããããšããŸãã
䟿å®äžã MANIFEST.new ã«ã€ããŠèšåããŠããç®æã¯ã©ãã§ããMANIFEST ãšããŠç解ã§ããŸãã
ããã±ãŒãžã®ã«ãŒãã« MANIFEST.new ãã¡ã€ã«ãèŠã€ãããªãå Žåã«éããŸãã
MANIFEST.new ãã¡ã€ã«ãé©åã«èšå®ãããŠãããå¿ èŠãªãã¹ãŠã®ãœãŒã¹ ãã¡ã€ã«ããªã¹ããããŠãããšä»®å®ããŸãã
èšå®ããå®è¡ããããšã確èªããŸã ãã±ãã ã«ãŒããœãŒã¹ãã£ã¬ã¯ããªã«
ãããã±ãŒãž ãã¡ã€ã«ãå®è¡ããŠãã ãã ã¡ã¿æ§æ ãããšä»¥äžãåŸãããŸã:
$ã¡ã¿ã³ã³ãã£ã°
ãŠããããæ€çŽ¢äž...
312 ãŠãããããäŸåé¢ä¿ãªã¹ããæœåºããŠããŸã...
MANIFEST.new ãããã¡ã€ã«å (*.[chyl] ããã³ *.SH) ãæœåºããŠããŸã...
æé äžã®ãã¡ã€ã«ãæ§ç¯ããŠããŸã...
.[chyl] ãã¡ã€ã«ã®ã·ã³ãã«ãã¹ãã£ã³ããŠããŸã...
.SH ãã¡ã€ã«ã®ã·ã³ãã«ãã¹ãã£ã³ããŠããŸã...
æé©ãªäŸåé¢ä¿ã°ã©ããèšç®ããŠããŸã...
ãã©ã€ããŒãã¡ã€ã¯ãã¡ã€ã«ãæ§ç¯ããŠããŸã...
ããŒãå¯èœãªãŠãããã決å®äž...
ã¡ã€ã¯ãã¡ã€ã«ãæŽæ°ããŠããŸã...
ãŠãããã®æ£ããé åºã決å®ããŠããŸã...
æ§æãäœæããŠããŸã...
å®äºããŸããã
æåã®ãã§ãŒãºã§ã¯ããããªã㯠ãã£ã¬ã¯ããªå ã®ãã¹ãŠã®ãŠããã ãã¡ã€ã« (.U ã§çµãã) ãæ€çŽ¢ããŸãã
æåã«ã次ã«ããªãã®ãã©ã€ããŒãã§ã ãã©ã€ããŒã U ãã£ã¬ã¯ããªã«ãããªã㯠ãã¡ã€ã«ãã³ããŒããå Žå
(ã€ãŸããããã±ãŒãžã®æäžäœã«ãã U ãšããååã®ãã£ã¬ã¯ããª)ããããªã㯠ãã£ã¬ã¯ããªããªãŒããŒã©ã€ãããŸãã
ããŒãžã§ã³ã å©çšå¯èœãªãã¹ãŠã®ãŠãããã®ãªã¹ããååŸãããšããããã解æããŠãã¹ãŠã®ãŠããããæœåºããŸãã
?MAKE: è¡ãåç §ãããšãäŸåé¢ä¿ãšæ¢ç¥ã®ã·ã§ã« ã·ã³ãã«ã«ã€ããŠç¥ãããšãã§ããŸãã ãŸã
?H: è¡ã«çŠç¹ãåœãŠãŠãC ã·ã³ãã«ãšã©ã®ã·ã§ã« ã·ã³ãã«ãå¿ èŠããåŠç¿ããŸãã
ãã® C ã·ã³ãã«ã®é©åãªå€ãååŸããããã«èšç®ãããŸã (ãããã£ãŠãå¥ã®ã¬ãã«ã®äŸåé¢ä¿ãååšããŸã)
ããã«ïŒã
次ã«ãé©åãªãã¡ã€ã«åã MANIFEST.new ãã¡ã€ã«ããæœåºããã 欲ããã§ã ãã¡ã€ã«ã¯
build: ãã®ãã¡ã€ã«ã«ã¯ããã®ããã±ãŒãžã«å¿ èŠãªãã¹ãŠã® C ã·ã³ãã«ãšã·ã§ã« ã·ã³ãã«ããªã¹ããããŠããŸãã ç§ãã¡ã¯
ãŸã C ã¿ã€ã ãã¡ã€ã«ãã¹ãã£ã³ã㊠C ã·ã³ãã«ãæ¢ãã次ã«äŸåé¢ä¿ããããã®ãã¡ã€ã«ã«äŒæããŸãã
é¢é£ããã·ã§ã« ã·ã³ãã« (?H: è¡ããåé)ã 次㫠.SH ãã¡ã€ã«ãã¹ãã£ã³ãããæåŸã«
ãã¹ãŠã®ã·ã§ã« ã·ã³ãã«ãããã£ãŠããŸãã
äžæç㪠Makefile ãæ§ç¯ãããmetaconfig ãè©Šè¡ãããŸãã make 衚瀺ããããã¹ãŠã®ã·ã§ã« ã·ã³ãã«
ã©ã®ã³ãã³ã (XNUMX çªç®ã® ?MAKE: è¡ã«ãªã¹ããããŠãã) ãå®è¡ããããããããã£ãŠã©ã®ãŠããããå®è¡ãããã
æ¬åœã«å¿ èŠã§ãã ä»ã«å¿ èŠã®ãªããªãã·ã§ã³ã®ãŠãããã¯åé€ãããXNUMX çªç®ã® Makefile ãäœæãããŸãã
çæãããã ä»åã¯ããã¹ãŠã®ãŠããããšãã®ããããã®é åºããªãã·ã§ã³ã«ã€ããŠç¥ã£ãŠããŸãã
ãŠãããã¯åé€ãããã·ã§ã« ã·ã³ãã«ã®ããã©ã«ãå€ãèšç®ãããŸãã ã®
æ§æ ã¹ã¯ãªãããçæã§ããŸãã config_h.SHã çµãã£ããã
è¡šèš
ããã»ã¹å šäœãå¥å šãªãã®ã«ããããã«ã¯ãé©åãªèŠåã«åŸãå¿ èŠããããŸãã å ŽåããããŸã
åäœã®èŠåãšå€æ°ã®åœåèŠåã
ç¹æ®ãªãŠãããã§ãªãéãããã¹ãŠã®ãŠãããã®æåã®æåã¯å°æåã«ããå¿ èŠããããŸãã ã«ãã
ç¹å¥ãªãã€ãŸãããããã¯å®éã«ã¯ã
ãŠãŒã¶ãŒã¯ .SH ãã¡ã€ã«å ã«èšè¿°ãããŸãããããããŠããããã¹ã¯ãªãããã·ã§ã«å€æ°ãçæããŸãã
ã«ãã£ãŠå éšçã«äœ¿çšããã æ§æ èæ¬ã å žåçãªäŸãšããŠã¯ã åæåU ãã¡ã€ã«ã¯
ã¡ã€ã³å€æ°ã®åæåããŸã㯠Myread.U ãçã¿åºãã®ã¯ ç§ã®èªã¿åã ã»ãŒäœ¿ãããŠããã¹ã¯ãªãã
ã©ãã§ã æ§æ ãŠãŒã¶ãŒã«è³ªåãããšãã
ç¹æ®ã§ãªããŠãããã¯ãå€æ°ãå®çŸ©ãããŠããããšãã XNUMX ã€ã®ç°ãªãã°ã«ãŒãã«çŽ°åãããŸãã
C ã·ã³ãã«ãšç¬èªã®ã·ã§ã«å€æ°ãå®çŸ©ãããŠãããã«é¢é£ä»ããããŠããŸãã æåã®ã°ã«ãŒã
ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ã«é¢é£ããå€æ°ã«ããã«åå²ãããŸã (åå㯠i_ïŒãš
ä»ã®å®çŸ©ã«é¢é£ããå€æ°ïŒã§å§ãŸãååïŒ d_ïŒã XNUMXçªç®ã®ã°ã«ãŒãã¯ã
ããšãã°ãååèªäœãããèªäœãè¡šã cc.U ãå®çŸ©ããŸã $cc å€ã次ã®ãããªã·ã§ã«å€æ°
䜿çšãã C ã³ã³ãã€ã©ã
ç¹æ®ãŠãããã¯ãäºåã«å®çŸ©ãããå€æ°ãäºçŽãããçµæããè¿ãå ŽåããããŸãã
ä»ã®ããç¥ãããå€æ°ã§ãã ããšãã°ã ç§ã®èªã¿åã Myread.U ãäœæããã¹ã¯ãªãã
ã®ããã³ãããæåŸ ãããŸã $rpãã®ããã©ã«ãã®çã $dflt ãŠãŒã¶ãŒã®åçã次ã®å Žæã«çœ®ããŸã $ans.
ããã¯ãã®ããã¥ã¢ã« ããŒãžã«ã¯èšèŒãããŠããŸããããŠãããèªäœã調ã¹ãŠç¢ºèªããå¿ èŠããããŸãã
ã©ã®å€æ°ã䜿çšãããããåäœãã©ã®ããã«äœ¿çšãããããç解ããŸãã
䜿ãæ¹ ã çšèªè§£èª¬
çšèªéãã¡ã€ã«ã¯ã ã¡ã€ã¯ã°ãã¹ ã¹ã¯ãªããã
?S:ã?C:ãããã³ ?MAKE: è¡ããã®æ å ±ãã¢ã«ãã¡ãããé ã«åãã©ãŒãããããŸãã
åé¡ãããçšèªéã èªåã®ã·ã³ãã«ã«ã€ããŠç¥ãããã«çšèªéãèªãããšãéèŠã§ã
䜿çšãèš±å¯ãããŠããŸãã ãã ããçšèªéã§ã¯ãã®äœ¿çšæ¹æ³ã«ã€ããŠã¯èª¬æãããŠããŸããã éåžžãããã¯
ããªã次第ã
ãã€ããããªããããããç¬èªã®åå ãäœæãã次ã®ããšã«ã€ããŠååã«ç¥ãããšã«ãªãã§ãããã ã¡ã¿æ§æ
ãããè¿ éãã€å¹ççã«è¡ãããã«ã ãã ããäœæ¥å 容ãé©åã«ææžåããããšã決ããŠå¿ããªãã§ãã ããã
?S: è¡ãš ?C: è¡ããŸãã¯ä»ã®äººããããåå©çšããããšã¯ã§ããŸããã ã«ã€ããŠèŠããŠãããŠãã ãã
çšèªéãšãã®ããã¥ã¢ã« ããŒãžã ããããã°å§ããããæ代ã§ããã
ãŸãšã
ä»ããªããç¥ã£ãŠãã ã¡ã¿æ§æ åºæ¬çã«ã¯ãèªãã§ãã ããã DESCRIPTION ã»ã¯ã·ã§ã³ããã®åŸ
ã«ã¹ãããããŠãã ãã REFERENCE ã»ã¯ã·ã§ã³ã§ã¯ãèš±å¯ãããŠãããã®ãªã©ããã¹ãŠã®æ²æšãªè©³çŽ°ã«ã€ããŠåŠã³ãŸãã
ãŠãããå¶åŸ¡è¡ (ã?ãã§å§ãŸãè¡) ãŸãã¯åå¥ã® MAKE ã³ãã³ãã®æ§æ
䜿çšããããšãèš±å¯ãããŠããŸãã
REFERENCE
ãã®ã»ã¯ã·ã§ã³ã§ã¯ã ã¡ã¿æ§æãåºæ¬çã«åäœæ§æãç¹æ®ãª
ç¥ã£ãŠããã¹ããŠããããšãã³ããã¡ã€ã«ã
ãŠããã æ§æ
ã¡ã¿æ§æãŠããã㯠XNUMX ã€ã®ç°ãªãéšåã«åå²ãããŸãã ããã㌠ã»ã¯ã·ã§ã³ (次ã®è¡ããå§ãŸã)
'?' ä»ã) ãšã·ã§ã« ã»ã¯ã·ã§ã³ ( æ§æ èæ¬ïŒã ããã¯
ãŠãããå ã®ã©ãã«ã§ãã?X:ãã³ã¡ã³ããè¿œå ã§ããŸãããä»ã®ã?ãã³ã¡ã³ãã¯è¿œå ã§ããŸããã è¡ïŒãŸã
åŒã°ããŸã ã³ã³ãããŒã« ã©ã€ã³) ã«ã¯å³æ Œãªæ³šæããªã·ãŒããããŸãã
å¶åŸ¡è¡ãé·ãããå Žåã¯ãæåŸã®è¡ããšã¹ã±ãŒãããããšã§ç¶ç¶ã䜿çšã§ããŸãã
ããã¯ã¹ã©ãã·ã¥ãå«ãæ¹è¡ãšæ¬¡ã®è¡ãžã®ç¶ç¶ (ãã®åŸãã€ã³ãã³ãããå¿ èŠããããŸã)
ã¹ããŒã¹ãŸãã¯ã¿ãã§åºåããŸã)ã
以äžã¯ãåå¶åŸ¡ç·ã®æ£åŒãªèª¬æã§ãã æèšãããŠããªãéã
ãã以å€ã®å Žåã¯ããã®ãã¬ãŒã³ããŒã·ã§ã³ã®é åºãåå å ã§äœ¿çšãããé åºã«ãªããŸãã
?RCS: ç¡æã§ãã íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€.
ãŠãããã®äžéšã«ãã RCS ã³ã¡ã³ãã«äœ¿çšãããŸãã
ïŒããïŒ ã©ãã íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€.
äžè¬çãªç®çã®ã³ã¡ã³ãã ãŠãããå ã®ã©ãã«ã§ãåºçŸã§ããŸããã䞡端æãã§é 眮ããå¿ èŠããããŸãã
RCS ã³ã¡ã³ãã«ã€ããŠã¯ã?RCS: ã³ã¡ã³ã ãã©ãŒã ã䜿çšããŠãã ããã
ïŒäœãïŒã·ã³ãã« ãªã¹ã: äŸåé¢ä¿ ãªã¹ã [+ãªãã·ã§ã³]
ããã¯æåã®äŸåé¢ä¿è¡ã§ãã æå ã·ã³ãã« ãªã¹ã ãã¹ãŠã®ã·ã³ãã«ããªã¹ãããå¿ èŠããããŸã
ãã®ãŠãããã«ãã£ãŠæ§ç¯ãããŸã (ã€ãŸãããã®å€ã¯ãŠãããã®ã·ã§ã« ã»ã¯ã·ã§ã³ã«ãã£ãŠèšç®ãããŸã)ã
èšå·ã¯ã¹ããŒã¹ã§åºåãå¿ èŠããããŸãã å®çŸ©ãããã·ã³ãã«ãå éšäœ¿çšã®ã¿ãç®çãšããŠããã
çæããããã¡ã€ã«ã«ã¯è¡šç€ºãããªãã¯ãã§ã config.sh ãã¡ã€ã«ã®å Žåããã®åã«
'+' (ä»åŸå®çŸ©ããããªãã·ã§ã³ã®äŸåé¢ä¿ãšæ··åããªãã§ãã ãã)ã äºçªç®
ãªã¹ãã®äžéš (äžå€®ã®ã:ã以é) ã¯åäœã®äŸåé¢ä¿ã§ãã ãã¹ãŠãªã¹ããããã¯ãã§ã
å¿ èŠãªç¹æ®åäœãšãã·ã§ã«ã§äœ¿çšããããã¹ãŠã®ã·ã³ãã«
å®è£ ã ã·ã³ãã«ããããã£ã³ã°ãããŠãããããã®èšå®å€ãéèŠã§ã¯ãªãå Žåã
ã®åã«ã+ããä»ããããšãã§ããŸãããã®å Žåãæ¡ä»¶ä»ãäŸåé¢ä¿ãšåŒã°ããŸãã
察å¿ãããŠãããã¯ããã®ã·ã³ãã«ãå®éã«ããã§ãªãå Žåã«ã®ã¿ããŒããããŸãã
欲ããã£ã; ãã以å€ã®å Žåã¯ãããã©ã«ãå€ã䜿çšãããŸãã
ïŒäœãïŒã¿ã command
æåã®äŸåé¢ä¿è¡ã®åŸã« XNUMX ã€ä»¥äžã®ã³ãã³ã ã©ã€ã³ãååšããå ŽåããããŸãã ãããã®
ã³ãã³ãã¯ããŠããããã³ãã³ããããŒãããããšãã«å®è¡ãããŸãã æ§æã èŠã
詳现ã«ã€ããŠã¯ãmake ã³ãã³ãã«é¢ãã段èœãåç §ããŠãã ããã å é ã® ã¿ã
ã®åã«æåãå¿ èŠã§ã command.
?Y:ã¬ã€ã¢ãŠã
ãã®ãŠãããã®ã¬ã€ã¢ãŠããã£ã¬ã¯ãã£ãã宣èšããŸãã ãã®ãã£ã¬ã¯ãã£ãã¯æååã® XNUMX ã€ã§ããå¯èœæ§ããããŸã
top, ããã©ã«ã or ããã (倧æåãšå°æåã¯é¢ä¿ãããŸãããæšå¥šãããã¹ã¿ã€ã«ã¯ããããã詳ãã説æããããšã§ã
倧æå)ã çç¥ããå Žåã¯ã ããã©ã«ã æ³å®ãããŸãã
ãã®ãã£ã¬ã¯ãã£ãã¯ããŠãããã匷å¶çã«äžéšãŸãã¯äžéšã«é 眮ããå Žåã«ã®ã¿å¿ èŠã§ãã
çæãããã® æ§æ ãŠãããã®äŸåé¢ä¿ã«ããèš±å¯ãããã¹ã¯ãªããã éèŠ
ãããã£ãŠãæåã«è³ªåã匷å¶ãããå¯èœæ§ããããŸãã åãã¬ã€ã¢ãŠã ã¯ã©ã¹å ã®ãŠããã
d_* ããã³ i_* åäœã® XNUMX ã€ã®ç¹æ®ãªã±ãŒã¹ã䜿çšããŠã¢ã«ãã¡ãããé ã«ãœãŒããããŸãã匷å¶çã«
ããããã¯ã©ã¹ã®æäžäœãšæäžäœã«ãããŸã (ãã ãããããã¯
ããã©ã«ãã®ã¯ã©ã¹ïŒã
ä»ã®ãã¹ãŠã®ãŠããããäŸåé¢ä¿ã«ãããŠããããå é ã«åŒ·å¶çã«é 眮ãããšã
ãã®åã«ãäœãèå³æ·±ãããšã¯éæãããŸããã ãããã£ãŠããã®ãã£ã¬ã¯ãã£ãã¯å®éã«ã¯
å€ãã®æ©èœã«äŸåããªãäžéšã®å¯Ÿè©±åãŠãããã®åªå é äœãäžããããã«äœ¿çšãããŸãã
ãã¹é¢é£ã®è³ªåãªã©ããŠãŒã¶ãŒã«è¡šç€ºããããã®ä»ã®ã·ã³ãã«ã
?S:ã·ã³ãã«å [(å»æ¢ããã ã·ã³ãã« ãªã¹ã)]:
ã·ã§ã«ã·ã³ãã«ãå°å ¥ããŸãã ãã®æåã®è¡ã§ã¯ã·ã³ãã«ã®ååãæå®ãããã®åŸã«ãªãã·ã§ã³ã§
æ¬åŒ§ã§å²ãŸãããªã¹ããšãå»æ¢ãããåçã®ãªã¹ãã瀺ããŸãã æ代é ãã®ãã®
ã·ã³ãã«ã¯æ°ããã·ã³ãã«ã«åããããããŸã ã·ã³ãã«å ãã -o ãªãã·ã§ã³ãäžããããŸã
ã¡ã¿æ§æ.
?S:ã©ãã ããã¹ãã for çšèªè§£èª¬
åºæ¬çã«ã·ã§ã« ã·ã³ãã«ã説æããã³ã¡ã³ããããã¯æ¬¡ã®ããã«æœåºãããŸãã ã¡ã€ã¯ã°ãã¹
çšèªéãã¡ã€ã«ã«è¿œå ããŸãã
?S:ã ã·ã§ã«ã·ã³ãã«ã®ã³ã¡ã³ããéããŸãã
?C:ã·ã³ãã«å [~ alias] [(å»æ¢ããã ã·ã³ãã« ãªã¹ã)]:
æ°ãã C èšå·ãå°å ¥ãããŸããã ã® alias name ã¯ãC ã·ã³ãã«ãä»ããããååã§ãã
å¶åŸ¡ãããå Žåãã€ãŸãã alias ã·ã³ãã«ãå¿ èŠãªå Žåããã® C ã·ã³ãã«ãæžã蟌ãŸããŸã
ã»ã¯ã·ã§ã³ã« config_h.SH ãã¡ã€ã«ã éåžžããšã€ãªã¢ã¹ã¯åã«ã%<ãïŒãŠãããåãè¡šããŸãïŒã§ãã
ãŸããC ã·ã³ãã«ã aliasã é¢é£éšåã
?H: è¡ã®ãã¡ãã?%<ãæ¡ä»¶ã«ãã£ãŠæ瀺çã«ä¿è·ãããŠããŸãã èšå·ãåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ãå¥å段èœãåç §ããŠãã ããã è¡ã®æ®ãã¯ãªãã·ã§ã³ã§ã
å»æ¢ããã ã·ã³ãã« ãªã¹ããæ°ãããã®ã«çžåœããå€ããã®ããªã¹ãããŸãã ã·ã³ãã«å.
?C:ã©ãã ããã¹ãã for çšèªè§£èª¬ & config_h.SH
åºæ¬çã«ã¯ C ã·ã³ãã«ã説æããã³ã¡ã³ãã§ã次ã®ããã«æœåºãããŸãã ã¡ã€ã¯ã°ãã¹
çšèªéãã¡ã€ã«ã«è¿œå ãã ã¡ã¿æ§æ ã« config_h.SH ã·ã³ãã«ã次ã®å Žåã¯ãã¡ã€ã«
å¿ èŠãªå Žå (ãŸãã¯ãã·ã³ãã«ã®ãšã€ãªã¢ã·ã³ã°ã䜿çšãããŠãããšãã«ãã®ãšã€ãªã¢ã¹ãå¿ èŠãªå Žå)ã
?C:ã C ã·ã³ãã«ã®ã³ã¡ã³ããéããŸãã
?ã²:?ã·ã³ãã«:config_h.SH ã¹ã¿ãã
ããã¯äžè¬çãªçµã¿èŸŒã¿ãªã¯ãšã¹ãã§ãã config_h.SHã ãã®è¡ã¯æ¬¡ã®å Žåã«ã®ã¿æžã蟌ãŸããŸãã
èŠå ã·ã³ãã« æ¬åœã«æ±ããããŠããŸãã ãã®äžè¬çãªåœ¢åŒã¯ãC ã·ã³ãã«ã®å Žåã«å¿ èŠã§ãã
ãšã€ãªã¢ã·ã³ã°ã䜿çšãããŸããã ãã以å€ã®å Žåãä»ã®ãæšæºã圢åŒã®ããããã䜿çšããå Žåã
ã¬ãŒãã¯èªåçã«è¡ãããŸã ã¡ã¿æ§æ ãã®ãã®ã
?H:#$d_var VAR "$ var"
æ¡ä»¶ä»ãã§å®çŸ©ããŸã VAR Cèšå·ãå ¥å $ var ãããã«èšå®ãããŠããå Žåå®çŸ©ããŸã'ã ãæ瀺ããŸãã
'?VAR:' ã¬ãŒãæ¡ä»¶ãããã³ ã¡ã¿æ§æ èªåçã«ãªã³ã¯ããŸã VAR äºã€ã®æ®»ã«
å€æ°ã®äŸåé¢ä¿ (ã€ãŸãäž¡æ¹ $d_var & $ var ãšããŠãã©ã°ãç«ãŠãããŸã wanted if VAR is
C ãœãŒã¹ã§äœ¿çšãããŸã)ã
?H:#å®çŸ© VAR [ä»»æ íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€. ]
åžžã«å®çŸ©ããŸã VAR C ã·ã³ãã«ãããå€ã«èšå®ããŸãã ã?ããæå³ããŸããVAR:' ã¬ãŒãæ¡ä»¶ã
ãŠãããèªäœã«å¯ŸããŠèªåçãªã·ã§ã«äŸåé¢ä¿ãäœæãããŸãã
?H:#å®çŸ© VAR(x,y,z) $ var
åžžã«ãã¯ããå®çŸ©ããŸã VAR ã®å€ã«ãªã $ var å€æ°ã ããã¯ã
確ä¿ããåäœ $ var åççãªäŸ¡å€èŠ³ãä¿æããŠããŸãã C éã®èªåäŸåé¢ä¿
ãã¯ã VAR ã·ã§ã«å€æ°ã確ç«ãããè¡å šäœã
æé»çã«ãïŒãVAR:'ã
?H:#$d_var VAR
æ¡ä»¶ä»ãã§å®çŸ©ããŸã VAR if $d_var ã«èšå®ãããŠããŸã 'å®çŸ©ããŸã'ã ã?ããæå³ããŸããVAR:' ã¬ãŒã
ç¶æ ã èªåçãªã·ã§ã«äŸåé¢ä¿ãçæãããŸãã $d_war.
?H:#å®çŸ© VAR "$ var"
æ§æãããå€ã VAR Cã®ã·ã³ãã«ã ã?ããæå³ããŸããVAR:' ã°ã¬ãŒãã£ã³ã°ç¶æ ã
ãªã³ã¯ããããã«èªåã·ã§ã«äŸåé¢ä¿ãçæãããŸãã VAR & $ var.
?H:ã ãéããŸã config_h.SH å«ãããªã¯ãšã¹ãã
?M:C ã·ã³ãã«: C äŸåé¢ä¿
C ã·ã³ãã«ã«é¢ããããžãã¯å®çŸ©ãå°å ¥ããŸãã confmagic.hãå®çŸ©ãã
æ®ãã® ?M: å®çŸ©ã®ä¿è·èšå·ã ãã®è¡ã¯æé»ã®ãã¡ã«æ瀺ããŠããŸã
'?W:%<:C ã·ã³ãã«'ãã€ãŸããC èšå·ã衚瀺ããããšããŠãããã Configure ã«ããŒããããŸãã
C ãœãŒã¹å ã§ã¯ãéæ³ã䜿çšãããŠãããã©ããã«é¢ä¿ãªãã C ã®äŸåé¢ä¿ãã¢ã¯ãã£ãåããã
éæ³ã䜿çšããããšãããã®å®çŸ©ã匷å¶ããããã« config_h.SHã ãããã
éæ³ã¯ 䜿çšãããŠããŸãããC èšå·ãå¿ èŠãª C ãªãã§ãœãŒã¹ã«è¡šç€ºãããŸãã
äŸåé¢ä¿ãããå ŽåãWanted ãã¡ã€ã«ãæ§ç¯ããããã³ã«èŠåã衚瀺ãããŸãã
移æ€æ§ã®åé¡ (ãŸãããŠããããç¡æ¡ä»¶ã«ããŒãããããã)
ä»ã® ?C: è¡ã«é¢ä¿ãªããC ã·ã³ãã«ã䜿çšããããã³ã«èšå®ããŸãã
åäœïŒã
?M:cpp å®çŸ©
é¢é£ããå Žåã«åžžã« confmagic.h ã«å°å ¥ãããããžã㯠cpp ãããã³ã°ãå®çŸ©ããŸãã
ãšããèšå·ã䜿ãããŠããŸãã æé»ã®ã?ãããããŸããsymãã©ããå®ã£ãŠããã®ãã sym ã¯ã·ã³ãã«åã§ã
å é ã® ?M: è¡ã«ãã£ãŠå®çŸ©ãããŸãã
?MïŒã ãéããŸã confmagic.h å«ãããªã¯ãšã¹ãã
?W:shell ã·ã³ãã« ãªã¹ã:C ã·ã³ãã« ãªã¹ã
ã·ã§ã« ã·ã³ãã«ã®éåœã C ã·ã³ãã«ã®éåœãšçµã³ã€ããŸãã
ãªã¹ããããŠããã·ã³ãã«ãå¿ èŠã§ããå Žåããã¹ãŠã®ã·ã§ã« ã·ã³ãã«ãå¿ èŠãšããŠããŒã¯ãããŸãã 圹ã«ç«ã€
äœããã® C ãååšããå ŽåããŠãããã匷å¶çã«å«ããŸã (ã·ã§ã« ã·ã³ãã« ãªã¹ãã '%<' ã«èšå®ãããŠããŸã)ã
ã·ã³ãã«ãæ€åºãããŸããã ã·ã§ã« ã·ã³ãã« ãªã¹ãã¯ãå¯æ¬¡çãªå©ç¹ãåŸãããã«ç©ºã®ãŸãŸã«ããããšãã§ããŸãã
çµã¿èŸŒã¿ããªããã»ããµå ã® C ã·ã³ãã«ã®äœçœ®ã®åœ±é¿ (ã·ã³ãã«ã¯ å®çŸ©æžã¿ã®
ãœãŒã¹å ã«ããå Žåã¯ãã®ããªããã»ããµçš)ã ã¹ããŒã¹ãå«ããã¿ãŒã³ãæ€çŽ¢ããã«ã¯
ãããã®äžã§ããstructãã®ããã«åçŽãªåŒçšç¬Šã§å²ãã C ã·ã³ãã«ãåŒçšããå¿ èŠããããŸãã
ã¿ã€ã ãŸãŒã³ãã
?V:èªã¿åãå°çšã® ã瀺ãããŒã¯ãè¿œå ããŸãã:èªã¿æžã ã瀺ãããŒã¯ãè¿œå ããŸãã
ãã㯠ã¡ã¿ãªã³ã ãã³ãã§ãããã·ã§ã«ããšã¯ã¹ããŒãããç¹å¥ãªãŠãããã§ã®ã¿äœ¿çšããå¿ èŠããããŸãã
å€æ°ã äžå€®ã®ã:ãããåã®å€æ°ã¯èªã¿åãå°çšã§ãšã¯ã¹ããŒããããŸãïŒå€æ°ã¯å€æŽãããŸãïŒã
ã¯èŠåãçºããŸã)ãä»ã®ã·ã³ãã«ã¯èªç±ã«èªã¿åã£ããå€æŽãããã§ããŸãã
?F:ãã¡ã€ã« äœæãã
ãã®è¡ã«ã¯ XNUMX ã€ã®ç®çããããŸãã ã¡ã¿ãªã³ã ãã³ããããã³ãã¬ãŒã¹ãã«ããŒã§ããããŸã
æªæ¥ jmake 䜿çšã XNUMX çš®é¡ã®ãã¡ã€ã«ããªã¹ãããå¿ èŠããããŸããXNUMX ã€ã¯äžæãã¡ã€ã«ã§ãã
ãã¹ãçšã«äœæããããã©ã€ããŒã UU ã¯åŸã§äœ¿çšããããã« UU ãã£ã¬ã¯ããªã«äœæãããŸã
é²èŠ§å¯èœãªãã®ãšãããã±ãŒãžã®ã«ãŒã ãã£ã¬ã¯ããªã«æ®ãããŠããå ¬éããããã®ã§ãã äžæç
ãã¡ã€ã«ã¯å é ã«ã!ããä»ããŠãªã¹ãããå¿ èŠããããŸãã æå (ãããã! åå©çšãããŸãããã®æå³)
åŸã§!")ããã©ã€ããŒã UU ãã¡ã€ã«ã®åã«ã./ããä»ããå¿ èŠããããŸã (æå³: ãããã䜿çšããã«ã¯ãããšãã°
ã/ãã¡ã€ã«ã ãã§ã¯ãªãã file)ããããªãã¯ãªãã®ã¯ãã®ãŸãŸã®ååãä»ããå¿ èŠããããŸãã
?T:shell äžæçãª
å¥ã® ã¡ã¿ãªã³ã ãã³ãã ãã®è¡ã«ã¯ãäžæå€æ°ãšããŠäœ¿çšããããã¹ãŠã®ã·ã§ã«å€æ°ããªã¹ããããŸãã
æ¬æ©ã®ã·ã§ã«éšå ã«ãããŸãã
?D:ã·ã³ãã«='å€'
æ¡ä»¶ä»ãäŸåé¢ä¿ãšããŠäœ¿çšãããã·ã³ãã«ã®åæåå€ã ãªãå Žåã?D: è¡ã¯
èŠã€ãã£ãå Žåã¯ã代ããã« null å€ã䜿çšãããŸãã ã® ã¡ã¿ãªã³ã ããã°ã©ã ã¯ã次ã®å Žåã«èŠåããŸãã
ã·ã³ãã«ã¯æ¡ä»¶ä»ãäŸåé¢ä¿ãšããŠå°ãªããšã XNUMX å䜿çšãããŠãããé©åãªäŸåé¢ä¿ããããŸããã
?D: åæåã null ã®å Žåã§ããããã®è¡ãè¿œå ããããšããå§ãããŸãã
åæåã¯ãã·ã³ãã«ã®ãªãã·ã§ã³ã®æ§è³ªã匷調ããããã§ãã
?O:ã©ãã ã¡ãã»ãŒãž 貎瀟 欲ããã§ã
ãã®ãã£ã¬ã¯ãã£ãã¯ããã®ãŠããããå šäœãšããŠå»æ¢ãããããšã瀺ããŸãã äœãã䜿çšãããã³ã«ã
ãã®ã·ã³ãã«ãäœæããã (ãŸãã¯äŸåé¢ä¿ãä»ããŠéæ¥çã«äœ¿çšããã) ãšãã¡ãã»ãŒãžãåºåãããŸãã
ç»é¢ (æšæºãšã©ãŒåºåäž)ã XNUMX ã€ä»¥äžã®è¡ãå ¥ããããšãã§ããŸãããã®å Žåãåè¡ã¯æ¬¡ã®ããã«ãªããŸãã
é çªã«å°å·ãããŸãã
?糞ãã:ã¡ã¿ãªã³ã ãã³ã
ãžã§ãã®èšå®æ¹æ³ã«ã€ããŠã¯ã ã¡ã¿ãªã³ã ããã¥ã¢ã«ããŒãžã«ã¯ã䜿çšã§ããåå¥ã®ãã³ãã®èª¬æãèšèŒãããŠããŸãã
äžå€ã
ïŒåæåïŒåæå ã³ãŒã
ãã®è¡ã§æå®ãããåæåã³ãŒãã¯ã
æ§æ ãŠããããå¿ èŠãªå Žåã¯ã¹ã¯ãªãããå®è¡ããŸãã
C ã·ã³ãã« ãšã€ãªã¢ã·ã³ã°
é Œããªãããšããã ã¡ã¿æ§æç¬èªã®ããã©ã«ãéžæ config_h.SH
ã³ã¡ã³ããš C ã·ã³ãã«å®çŸ©ã ããã§ãšã€ãªã¢ã·ã³ã°ãç»å ŽããŸãã ããããããªãã®ã§ã
説æããã®ã¯é£ããã®ã§ãåºç€ãšãªãã¡ã«ããºã ãç解ããããã«äŸãæ€èšããŸãã
d_const.U ãŠãããã¯ãC ã³ã³ãã€ã©ããã®ããšãèªèããŠãããã©ãããå€æããããšããŸãã å®æ°
ããŒã¯ãŒãã ããã§ãªãå Žåã¯ããã®ããŒã¯ãŒãã NULL æååã«åãããã³ã°ããŠã
ããã°ã©ã ã®ã³ã³ãã€ã«ã ããã«ã次ã®å Žåã«ãã¹ããèªåçã«ããªã¬ãŒããããšèããŠããŸãã å®æ° åèª
䜿çšãããŠããã
d_const.U ãŠãããã®é¢é£éšåã¯æ¬¡ã®ãšããã§ãã
?MAKE:d_const: cat cc ccflags Setvar
?MAKE: -pick add $@ %
?S:d_const:
?S: ãã®å€æ°ã¯æ¡ä»¶ä»ã㧠HASCONST ã·ã³ãã«ãå®çŸ©ããŸãã
?S: ãã® C ã³ã³ãã€ã©ã
?SïŒå®æ°åã
?S:ã
?C:HASCONST ~ %<:
?C: ãã®ã·ã³ãã«ãå®çŸ©ãããŠããå Žåããã® C ã³ã³ãã€ã©ãŒã次ã®ããšãèªèããŠããããšã瀺ããŸãã
?C: const åã ãã®ã·ã³ãã«ãå®éã«ãã¹ãããå¿ èŠã¯ãããŸãã
?C: ããã°ã©ã å ã ãconstãããŒã¯ãŒãã䜿çšããã ãã§ã
?C: å¿ èŠãªãã¹ããããªã¬ãŒããŸãã
?C:ã
?H:?%<:#$d_const HASCONST /**/
?H:?%<:#ifndef HASCONST
?H:?%<:#define const
?H:?%<:#endif
?H:ã
?W:%<:const
?LINT: d_const ãèšå®ããŸã
?LINT:æ¢ç¥ã®å®æ°
: const ããŒã¯ãŒãããã§ãã¯ããŸã
ãšã³ãŒ " "
echo 'C ã³ã³ãã€ã©ã "const" ã«ã€ããŠèªèããŠãããã©ããã確èªããŠããŸã...' >&4
/ bin / cat >const.c <<'EOCP'
ã¡ã€ã³ïŒïŒ
{
const char *foo;
}
EOCP
if $cc -c $ccflags const.c >/dev/null 2>&1 ; ãããã
val="$å®çŸ©"
ãšã³ãŒãã¯ããããã§ããã
ã»ãã«
val="$undef"
ãšã³ãŒãããããéããŸããã
fi
d_const ãèšå®ãã
eval $setvar
ãŸãã?W: è¡ã䜿çšãããŠããããšã«æ°ä»ããŸããããã¯åºæ¬çã«æ¬¡ã®ããã«è¿°ã¹ãŠããŸããããã®ãŠãããã¯ã
å®æ° ããŒã¯ãŒã㯠C ãã¡ã€ã«ã§äœ¿çšãããŠããŸãããæ¡ä»¶ä»ãã§åãããããã«ã¯ å®æ° ãã«ã«
æååãå ¥åãã config.hãæ¡ä»¶ä»ãã§å®çŸ©ããããšã«ããŸããã ãã¹ã³ã³ã¹ã ã $d_const.
ãã ããããã«ã¯åé¡ãçããŸãã ãã¹ã³ã³ã¹ã èšå·ã¯ã
ãœãŒã¹ã®ã¿ã å®æ° ããŒã¯ã³ã¯ã ãããŠã?H: è¡å®çŸ© ãã¹ã³ã³ã¹ã æé»çã«
ã?HASCONSTãã«ãã£ãŠä¿è·ãããŠããŸãã ãããã£ãŠãæ瀺çã«ã?%<ãå¶çŽãè¿œå ããŠéç¥ããå¿ èŠããããŸãã
ã¡ã¿æ§æ ãããã®è¡ãå«ããå¿ èŠãããããš config_h.SH ã%<ãèšå·ãããå Žåã¯åžžã«
æåæé ãããŸã (%< ã¯ãŠãããã®ååãæããŸããããã§ã¯ d_const).
?W: è¡ãå¿ èŠãšãããããããã¯ã»ãŒå®ç§ã§ãã d_const ãã³ã« å®æ° ã䜿çšãããŠããå Žåã
?H: è¡ã¯ config_h.SH ãã¡ã€ã«ã ãã ããå é ã®ã³ã¡ã³ã (?C:
è¡) ã«æ¥ç¶ãããŠããŸã ãã¹ã³ã³ã¹ã ããèªäœãçµç±ã§ä¿è·ãããŠããŸã ãã¹ã³ã³ã¹ããã€ãŸããæé»çãª
ã?HASCONSTãå¶çŽã ãããã£ãŠã次ã®å¿ èŠæ§ããããŸãã ãšã€ãªã¢ã·ã³ã° ã ãã¹ã³ã³ã¹ã èšå·ãã%<ãã«ããŸãã
ãŠãããã®æ®ãã®éšåïŒã·ã§ã«éšåïŒã¯éåžžã«ç°¡åã§ãã ããã¯åçŽã«
ã䜿çšããŠãµã³ãã« C ããã°ã©ã ãã³ã³ãã€ã«ããããšããŸãã å®æ° ããŒã¯ãŒãã ãããã§ãããªãããããªããŸã
å®çŸ©ããŸã $d_const ã㢠$setvar é¢æ° (ã«ãã£ãŠå®çŸ©ããã) Setvar.U ãŠãããïŒã ãã®æ®µèœãåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ãç¹æ®ãŠãããã«ã€ããŠãåç §ããŠãã ããã
ã¢ã«ãŠã³ããäœæã ã³ãã³ã
?MAKE: ã³ãã³ã ã©ã€ã³ã§ã¯ããã®ãŸãŸå®è¡ãããã·ã§ã« ã³ãã³ããèšè¿°ããããšãã
ç¹å¥ -éžã¶ ã«ãã£ãŠãã©ãããããã³ãã³ã ã¡ã¿æ§æ ãããŠè§£æããŠãããã¹ããã®ã確èªããŸã
çµããã å é ã®ã-ãã¯ããããé²ãããã«ã®ã¿ååšããŸãã make ã³ãã³ããè¿ããããšãã«å€±æããªãããã«ãã
ãŒã以å€ã®ã¹ããŒã¿ã¹ -- ' ã䜿çšãããããå®éã«ã¯å¿ èŠãããŸãããmake -n'ã解決ããã«ã¯
äŸåé¢ä¿ããããŸãããå°æ¥ã®ããŒãžã§ã³ã§å¿ é ã«ãªãå Žåã«åããŠä¿æããŠããããšããå§ãããŸãã
ã®æ§æã¯ã éžã¶ ã³ãã³ãã¯ïŒ
-éžã¶ CMD $@ ã¿ãŒã²ãããã¡ã€ã«
ã³ã©ãã¬ãŒ $@ çŸåšã®ã¿ãŒã²ãã (åå) ãè¡šã Makefile å ã®æšæºãã¯ãã§ãã
æ§ç¯äžã®ãŠãããã®æåŸã® .U æ¡åŒµåãåãé€ãããŠããŸã)ã ã® CMD éšåã¯
å®éã® ã¡ã¿æ§æ å®è¡ããã³ãã³ããšã ã¿ãŒã²ãããã¡ã€ã« ã¯ããã«å¥ã®ãã©ã¡ãŒã¿ã§ãã
解éã¯ã«ãã£ãŠç°ãªããŸã CMD èªäœã ãŸããæåŸã® .U æ¡åŒµåãåé€ãããŠããã
éåžžã¯ãŠããã ãã¡ã€ã«ãæããŸãããã./ãã§å§ãŸãå Žåã¯ãŠããã ãã¡ã€ã«ãåç §ããŸãã
ã¡ã¿æ§æ ' å ã®å¶åŸ¡ãã¡ã€ã«.MT ãã£ã¬ã¯ããªã«ãããŸãã
䜿çšå¯èœãªã³ãã³ãã¯æ¬¡ã®ãšããã§ãã
add ãè¿œå ããŸã ã¿ãŒã²ãããã¡ã€ã« ããž æ§æ.
add.Config_sh
ãã®éšåãåããŸã æ§æ ã®çç£ config.sh ãã¡ã€ã«ã 䜿çšã®ã¿
å€æ°ãè¿œå ãããæ¡ä»¶ä»ãå€æ° (æ¡ä»¶ä»ãäŸåé¢ä¿ãã) ãè¿œå ãããŸãã
ã¹ãããããŸããã
add.Null 䜿çšãããã¹ãŠã®ã·ã§ã«å€æ°ã空æååã«åæåããã»ã¯ã·ã§ã³ãè¿œå ããŸãã
c_h_weed ãçæããã®ã¯ã config_h.SH ãã¡ã€ã«ã å¿ èŠãªè¡ã ããå°å·ããŸãã
cm_h_weed ã¯ã confmagic.h ãã¡ã€ã«ã å¿ èŠãªè¡ã ããå°å·ããŸãã ãã
ã³ãã³ãã¯ã次ã®å Žåã«ã®ã¿æå¹ã«ãªããŸãã -M ã¹ã€ãããäžãããããšãããŸã㯠confmagic.h file
ããååšããŠããã
close.Config_sh
æåŸã®ãEOTãèšå·ãåç¬ã§è¡ã«è¿œå ããŠããã¢ããã¥ã¡ã³ããçµäºããŸãã
ãçæããæ§ç¯ç© config.sh ãã¡ã€ã«ã«ãœãããŠã§ã¢ãæå®ããå¿ èŠããããŸãã
prepend ã¿ãŒã²ããã®ã³ã³ãã³ããå é ã«è¿œå ããŸãã ã¿ãŒã²ãããã¡ã€ã« ãã®ãã¡ã€ã«ã空ã§ãªãå Žåã
éè ãŠããããè¿œå ããŸã æ§æ ã®ãã㪠å ããŸã ã³ãã³ãã䜿çšããŸãããè¿œå ã®ãã¹ããããã€ãè¡ããŸã
ã?ããåé€ããã«ã¯ã·ã³ãã«' ãã㊠'ïŒ ã·ã³ãã«' ã®è¡ ã¿ãŒã²ãããã¡ã€ã« ã·ã³ãã«ã®å Žå
æ±ããããŠããªãããŸãã¯æ¡ä»¶ä»ãã§æ±ããããŠããã ã%ã圢åŒã¯å éšçã«ã®ã¿äœ¿çšãããŸãã
ã¡ã¿æ§æ ' å ã«ç¬èªã® .U ãã¡ã€ã«ãçæããªããã.MT' ãã£ã¬ã¯ããªã
ã¯ã€ããšåã å ããŸã å®éã¯ãããªããŸãããè¿œå ã®ãã¯ã眮æãå®è¡ãããŸãã ã®
å©çšå¯èœãªãã¯ãã«ã€ããŠã¯ã ããŒãã¯ã€ã€ãŒ ãã¯ã 段èœã
è£è¶³ãšããŠã ã¡ã¿æ§æ çæãã -cond æ¡ä»¶ãåŠçããããã®å éšã³ãã³ã
äŸåé¢ä¿ã èªåã§äœ¿çšããã¹ãã§ã¯ãããŸãããããã¡ã€ã«ãã¹ãã£ã³ãããšè¡šç€ºãããŸãã
çæããã ã¡ãŒã¯ãã¡ã€ã« ã»ã¯ã·ã§ã³ã« .MT ãã£ã¬ã¯ããªã«ãããŸãã
ããŒãã¯ã€ã€ãŒ ãã¯ã
次ã®ãã¯ããèªèãããŸãã ã¯ã€ã ã³ãã³ãã«å«ããåã«çœ®æãããŸãã
æ§æ:
ããã±ãŒãžã®åºæ¬ãªããžã§ã³çªå·ã次ããå°åºãããŸãã ãããã±ãŒãž.
çŸåšã®æ¥ä»ã
ãã®ããã±ãŒãžã®ç®¡çè ã®é»åã¡ãŒã« ã¢ãã¬ã¹ã
ãããã±ãŒãž.
ããã±ãŒãžã®ååã ãããã±ãŒãž ãã¡ã€ã«ã«ãœãããŠã§ã¢ãæå®ããå¿ èŠããããŸãã
ãããã¬ãã«ã¯ã ã¡ã¿æ§æ ããã°ã©ã (éæšå¥šã«ãªããŸãã) ïŒã
ã® SVN ãªããžã§ã³ ã¬ãã« ã¡ã¿æ§æ ããã°ã©ã ã
ã®ããŒãžã§ã³çªå· ã¡ã¿æ§æ ããã°ã©ã ã
ãããã®ãã¯ãã¯äž»ã«ã ã¡ã¿æ§æ ãçæããããŒãžã§ã³
ç¹å®ã® æ§æ ã¹ã¯ãªãããšãããå®è¡ãããããã±ãŒãžã ã®é»åã¡ãŒã«ã¢ãã¬ã¹
ã¡ã³ããã¯äž»èŠãªåœä»€ã«çµã¿èŸŒãŸããŠããŸãã æ§æ èµ·åæã«å°å·ãããŸãã
æè¿ã® ã¡ã¿æ§æ ããŒãžã§ã³ã¯ã次ã®åœ¢åŒã®ããäžè¬çãªæ§æãç解ããŸãã
<$å€æ°>
ããã¯ãæ§æçææã«æ¬¡ã®å€ã«çœ®ãæããããŸãã å€æ° ããªãããåããã
ãããã±ãŒãž ãã¡ã€ã«ã æçµçã«ã¯ãå€ãåºå®ãã¯ã圢åŒã¯æ¶æ» ãã<$baserev>
亀æããŸãä»å±ã®ãã¹ãŠã®ãŠãããã§ã
ã¹ãã·ã£ã« Units
次ã®ç¹å¥ãªåäœã¯ãã³ãŒããå æ°å解ããããé«ãã¬ãã«ãæäŸããããã«äœ¿çšãããŸãã
æ©èœæ§ã ãããã¯ããœãŒã¹å¯èœãªã·ã§ã« ã¹ã¯ãªãããçæããããã·ã§ã«ãçæããŸãã
ã§ããå€æ° è©äŸ¡ããç·šéããŸããã ãã©ã¡ãŒã¿ã®åãæž¡ãã¯ãããç¥ãããå€æ°ãä»ããŠè¡ãããŸãã
$1ã$2 ãªã©ã®ååä»ããŸãã¯å¿å (ã·ã§ã«çµç±ã§ç°¡åã«èšå®ã§ããŸã) ã»ãã·ã§ã³ã«
ãªãã¬ãŒã¿ãŒïŒã ã〠æ§æ å®è¡ãããšã UU ãã£ã¬ã¯ããªãªã®ã§ããã¹ãŠã®
çæãããã¹ã¯ãªããã¯ããã«ãããããã±ãŒãžã®ãã¡ã€ã«ã«å¹²æžããŸããã
ããã§ã¯ãç¥ã£ãŠããã¹ãç¹æ®ãªåäœãšãã®äœ¿çšæ¹æ³ã玹ä»ããŸãã
Cppsym.U
ãã®ãŠãããã¯ããšããã·ã§ã« ã¹ã¯ãªãããçæããŸãã ã³ãã·ã ã決å®ããããã«äœ¿çšã§ããŸãã
ãªã¹ãå ã®ã·ã³ãã«ã C ããªããã»ããµãŸã㯠C ã³ã³ãã€ã©ã«ãã£ãŠå®çŸ©ãããŠãããã©ãã
æå®ãããã ä»»æã®ã·ã³ãã«ã®ã¹ããŒã¿ã¹ã決å®ã§ããŸããã
(å±æ§ãªã¹ã) ãããç°¡åã«æ±ºå®ã§ããŸãã
Csym.U
ããã«ãããå éšã§äœ¿çšããã $csym ã·ã§ã«å€æ°ãèšå®ãããŸãã æ§æ ãã©ããã確èªãã
æå®ããã C ã·ã³ãã«ãå®çŸ©ãããŠãããã©ããã äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
ã·ã³ãã«ã®çµæãèšå® [-fva] [åãž]
è©äŸ¡$csym
ããã¯èšå®ããŸã çµæ é¢æ° [-f]ãå€æ° [-v]ããŸãã¯
é å [-a] ãå®çŸ©ãããŠããå Žå㯠'false' ãå®çŸ©ãããŠããŸãã 以åã®å€ãäžãããã -r
ã¹ã€ãããæäŸãããŸãã æ§æ ïŒåç § æ§æ ãªãã·ã§ã³ 段èœïŒãããããã
å€ã¯åé¡ãªãåå©çšãããŸãã
ãã®èšç®ãè¡ãããæ¹æ³ã¯ã質åã«å¯ŸãããŠãŒã¶ãŒã®çãã«ãã£ãŠç°ãªããŸãã
æ§æ ãå®è¡ããå¿ èŠããããã©ãããå°ããŸãã nm æœåºãåŠãã ãã
æœåºãå®è¡ãããå ŽåããŠãããã¯åã«ã·ã³ãã«ãªã¹ãã調ã¹ãŸãããã以å€ã®å Žåã¯ã
ããã§ãªãéããã³ã³ãã€ã«ãªã³ã¯ãã¹ããå®è¡ããŸãã -r 以åã«èšç®ãããå€ãåå©çšããããã«äžããããŸãã
åœç¶ã®ããšã§ãã...
End.U
ãã®ãŠãããããã©ã€ããŒãã«ã³ããŒããããšã§ã U ãã£ã¬ã¯ããªãšäŸåé¢ä¿ã®è¿œå
?MAKE: è¡ã§ãæå®ããããŠãããã匷å¶çã«ããŒãã§ããŸãã æ§æ ããšãããã§ãªããŠã
ãã以å€ã®å Žåã¯åžæãããŸãã äžéšã®ãŠãããã¯åŒ·å¶çã«ã®ã¿å¯èœã§ã æ§æ ããã§ããã
Fileexp.U
ãã®ãŠãããã¯ã·ã§ã«ã¹ã¯ãªãããçæããŸã ãã¡ã€ã«æ¡åŒµå ããã«ããã次ã§å§ãŸããã¡ã€ã«åãå±éãããŸãã
ãã«ãã äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
exp_name=`./fileexp $name`
å±éããããã¡ã€ã«åãå²ãåœãŠãã«ã¯ exp_name.
Findhdr.U
ãã®ãŠãããã¯ã hdrãèŠã€ãã ããã㌠ãã¡ã€ã«ãèŠã€ããããã«äœ¿çšãããã¹ã¯ãªãã
$usrinc ãŸã㯠cpp æ©èœã䜿çšããä»ã®èŠç¥ãã¬å Žæã ã¹ã¯ãªããã«ã¯
ãstdio.hãããsys/file.hããªã©ã®ãã¡ã€ã«ããŒã¹åãå«ãããšããã®ãã«ãã¹ãè¿ãããŸãã
ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ãšãèŠã€ãã£ãå Žåã¯ãŒãã®ã¹ããŒã¿ã¹ããŸãã¯ç©ºã®æååãšãŒã以å€ã®ã¹ããŒã¿ã¹
ãã¡ã€ã«ãèŠã€ãããªãã£ãå Žåã
Getfile.U
ãã®ãŠãããã¯ããã¡ã€ã«ãååŸããããã«ãœãŒã¹ããå¿ èŠãããã·ã§ã« ã³ãŒããçæããŸãã
ååãä»ããŠå¥å šæ§ãã§ãã¯ãè¡ããŸãã ãªãã·ã§ã³ã§ã~name å±éãå®è¡ãããŸãã
æ¬æ©ã䜿çšããã«ã¯ã $rp & $dflt 質åãšããã©ã«ãã®åçãä¿æããå¿ èŠããããŸãã
ã«ãã®ãŸãŸæž¡ãããŸã ç§ã®èªã¿åã ã¹ã¯ãªãã (ä»åŸã®äºå®ãåç §) Myread.UïŒã 㶠$fn
å€æ°ãæäœãå¶åŸ¡ããçµæãè¿ãããŸãã $ans.
ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªãèŠã€ããã«ã¯ããfããŸãã¯ãdããå ¥åããŸãã ãµã/ã ã~ãã衚瀺ãããå Žåã¯ã~name
眮æã¯èš±å¯ãããŠããŸãã ã/ãã衚瀺ãããå Žåã¯ã絶察ãã¹åã®ã¿ãåãå ¥ããããŸãã
~name 眮æã¯ãè¿ãããåã«åžžã«å±éãããŸãã ã+ããæå®ãããšã
ååšãã§ãã¯ã¯ã¹ããããããŸãã äžã«ãnããå ¥ã£ãŠããå Žå $fnããã®åŸããŠãŒã¶ãŒã¯æ¬¡ã®ããšãèš±å¯ãããŸã
ããªãããšçããŠãã ããã
éåžžã移æ€æ§ãèŠæ±ããªãéããèŠæ±ããããšãã« ~name 眮æãè¡ãããŸãã
ãã ãã移æ€æ§ããã€ãã¹ããŠåŒ·å¶çã«å®è¡ãããå ŽåããããŸãã
眮æã ãããè¡ãã«ã¯ããeãæå (å±é) ã䜿çšã§ããŸãã
ç¹æ®ãªãlãïŒäœçœ®ç¹å®ïŒã¿ã€ãã䜿çšãããŠããå Žåã $fn å€æ°ã¯ã:ãã§çµããå¿ èŠããããŸãã
ãã®åŸã«ãã¡ã€ã«ã®ããŒã¹åãç¶ããŸãã çãããã£ã¬ã¯ããªã®å Žåããã¡ã€ã«ã®ããŒã¹åã¯æ¬¡ã®ããã«ãªããŸãã
ãã¡ã€ã«ã®ååšããã¹ãããåã«è¿œå ãããŸãã ããã¯ãæ€çŽ¢åœ¢åŒã®è³ªåã«åœ¹ç«ã¡ãŸã
ãã®ãããªïŒ
dflt='~ãã¥ãŒã¹/lib'
: 'l' ã䜿çšããå Žå㯠'd' ãŸã㯠'f' ãæå®ããå¿ èŠã¯ãããŸãã
fn='l~:ã¢ã¯ãã£ã'
rp='ã¢ã¯ãã£ããªãã¡ã€ã«ã¯ã©ãã§ãã?'
ã ./getfile
ã¢ã¯ãã£ã = "$ans"
ããã«ããpãïŒãã¹ïŒæåããlããšçµã¿åãããŠäœ¿çšââããŠã
ãã¡ã€ã«ã®ååŸ '/' ãå«ãŸããŠããªãåçã¯åãå ¥ãããããšä»®å®ããŠã
ãã®å€ãå¿ èŠã«ãªãæç¹ã§ãå šå¡ã® PATH ã«ååšããå¿ èŠããããŸãã
åãå ¥ããããã¹ãåçã®ãªã¹ããæå®ã§ããããšã䟿å©ã§ã
éèªçã«ããã¹ãŠã®ãã§ãã¯ããã€ãã¹ããŸãã ãã®ãªã¹ãã¯æ¬åŒ§ãšé ç®ã§å²ãå¿ èŠããããŸã
ã¹ããŒã¹ãæãŸãã«ã«ã³ãã§åºåãå¿ èŠããããŸãã åŒçšããããšãå¿ããªãã§ãã ãã
ãã£ãã¯ã·ã§ã«ã«ãšã£ãŠæå³ããããããçµæã®æååã«ãªããŸãã äŸãã°ïŒ
dflt='/bin/install'
fn='/fe~(ã€ã³ã¹ããŒã«,./ã€ã³ã¹ããŒã«)'
rp='ã©ã®ã€ã³ã¹ããŒã« ããã°ã©ã ã䜿çšããŸãã?'
ã ./getfile
ã€ã³ã¹ããŒã« = "$ans"
ãŠãŒã¶ãŒã¯æ¢åã®ãã¡ã€ã«ãåç §ããå®å šä¿®é£Ÿãã¹ã®ã¿ãæå®ã§ããŸãã
ãã ããç¹æ®ãª "install" ããã³ "./install" ã®å¿çã¯ãã®ãŸãŸèš±å¯ãããŸã (
ãã¡ããã圌ãã¯ããããã®ã§ããã§ãŒã³ã®åŸåã§ç¹å¥ã«äœãããããã«å¯ŸåŠããŸãã
äžè¬çã«äºæ³ããããã¬ãŒã ãšã¯äžèŽããŸããïŒã
質åã«å¯Ÿããçããããªããã®å Žåãååšãã§ãã¯ã¯ã¹ãããããã
空ã®æååãè¿ãããŸãã 以éã«æ³šæããŠãã ãã ãã¡ã€ã«ã®ååŸ åŒã³åºã ç§ã®èªã¿åã å éšçã«ã¯ããã¹ãŠ
ã§å©çšã§ããæ©èœ ç§ã®èªã¿åã ããã«ç³è«ããŠãã ããã
å®å šã«å±éãããå€ãå¿ èŠãªå Žå (ããšãã° Makefile å )ã次ã䜿çšã§ããŸãã
ã $ansexp ã«ãã£ãŠåžžã«é©åã«èšå®ãããå€æ° ãã¡ã€ã«ã®ååŸ æ¡åŒµããããã®ãšããŠ
ã®ããŒãžã§ã³ $ansã ãã¡ããã~name ãèš±å¯ãããŠããªãå Žåã¯å±éãããŸããã
ã®XNUMXäœ $fn å€æ°ã«ä¿åããŸãïŒ
Inhdr.U
ãã®ãŠããããçã¿åºãã®ã¯ã $inhdr ã·ã§ã«å€æ°ãå éšã§äœ¿çšãããŸãã æ§æ ãã§ãã¯ãã
ããããŒã®ã»ãããååšãããã©ããã äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
ããããŒãèšå® i_header [ header2 i_header2 ... ]
è©äŸ¡ $inhdr
ããã«ãããããããŒãèŠã€ãã£ããã©ããã瀺ãã¡ãã»ãŒãžãåºåããã
i_header ããã«å¿ããŠå€åããŸãã è€æ°ã®ããããŒãæå®ãããæåã®ããããŒãæå®ãããå Žåã
ããããŒãèŠã€ãããªãå Žåã¯ããªã¹ãã空ã«ãªãããããããŒãèŠã€ãããŸã§ã次ã®ããããŒãè©Šè¡ãããŸãã
Inlibc.U
ãã®ãŠããããçã¿åºãã®ã¯ã $inlibc ã·ã§ã«å€æ°ãå éšã§äœ¿çšãããŸãã æ§æ ãã§ãã¯ãã
ç¹å®ã® C é¢æ°ãå®çŸ©ãããŠãããã©ããã äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
é¢æ° d_func ãèšå®ããŸã
è©äŸ¡$inlibc
é¢æ°ãèŠã€ãã£ããã©ããã瀺ãã¡ãã»ãŒãžã衚瀺ãããèšå®ãããŸãã
$d_func ããã«å¿ããŠã å éšçã«ã¯ã $csym ã«ãŒãã³ã
Loc.U
ãã®éèŠãªãŠãããã¯ã·ã§ã« ã¹ã¯ãªãããçæããŸã LOC å ŽæãèŠã€ããããã«äœ¿çšã§ããŸã
ãã£ã¬ã¯ããªã®ãªã¹ãã«æå®ããããã¡ã€ã«ãååšããŸãã æåã®åŒæ°ã§ãã¡ã€ã«ãæå®ããŸãã
XNUMX çªç®ã®åŒæ°ã¯æ€çŽ¢ã倱æããå Žåã«è¿ããããã®ã§ã
æ®ãã®åŒæ°ã¯ããã¡ã€ã«ãæ€çŽ¢ããããã£ã¬ã¯ããªã®ãªã¹ãã§ãã ã®ããã«
ã€ã³ã¹ã¿ã³ã¹ïŒ
dflt=`./loc sendmail.cf X / usr / lib /var/lib/sendmail / lib`
èšå®ããŸã $dflt ããž X ãããã®å Žå sendmail.cf ãªã¹ãããããã£ã¬ã¯ããªã®äžã«ãã¡ã€ã«ãèŠã€ãããŸããã
ãŸãã¯äœãã®ãã㪠/usr/lib/sendmail.cf äžéšã®ã·ã¹ãã ã§ã¯ã ãã¡ããåç § Getfile.U.
MailAuthor.U
äœæããã«ã¯ããã®ãŠããããç¬èªã®ãã©ã€ããŒã End.U ã® ?MAKE: è¡ã«å«ããå¿ èŠããããŸãã
ããã« æ§æã ãŠãŒã¶ãŒã¯ãªãã·ã§ã³ã§èè ã«èªåèªèº«ãç»é²ããããšãã§ããŸãã
æ°ããããããå°çãããšéç¥ãããããçºè¡æã«èªåçã«åä¿¡ãããŸãã
ããªãã¯ã€ã³ã¹ããŒã«ããå¿ èŠããããŸã ã¡ãŒã«ãšãŒãžã§ã³ã ãããè¡ãã«ã¯ (å°ãªããšãããŒãžã§ã³ 3.0)ã
ã¡ãŒã«ãªã¹ã.U
äœæããã«ã¯ããã®ãŠããããç¬èªã®ãã©ã€ããŒã End.U ã® ?MAKE: è¡ã«å«ããå¿ èŠããããŸãã
ããã« æ§æã ãŠãŒã¶ãŒã«ã¡ãŒãªã³ã°ãªã¹ãã®è³ŒèªãŸãã¯è³Œèªè§£é€ãææ¡ããŸãã
ããã±ãŒãžã«é¢ããè°è«ãè¡ãããŠããå Žæã èµ°ããªããã°ãªããŸãã ããã¯ã€ãã
ã¡ãŒãªã³ã° ãªã¹ãã«é¢é£ãã質åã«çããŠãé©åãªå€æ°ãèšå®ããŸãã
ãããã±ãŒãž ãã®ãŠããããåäœããåã«ã
Myinit.U
ãã®ãŠãããããã©ã€ããŒãã«ã³ããŒããŸã U ãã£ã¬ã¯ããªã«ç¬èªã®ããã©ã«ãå€ãè¿œå ãã
å éšå€æ°ã ãã®ãŠãããã¯ã«ããŒããããŠããŸã æ§æ çµå±ããã©ã«ã
åæåãè¡ãããŠããŸãã
Myread.U
ãã®ãŠããããçã¿åºãã®ã¯ã ç§ã®èªã¿åã å®è¡ããããã«ãœãŒã¹ããå¿ èŠãããã·ã§ã« ã¹ã¯ãªãã
èªãã ã·ã§ã«ãšã¹ã±ãŒããããã©ã«ãã®å²ãåœãŠãããã³ãã©ã¡ãŒã¿ã®è©äŸ¡ãå¯èœã§ãã
Instruct.U ãŠãããã«ææžåãããŠããŸãã ãŸãã -d ãªãã·ã§ã³ã
ããã¯æ®ãã®ã¹ã¯ãªããå®è¡ã«äœ¿çšãããŸãã
æ¬æ©ã䜿çšããã«ã¯ã $rp 質åãä¿çããªããã°ãªããŸããããã㊠$dflt ããã©ã«ããå«ããå¿ èŠããããŸã
çãã 質åã¯ã¹ã¯ãªããèªäœã«ãã£ãŠåºåãããçµæãè¿ãããŸãã
ã»ã¯ã·ã§ã³ã« $ans å€æ°ã«ä¿åããŸãïŒ
äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
dflt='y'
rp='質å?'
ã ./myread
å€ = "$ans"
詳现ã«ã€ããŠã¯ããŠãããèªäœãåç §ããŠãã ããã
Oldconfig.U
äžéšã®ãŠããããè©Šè¡ãããšãããã®ãŠãããã¯äŸåé¢ä¿ã® ?MAKE: è¡ã®äžéšã§ããå¿ èŠããããŸãã
å€ãã·ã³ãã«å€ãåå©çšããŸãã ãã®ãŠãããã¯å€ãçããååŸãã責任ããããŸã
ãã config.sh ãŸãã¯ãç¹å®ã®ãã©ãããã©ãŒã ã§å®è¡ãããšãã«åœ¹ç«ã€ãã³ããæäŸããŸãã
åããŠã ãåç §ããŠãã ããã æ§æ ãã³ã ãã³ãã®è©³çŽ°ã«ã€ããŠã¯ããã®æ®µèœãåç §ããŠãã ããã
Prefixit.U
ãã®ãŠãããã®ç®çã¯ãã€ã³ã¹ããŒã« ãã¬ãã£ãã¯ã¹ ãã£ã¬ã¯ããªã®å€æŽãæ€åºããããšã§ãã
以åã®åçããé©åãªããã©ã«ããèªåçã«åèšç®ããŸãã ããã¯ã
ã®å€ $oldprefix åã®ãã¬ãã£ãã¯ã¹ ãã£ã¬ã¯ããªãä¿æããå€æ°
å€æŽãããŠããããã以å€ã®å Žåã¯ç©ºã§ãã ããšãã°ããã¬ãã£ãã¯ã¹ã次ããå€æŽãããå Žåã / opt ããž
/ usr / localã®å Žåã以åã®ãã€ããªã®ã€ã³ã¹ããŒã« ãã£ã¬ã¯ããªã¯ ããå€æŽãããŸãã
/ opt / bin ããž / usr / local / binããŸãã¯ãããšãã°ã次ã®å Žåã¯å€æŽãããŸããã / binã«.
é»è©±ããå¿ èŠããããŸã ã»ãã·ã§ã³ã« çºè¡ããåã« è©äŸ¡ãã on $prefixitãã®ãããªïŒ
dflt var [ãã£ã¬ã¯ããª]ãèšå®ããŸã
eval $prefixit
ã©ã¡ããèšå®ããŸãã $dflt ããž $ var or $ãã¬ãã£ãã¯ã¹/ãã£ã¬ã¯ã㪠ãã¬ãã£ãã¯ã¹ãæ®ã£ãŠãããã©ããã«å¿ããŠ
åããã©ããã ãã DIR æååã§ã ãªããåäžã®ã¹ããŒã¹å€ $dflt ãšããŠä¿åãããŸã-
ã€ãŸãããã¬ãã£ãã¯ã¹ãå€ãã£ãå Žåã§ãåæ§ã§ãã ãã DIR çç¥ãããå Žå $dflt 空ã«èšå®ãããŠããŸã
ãã¬ãã£ãã¯ã¹ãå€æŽãããå Žåã¯æååã« $ var ãããªããšã
Prefixup.U
ãã®ãŠãããã®ç®ç㯠Prefixit.U ã®ç®çãšäŒŒãŠããŸããã€ãŸãã
ãã¬ãã£ãã¯ã¹ã®å€æŽã«å¯Ÿå¿ããããã©ã«ãã®æååã ãã ããã·ã§ã«å€æ° $prefixup,
è©äŸ¡ããããšã~name ã®å±éã®ã¿ã埩å ãããŸãããã¬ãã£ãã¯ã¹ã«ã¯ãã®ãããªãšã¹ã±ãŒãã䜿çšããå¿ èŠããããŸã
æ©æ§ã 次ã®ããã«äœ¿çšããŸãã
dfltãèšå®ãã
eval $prefixup
ããã³ããã衚瀺ããåã« ãã¡ã€ã«ã®ååŸ äŸãã°ã ãã¬ãã£ãã¯ã¹ã ~name ã䜿çšããªãå Žå
å±éããå Žåãäžèšã¯äœãè¡ãããŸããã y åœç¶ãå€åããŸãã
Typedef.U
ãã®ãŠããããçã¿åºãã®ã¯ã $typedef ã·ã§ã«å€æ°ãå éšã§äœ¿çšãããŸãã æ§æ ãã§ãã¯ãã
typedef ãååšãããã©ããã äžè¬çãªäœ¿çšäŸã¯æ¬¡ã®ãšããã§ãã
typedef val_t ã®ããã©ã«ããèšå® [ã€ã³ã¯ã«ãŒã]
è©äŸ¡$typedef
ããã«ãããå€æ°ãèšå®ãããŸã val_t ã®å€ã« ããã©ã«ã typedef ãèŠã€ãããªãã£ãå Žå
ãªã¹ããããã€ã³ã¯ã«ãŒã ãã¡ã€ã«ã®äžããããŸã㯠typedef èŠã€ãã£ããã ã€ã³ã¯ã«ãŒã ãã¡ã€ã«ããªãå Žåã¯ã
æå®ãããšããŠãããã¯ä»¥äžã調ã¹ãŸã ã®ã¿ã ããã€ãã®ã€ã³ã¯ã«ãŒããæå®ããå Žåã®ã¿ã
ãããã¯èŠãããŠããŸãã
Unix.U
ãã®åå ã®ç®çã¯ãå€æ°ãä»ããŠæãäžè¬ç㪠UNIX 䞻矩ã®ããã€ããå®çŸ©ããããšã§ãã
ããã¯ã³ãã³ãã©ã€ã³ããããŸãã¯é©åãªãã³ããã¡ã€ã«ãä»ããŠå€æŽã§ããŸãã ç¹ã«ã
$_exe, $_o & $_a èšå®ãããŠããŸãã ãã¹ãŠã®ãŠããããåç §ããå¿ èŠããããŸã $_o ãããŠããªã .o çŽæ¥ã
ããã ã¯ãããã®å€æ°ã®äžéšã§ãã
Setvar.U
ãã®ãŠãããã¯ãå éšã§äœ¿çšãããå€æ°ãçæããŸãã æ§æ èšå®ãã
å®çŸ©ããŸã/undef å€ãæå®ãããã·ã³ãã«ã«èšå®ããå€ãçªç¶å€åãããšãã«èŠåãçºããŸãã
以åã®å€ããã äŸãã°ïŒ
val="$å®çŸ©"
d_å€æ°ãèšå®ããŸã
eval $setvar
以åã®å Žå $d_å€æ° å€ã null ã§ã¯ãªãã $val éãããããã£ã
èŠåãçºããããŸãã
ãã£ãšãU
ãã®ãŠããããçã¿åºãã®ã¯ã ãŠã¢ ã¹ã¯ãªããã¯ã次ã®å Žåã«èŠåãçºããŸãã å€ å€æ°å
誰ã®åå㯠$ var ã«ä¿æãããŠããå€ã以åã®å€ãšåãã§ã¯ãããŸãã $ wasã ã«
æ»ãã $td & $tu é©åãªå€ãä¿æããŠãã ãã å®çŸ©ããŸã or æªå®çŸ© å€æ°ã èŠã
ã®äŸ Inlibc.U.
ãã«ãã€ã³ ããªããã»ããµ
åé²ãããåãŠããã æ§æ çµã¿èŸŒã¿ã®ããªããã»ããµãéããŠå®è¡ãããŸãã ãã¬
ããã»ããµãŒã»ã¹ããŒãã¡ã³ãã¯ã@ãæåã«ãã£ãŠå°å ¥ãããŸã (ã#ãã¯ã·ã§ã«ã®ã³ã¡ã³ãã§ã)
ãã£ã©ã¯ã¿ãŒïŒã C ããªããã»ããµãšåãããã«æ©èœããŸãããã·ã§ã«ã Perl ã䜿çšã§ããŸãã
éããã å©çšå¯èœãªæ©èœã¯æ¬¡ã®ãšããã§ãã
@ããã è¡šçŸ
If è¡šçŸ ã true ã®å Žåã@endã@elsifããŸã㯠@else ãŸã§ã³ãŒãã®èªã¿èŸŒã¿ãç¶ããŸãã
@ãšã«ã·ã è¡šçŸ
å¥ã®éžæè¢ã ãã è¡šçŸ true ã®å Žåã@end ãŸã§ã³ãŒãã®èªã¿èŸŒã¿ãç¶ããŸãã
å¥ã® @elsif ãŸã㯠@elseã
@else @if ã®å Žåã«ããŒããããããã©ã«ãã®ã³ãŒã è¡šçŸ ã¯èåœã§ãããã©ãã
ãªãã·ã§ã³ã® @elsif ãäžèŽããŸããã @endãŸã§ããŒãããŸãã
@end @if ã§éããæ¡ä»¶ä»ãèªã¿èŸŒã¿ã¹ããŒãã¡ã³ããéããŸãã
@å®çŸ©ãã ã·ã³ãã«
ããªããã»ããµã«æ¬¡ã®ããšãäŒããŸã ã·ã³ãã« ããããå®çŸ©ãããŸãã
æ¡ä»¶ä»ã è¡šçŸ ã·ã³ãã«åãå«ããããšãã§ããŸã (ã·ã³ãã«ãå¿ èŠãªå Žåãå€ã¯ true ã§ãã
çµç±ã§å®çŸ© @å®çŸ©ãã ãŸãã¯ã·ã§ã«/Perl ãšã¹ã±ãŒãã ãããã®ååã¯ã
åŸæ¥ã®ããŒã«æŒç®åã!ã åŠå®ã®å Žåã¯ã&&ããè«çç©ã®å Žåã¯ã||ã è«ççãª
ãŸãã¯ã
åäžã®ãã©ã±ããã§å²ãŸããããã¹ãã¯ã·ã§ã« ãã¹ãã§ãããäºéãã©ã±ããéã®ããã¹ãã¯ã·ã§ã« ãã¹ãã§ãã
ããŒã«ã®ãã¹ãã ã€ãŸãã次ã®åŒã§ãã
{ shell íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€. }
{{ ããŒã« íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€. }}
ã¯æ¬¡ã®ããã«ç¿»èš³ãããŸãã
if shell íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€. >/dev/null 2>&1; 次㫠0 ãçµäºããŸãã ãã以å€ã®å Žå㯠1 ãçµäºããŸãã ãã£
ïŒããããŒã« íŽëŒì°ë êž°ë° AI/MLë° ê³ ì±ë¥ 컎íší ì íµí ëì§íž ížìì êž°ìŽ â Edward Hsu, Rescale CPO ë§ì ìì§ëìŽë§ ì€ì¬ êž°ì ìê² íŽëŒì°ëë R&Dëì§íž ì íì 첫 ëšê³ìŒ ë¿ì ëë€. íŽëŒì°ë ììì íì©íŽ ìì§ëìŽë§ íì ì ìœì íŽê²°íë ëšê³ë¥Œ ëìŽ, ì뮬ë ìŽì ìŽìì íµí©íê³ ìµì ííë©°, ê¶ê·¹ì ìŒë¡ë ëªšëž êž°ë°ì íì 곌 ìì¬ ê²°ì ì ì§ìíì¬ ì ì íì ê²°ì í ë ë°ìŽí° êž°ë° ìì§ëìŽë§ì ì ì©íê³ ì í©ëë€. Rescaleì ìŽë¬í íì ì ëêž° ìíŽ ì»Žíší ì¶ì² ìì§, íµí© ë°ìŽí° íšëžëŠ, ë©íë°ìŽí° êŽëŠ¬ ë±ì ê°ë°íê³ ììµëë€. ìŽë² ì늬륌 ë¹ë € ë¹ìŠëì€ ê²œìë ¥ ì ê³ ë¥Œ ìí ëì§íž ížì ë° ëì§íž ì€ë ë ì ëµ ê°ë° ë°©ë²ì ëí ìžì¬ìŽížë¥Œ ëëê³ ì í©ëë€. ) {åºå£ 0;} else {åºå£ 1;}
çµäºã¹ããŒã¿ã¹ã¯ããŒã«å€ãååŸããæšæºçãªæ¹æ³ã§äœ¿çšãããŸããã€ãŸãã0 㯠trueã
ãã以å€ã¯ãã¹ãŠåœã§ãã Perl ã§è¡šçŸã§ããã®ã¯åçŽãªæ¡ä»¶ã ãã§ããããšã«æ³šæããŠãã ããã
ããã€ãã®è€éãªã³ãŒããå éšã«ããŒãã§ããŸã ã¡ã¿æ§æ ãããŠå®è¡ãããŸããã
å èµããªããã»ããµã䜿çšããŠäžéšã®ãŠãããã埮調æŽã§ããŸãïŒã d_gethname.U ã®ããã«
è€éãªäŸ) ããã°ã©ã ãŸãã¯ãã¡ã€ã«ã§å®éã«äœ¿çšãããã·ã³ãã«ã«å¿ããŠ
ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ååšããŸãã ããšãã°ã Oldconfig.U 次ã®ãããªãã¹ãã䜿çšããŸãã
@if {ãã¹ã -d ../ãã³ã}
& æ§æ ãããå Žåã«ã®ã¿ããã³ãäŸåã®ã³ãŒããå«ãŸããŸãã ãã³ã ã®ãã£ã¬ã¯ããª
ããã±ãŒãžã®æäžäœãã£ã¬ã¯ããªã ãã¹ã㯠' å ããå®è¡ãããããšã«æ³šæããŠãã ããã.MT' ãã£ã¬ã¯ããªã
ãããã£ãŠããã¹ãã«ã¯ã../ããå¿ èŠã§ãã
ããªããã»ããµã¯ãã·ã³ãã«ãæ£ãããªãå Žåã«ç¡é§ãªã³ãŒãã®æ¿å ¥ãé¿ããããã«ã䜿çšã§ããŸãã
å®çŸ©ãããŠããŸãã è€æ°ã®ã·ã³ãã«ãå®çŸ©ããŠãããŠãããã¯ããã®æ¹æ³ã§ä¿è·ã§ããŸã (ãŠãããã¯
@if/@end ãã¢å ã®ã·ã³ãã«äŸåã³ãŒããåéããããšã§ãå šäœãšããŠããŒããããŸãã ã®ããã«
ã€ã³ã¹ã¿ã³ã¹ïŒ
@if I_TIME || || I_SYS_TIME || I_SYS_TIME_KERNEL
need_time_h='true'
@ãã以å€
need_time_h='false'
@çµãã
ãœãŒã¹ ã³ãŒããå¶åŸ¡ãã XNUMX ã€ã®ã·ã³ãã«ã®ããããã䜿çšããŠãããã©ããããã¹ãããŸãã
ã æé.h or sys/time.h ã€ã³ã¯ã«ãŒããè¿œå ããããã«å¿ããŠã·ã§ã« ã·ã³ãã«ãå®çŸ©ããŸãã ããã¯äžãã
æ§æ ãœãŒã¹ãå¿ èŠãšãããã®ã«ã€ããŠã®ãã£ãŒãããã¯ãšãä¿®æ£ã«ããæ¬ ç¹ã®åé¿
åçµããããŠãããã
ã?W:ãè¡ã䜿çšãããšãèå³æ·±ãçµã¿åãããååŸã§ããŸãã ããšãã°ã i_time.U åäœ
C ãœãŒã¹ã æ§é ã¿ã€ã ãŸãŒã³ ã¿ã€ãã ãããã£ãŠã
ãã®ç·ïŒ
?W::ã¿ã€ã ãŸãŒã³
ã·ã³ãã«ãå®çŸ©ãããšããå¯äœçšã®ããã«äœ¿çšãããŸãã ã¿ã€ã ãŸãŒã³ ããªããã»ããµçšã ã®
ãŠãããã³ãŒãã¯æ¬¡ã®ããã«èšããŸã:
@ifã¿ã€ã ãŸãŒã³
'-DS_TIMEZONE' ã® s_timezone ã®å Žå ''; ãã
@ãã以å€
s_timezone=''
@çµãã
... s_timezone ã䜿çšããã³ãŒã ...
@ifã¿ã€ã ãŸãŒã³
è¡ãã
@çµãã
ã® XNUMX ã€ã®é£ç¶ããå€ãè©Šãè¿œå ã®ã«ãŒãããããŸãã s_timezone å€æ°ã§ããã
å¿ èŠã«å¿ããŠã
å»æ¢ããã ã·ã³ãã«
å€ãã·ã³ãã«ãžã®ç§»è¡ã容æã«ããããã«ãå»æ¢ãããã·ã³ãã«ãä¿åãããŸãã ã¡ã¿æ§æ åäœã ãªãéã
ã -o ã¹ã€ãããæž¡ããã ã¡ã¿æ§æ ãããã¯ç¡èŠãããŸãã ãã ãã å»æ¢ããã ãã¡ã€ã«ã¯
ã©ã®ãã¡ã€ã«ããããã®å»æ¢ãããã·ã³ãã«ã䜿çšããŠããã®ãããããŠäœã䜿çšããŠããã®ããéç¥ããæ å ±ãçæãããŸãã
ã¯ã䜿çšãããæ°ããã·ã³ãã«ã§ãã
å»æ¢ãããã·ã³ãã«ã®æå¹æé㯠XNUMX åã®å®å šãªãªããžã§ã³ã§ããã€ãŸããã·ã³ãã«ã¯æ¬¡ã®æç¹ã§åé€ãããŸãã
次ã®åºæ¬ãªããžã§ã³ãçºè¡ãããŸã (ãã¡ããããããã®ã¢ããã°ã¬ãŒãã¯ã«ãŠã³ããããŸãã)ã ãããã£ãŠãããã¯
ã§ããã ãæ©ããœãŒã¹ã翻蚳ããæ°ããã·ã³ãã«ã®äœ¿çšãéå§ããããšãè³¢æã§ãã
æ§æ ãã³ã
å éšæ§æãââãžãã¯ãééã£ãéžæãããå ŽåããããŸãã ã®ããã«
ããšãã°ããããã©ãããã©ãŒã ã§ã¯ã vfork() ã·ã¹ãã ã³ãŒã«ã¯ååšããŸããå£ããŠããããã
䜿çšããªãã§ãã ããã ãã®ç¥èãåå èªäœã«çµã¿èŸŒãããšã¯ã§ããŸããã
ããã¯äžæçãªåé¡ã§ããããã³ããŒãæçµçã«ä¿®æ£ãããããŸãã¯
æ°ãã OS ã®ã¢ããã°ã¬ãŒãã«ãã£ãŠå°å ¥ãããŸããã
ãšã«ãããã·ã¹ãã åºæããããããã®å°ããªå°ããªåé¡ãã¹ãŠã«ã€ããŠã¯ã ã¡ã¿æ§æ
ãã³ã ãã¡ã€ã«ã®ãµããŒããæäŸããŸãã ããã䜿çšããã«ã¯ã ãã³ã ã®ãã£ã¬ã¯ããª
ããã±ãŒãžã®æäžäœãã£ã¬ã¯ããªãå®è¡æã«ãããä¿åãããŸãã ã¡ã¿æ§æã ããã¯ããŒãããŸã
ã®ãã³ãé¢é£éšå Oldconfig.U.
ãã以éãããã€ãã®ã·ã§ã«å€æ°ãäºåã«èšå®ã§ããŸãã æ§æ OS åºæã®çšé
.sh ãã¡ã€ã«ã ã³ãŒããå ¥ã£ãŠããŸã Oldconfig.U ã©ã®ãã³ã ãã¡ã€ã«ãå¿ èŠããæšæž¬ããããšããŸã
ã·ã¹ãã ã® OS åãã«ãŒãã«åããªãªãŒã¹ã«åºã¥ããŠæšæºåãèšç®ããŸãã
çªå·ãªã©...ãã®æ å ±ã¯æ¥éã«å€æŽãããå¯èœæ§ããããããææžåããŠããŸããã
ããã ã³ãŒãããªããŒã¹ãšã³ãžãã¢ãªã³ã°ããå¿ èŠããããŸã Oldconfig.U.
ããã±ãŒãžãåããŠãªãªãŒã¹ãããšãã¯ããã³ã ãã¡ã€ã« ãã£ã¬ã¯ããªã¯ç©ºã§ããå¿ èŠããããŸãã ãã
ããªãã®ããã±ãŒãžã®ãŠãŒã¶ãŒã¯ã次ã®åé¡ããããšäžæºãæ±ããŠããŸãã æ§æ ããã©ã«ãã§ã¯
ç¹å®ã®ã·ã¹ãã ã®å Žåãããããã©ãããã©ãŒã åºæã®åé¡ãªã®ãããããšãåé¡ãªã®ãã確èªããå¿ èŠããããŸãã
äžè¬çãªãã®ã åè ã®å Žåãæ°ãããã³ã ãã¡ã€ã«ãå°å ¥ããŸãã
åŸè ã«ã€ããŠã¯ã察å¿ããåäœãæ¹èšããå¿ èŠããããŸãã
ããšãã°ãSGI ã·ã¹ãã ã«ã¯å£ããæ©èœãããããšãç¥ãããŠããŸãã vfork() ã·ã¹ãã ã³ãŒã«ãçŸæç¹ã§ã¯
æžã蟌ã¿ã 察å¿ãããã³ã ãã¡ã€ã«åã¯æ¬¡ã®ãšããã§ãã sgi.shã ã ããããªããããªããã°ãªããªãã®ã¯äœæããããšã ãã§ã
a ãã³ã/sgi.sh 以äžãèšè¿°ãããã¡ã€ã«:
d_vfork="$define"
åžžã«åããããããŸã vãã©ãŒã¯ on ãã©ãŒã¯ ïŒåç §ããŠãã ãã d_vfork.UïŒã SGI ã·ã¹ãã äžã§å®è¡ããŠããå Žåã
åããŠã æ§æ ãããããšãæ€åºããŸã ãã³ã/sgi.sh ãã¡ã€ã«ããããŠç§ãã¡ãé²ãã§ããããš
IRIX ãã·ã³ (ã«ãŒãã«å㯠/irix ã§ããããšãå€ã) ã§ããããã sgi ãšããŠ
èãããããã³ãã ãŠãŒã¶ãŒããããåãå ¥ããå Žåã $d_vfork å€ã¯ã
$setvar é»è©±ã ãããïŒ å€ãäžæžãããããšããŠããããšãèŠåããããã«çºè¡ãããŸã
ã«ãã£ãŠèšç®ããã æ§æ.
æäŸããå¿ èŠã¯ãªãããšã«æ³šæããŠãã ãã ã ã«ãã£ãŠç¥ãããŠãããã³ã Oldconfig.Uã ãã³ããã¡ã€ã«ãããå Žåã
æ¬ èœããŠããå Žåãå¯èœãªéžæè¢ãšããŠææ¡ãããŸããã èšç®ããããã«ãã¥ãŒãªã¹ãã£ãã¯ãã¹ããå®è¡ãããŸãã
èãããããã³ãã®åè£ã¯äžå®å®ã§ãã æ°ããå€ãç°ãªããã¹ããããå Žåã¯ã
ããããç§ã«éã£ãŠãã ãã...
ãªãŒããŒã©ã€ã éžæè¢
äœæããå Žå config.over æäžäœãã£ã¬ã¯ããªã«ãããã¡ã€ã«ã æ§æ ã©ããå°ããŸã
ãããããŒãããŠããã©ã«ãå€ããªãŒããŒã©ã€ãããããšèããŠããŸãã ããã¯ã
config.sh ãã¡ã€ã«ã«ä¿åãããŠããå€ã«ããããé©çšããæ©äŒãåŸãããŸãã
ããã¯ããŠãŒã¶ãŒãããŒã«ã« ãã¡ã€ã«ã§ãããšããç¹ã§ããã³ãã®ã¢ãããŒããšã¯ç°ãªããŸãã
èªåã®äœ¿çšã®ããã«èªç±ã«äœæã§ããŸãã ãã®ãããªãã¡ã€ã«ãèªåã§æäŸããã¹ãã§ã¯ãããŸããã
ãŠãŒã¶ãŒã¯ãã®å¯èœæ§ã«ã€ããŠç¥ã£ãŠããŸãã
æ§æ ãªãã·ã§ã³
ã æ§æ ã¹ã¯ãªããã¯ãã³ãã³ãã©ã€ã³ã§ããã€ãã®ãªãã·ã§ã³ãæå®ããŠåŒã³åºãããšãã§ããŸãã
åäœãå°ãå€æŽããŸãã èš±å¯ããããªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
-d ãã¹ãŠã®åçã«ããã©ã«ãã䜿çšããŸãã
-e éå»ã®å¶äœã«çåãæããã«é²ãã§ãã ããã config.sh.
-f file æå®ããããã¡ã€ã«ãããã©ã«ãæ§æãšããŠäœ¿çšããŸãã ãã®ã¹ã€ããã䜿çšããªãå Žåã
æ§æã¯ããååŸãããŸã config.shãååšããå Žåã
-h ãã«ãã¡ãã»ãŒãžãå°å·ããŠçµäºããŸãã
-r å¯èœã§ããã°ãC ã·ã³ãã«ã®å€ãåå©çšããŸãã ããã«ãããã³ã¹ãã®ãããäœæ¥ãçç¥ãããŸã nm ã·ã³ãã«
æœåºã åããŠäœ¿çšããå Žå (以åã®æ§æãã¡ã€ã«ããªãå Žå)ã
æ§æ ã«ã€ããŠç¥ãããã«ãå°ããªããã°ã©ã ãã³ã³ãã€ã«ããŠãªã³ã¯ããããšããŸãã
ã·ã³ãã«ã®æç¡ã
-s ãµã€ã¬ã³ãã¢ãŒãã ãã¡ã€ã«èšè¿°å #4 ã«åºåãããæååã®ã¿ãã
ç»é¢ã«è¡šç€ºãããŸã (ããã¯éèŠãªã¡ãã»ãŒãžã§ã)ã å®å šã«ãªãã«ããããšã¯ã§ããŸãã
ä»»æã®åºåã§ãããããã䜿çšããããšãã§ããŸãæ§æ -ders > / dev / null 2>ïŒ1' ãã£ã±ãã«ãªã
ãããã¯åºåãªãã§å®è¡ããããŠãŒã¶ãŒã®æäœã¯å¿ èŠãããŸããã
-D èšå·=å€
äºåå®çŸ© ã·ã³ãã« æå®ããããã®ãè² æ ãã å€ã 'ã䜿çšããããšãå¯èœã§ã-D
ã·ã³ãã«' ããã¯ããã©ã«ãå€ã® 'define' ã䜿çšããŸãã
-E æ§æã«é¢ãã質åãäœæããããæåŸã§åæ¢ããŸãã
config.shã ããã§ã¯äœãå®è¡ãããŸãããmake 決ãŸã' ãŸã㯠.SH ãã¡ã€ã«ã®æœåºã
-K ç¥èè±å¯ãªãŠãŒã¶ãŒã ãã®ãªãã·ã§ã³ã䜿çšãããšãèªåãäœãããŠããã®ãããããã
ãããã£ãŠã config.sh ãã¡ã€ã«ã¯åžžã«ãæå³ããããã®ã§ãããã®ããã«åŠçãããŸãã
ããšãããããšã€ãªã¢ã³ã®ã·ã¹ãã ã§çæããããã®ã§ãã£ãŠããåå©çšãããŸãã ãŸã
次ã®å Žåã«äžæ¢ãé²æ¢ããŸã æ§æ 䜿çšã§ããªã C ã³ã³ãã€ã©ãŸãã¯ééã£ãã»ãããæ€åºããŸã
C ãã©ã°ã®ã ãã®ãªãã·ã§ã³ã«ãã£ãŠããã«ã·ã§ãŒãã«ãããæå¹ã«ãªãå ŽåããããŸãã
æªæ¥ã ãã®ãªãã·ã§ã³ã«ã€ããŠã¯ã次ã®ããã¥ã¡ã³ãã«èšèŒãããŠããŸãã æ§æ 䜿çšç¶æ³ã¡ãã»ãŒãžãæãåºããããã
ãã®ååšã«ã€ããŠã¯äžæã§ãããäžãããã説æã¯ååã«äžå¯è§£ã§ããããšãæãŸããŸãã
:-)
-O çµç±ã§æå®ãããå€ãèš±å¯ããŸã -D or -U ããŒããããèšå®ãäžæžãããã«ã¯
èšå®ãã¡ã€ã«ã ããã¯ããã©ã«ãã®åäœã§ã¯ãããŸããã
çŸåšå€æŽããŠããå€æ°ãã掟çããå€æ°ã«ã¯äŒæãããŸããã
åœç¶ããªã㧠-Oãèšå®ã¯èšå®ãã¡ã€ã«ããªãå Žåã«ã®ã¿è¡ãããŸãã
ããŒããããŠããŸãããå°é¢æ°å€æ°ã¯ãŸã èšç®ãããŠããªãããå®å šã§ã...
-S ãã¹ãŠã® .SH ãã¡ã€ã«ã«å¯ŸããŠå€æ°çœ®æãå®è¡ããŸãã ãšçµã¿åãããããšãã§ããŸãã
-f ã¹ã€ããã䜿çšããŠãä»»æã®èšå®ãåæ ãããŸãã
-U èšå·=
ããªã»ãã ã·ã³ã㫠空ã®å€ãä¿æããŸãã 'ã䜿çšããããšãå¯èœã§ã-U ã·ã³ãã«'
ã©ããèšå®ããŸãã ã·ã³ãã« ãundefãã«ããŸãã
-V ã®ããŒãžã§ã³çªå·ãåºåããŸãã ã¡ã¿æ§æ ãããçæããã®ã¯ æ§æ ã¹ã¯ãªãã
çµäºããŸãã
Running: ç°å¢
éå§ãããšã æ§æ ããŒã«ã«ãäœæããŸã UU ãã£ã¬ã¯ããªã«ãããããããå®è¡ãããŸãã ãã£ã¬ã¯ããª
æ§æãçµäºãããšåé€ãããŸãããããã¯ã次ã®å Žæããã¹ã¯ãªãããå®è¡ããå¿ èŠãããããšãæå³ããŸãã
ã€ãŸããèªã¿åãå°çšãã¡ã€ã« ã·ã¹ãã ããã¯æžã蟌ã¿ã§ããŸããã
ããªãã¯èµ°ãã æ§æ ãã ãããªã¢ãŒãã§ã¯æ¬¡ã®ããã«ãªããŸãã
../ããã±ãŒãž/æ§æ
ããŒã«ã«ã«ååšããªããœãŒã¹ãæ§æããã«ã¯ã çæããããã¹ãŠã®ãã¡ã€ã«ãé 眮ãããŸã
ã¹ã¯ãªãããå®è¡ããŠãããã£ã¬ã¯ããªã ãã®éæ³ã¯ src.U ã®ãããã§å®è¡ãããŸãã
ãèšå®ããŠãããŠããã $ src & $rsrc ããã±ãŒãžãœãŒã¹ãæãå€æ°ã ãã
ãã¹ãå®å šãã¹ãçžå¯Ÿãã¹ãã«å¿ããŠã æ§æ ãã«ãŸãã¯
çžå¯Ÿãã¹ã
å ãã UU ãµããã£ã¬ã¯ããªã䜿çšã§ããŸã $rsrc ãœãŒã¹ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ãããã(åäœ
ãœãŒã¹ ãã¡ã€ã«ã®ãªã³ã¯ ãã³ããåç §ããå Žåã¯ãåžžã«ãã®ã¡ã«ããºã ã䜿çšãã
ãã¡ã€ã«ã¯èŠªãã£ã¬ã¯ããªã«ååšããŸã)ã ãã¹ãŠã® Makefile 㯠$src å€æ°ã䜿çšããå¿ èŠããããŸã
ãã«ã ãã£ã¬ã¯ããªã®å é ããã®ãœãŒã¹ãžã®ãã€ã³ã¿ãšã㊠(ããã§ã æ§æ ãå®è¡ãããŸãïŒã
çŽæ¥ãŸã㯠VPATH èšå®çµç±ã§ã
å®è¡æ æ§æ ãªã¢ãŒãã§ã¯ã.SH ãã¡ã€ã«ã¯ãã«ã ãã£ã¬ã¯ããªã§ã¯ãªãããã«ã ãã£ã¬ã¯ããªã«æœåºãããŸãã
ãœãŒã¹ããªãŒå ã ãã ããããã«ã¯ãã皮㮠make ã³ã³ãã€ã«ã§ããããã«ãµããŒãããŸã
ãœãŒã¹ã¯å¥ã®å Žæã«ãããŸããããã«ããã£ã¬ã¯ããªã«ãããã®ã
䜿ãæ¹ åå®çŸ©
ã掻çšããããšã§ã -M ã¹ã€ãããåãæ¿ãããšãéæ³ã®åãããã³ã°ãå éšã§è¡ãããå ŽåããããŸãã confmagic.h
ãã¡ã€ã«ã ãã®ãã¡ã€ã«ã¯åŸã«å«ããå¿ èŠããããŸã config.hãã¡ããã§ãããçµå±ã®ãšããã
ãã®ä»ã®å¿ èŠãªã€ã³ã¯ã«ãŒã ãã¡ã€ã«ã ã€ãŸã:
#include "config.h"
...
... ä»ã® ã€ã³ã¯ã«ãŒãžã§ã³ ...
...
#include "confmagic.h"
äžè¬çã«ã confmagic.h åããããè©Šã¿ãŸã bcopy() on memcpy() ãããã®å Žå bcopy() is
ããŒã«ã«ã§å©çšå¯èœããŸãã¯å€æ vãã©ãŒã¯ ã« ãã©ãŒã¯ å¿ èŠã«å¿ããŠã
ã®ããšãæ°ã«ãã HAS_VFORK ã·ã³ãã«ã
ãã®æ§æããžãã¯ã¯çšèªéãã¡ã€ã«ã«ææžåãããŠããŸãã
ãŠããã ãã³ãã¬ãŒã
ãŠããããã³ãã¬ãŒãã®ã»ããããããŸãã ã¡ã¿æ§æ ãœãŒã¹ãã£ã¬ã¯ããªã¯ã次ã®ããšãç®çãšããŠããŸãã
ããŸããŸãªçš®é¡ã®æ°ããåäœãè¿ éã«çæããããã« (ãŸã äœæãããŠããªã) ããã°ã©ã ã§äœ¿çšãããŸãã
ç¶æ³ã ãã®æªå®æã®ãããžã§ã¯ãã«é¢ããããã¥ã¡ã³ãã¯ãããŸããããèšåããŠããããšæããŸãã
èªåã§äœæããŠè²¢ç®ãããå Žåã¯ãããã¥ã¢ã«ããŒãžãåç §ããŠãã ãã...
äœè
ã©ãªãŒã»ãŠã©ãŒã«[ã¡ãŒã«ä¿è·]> ããŒãžã§ã³ 2.0 ã®å Žåã
ããŒã©ã³ã»ã¹ãã³[ã¡ãŒã«ä¿è·]> éèŠãªåäœã®æ¡åŒµçšã
ã©ãã¡ãšã«ã»ãã³ãã¬ãã£[ã¡ãŒã«ä¿è·]>.
ä»ã«ãå€ãã®è²¢ç®è ã ã¡ã¿æ§æ åäœã ãªã¹ãã«ã€ããŠã¯ãã¯ã¬ãžãã ãã¡ã€ã«ãåç §ããŠãã ããã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ã¡ã¿ã³ã³ãã£ã°ã䜿çšãã