Article View: ca.test
Article #9281test-ingnoreïŒïŒïŒïœ
From: test3
Date: Fri, 27 Oct 1995 00:00
Date: Fri, 27 Oct 1995 00:00
303 lines
31845 bytes
31845 bytes
NMAKE.WRI ãã¡ã€ã«
Microsoft(R) Visual C++, ããŒãžã§ã³ 1.5 ã® NMAKE ãŠãŒãã£ãªãã£ã®è§£èª¬
(C) Copyright Microsoft Corporation, 1995
NMAKE ã«ãããããžã§ã¯ãã®ç®¡ç
ããã§ã¯ãMicrosoft Program Maintenance ãŠãŒãã£ãªã㣠(NMAKE) ã«ã€ããŠèª¬æããŸããNMAKE ã¯ããããžã§ã¯ã管çã«ãããæéãççž®ãç°¡çŽ åããé«åºŠãªã³ãã³ã ããã»ããµã§ãããããžã§ã¯ããæ§æããŠãããã¡ã€ã«ã®äŸåé¢ä¿ãæå®ããŠããããšã«ãããååã®ãã«ããã倿Žã®ãã£ããã¡ã€ã«ã ããåã³ã³ãã€ã«ããŠ
ããããžã§ã¯ããèªåçã«ãã«ãããŸãã
ãããžã§ã¯ãã®ãã«ãã« Visual Workbench ã䜿ã£ãŠãããšããVisual Workbench ã¯èªåçã«ã¡ã€ã¯ãã¡ã€ã«ãäœããVisual Workbench èªèº«ããããžã§ã¯ãã管çããŸããVisual Workbench ã䜿ããã«ããã°ã©ã ããã«ããããšããããã§ã«ããã¡ã€ã¯ãã¡ã€ã«ã®å
容ãçè§£ãããä¿®æ£ãããšãããŸãã¯å€éšãããžã§ã¯ãã䜿ãïœ
ïŸãã«ã¯ããã®ãã¡ã€ã«ãåç
§ããŠãã ããã
ãã®ããŒãžã§ã³ã® NMAKE ã¯ã32 ããã MS-DOS 察å¿ã®æ¡åŒµããã°ã©ã ã§ããããããããã¯ã ã¢ãŒãã§åäœãã 80386 ãŸãã¯ãã以äžã® CPU ãå¿
èŠã§ãããŸããDOSXNT.EXE ã NMAKE ãšåããã£ã¬ã¯ããªãããã¹ã®éã£ããã£ã¬ã¯ããªã«ååšããªããã°ãªããŸãããMicrosoft Windows äžã§ NMAKE ã䜿ããšãã¯ãSYSTEM.INI ïœ
ïŸ [386Enh] ã»ã¯ã·ã§ã³ã§ DOSXNT.386 ã DEVICE æã§æå®ãããŠããªããã°ãããŸããã
æ°ããç¹åŸŽ
ãã®ããŒãžã§ã³ã® NMAKE ã«ã¯ã次ã®ãããªæ°ããç¹åŸŽããããŸãã
â æ°èŠãªãã·ã§ã³ : /B, /Kã
â .SUFFIXES ã®ãªã¹ãã« .CPP ãš .CXX ã远å ãããŸããã
â C++ ããã°ã©ã çšã®çµèŸŒã¿ãã¯ã : CPP, CXX, CPPFLAGS, CXXFLAGS
â C++ ããã°ã©ã çšã®ãããããå®çŸ©ãããŠããæšè«èŠå
â !MESSAGE ãã£ã¬ã¯ãã£ã
â 2 ã€ã®ããªããã»ããµæŒç®å : DEFINED, EXIST
â !ELSE ãã£ã¬ã¯ãã£ãã§äœ¿ããã 3 ã€ã®ããŒã¯ãŒã : IF, IFDEF, IFNDEF
â æ°èŠãã£ã¬ã¯ãã£ã : !ELSEIF, !ELSEIFDEF, !ELSEIFNDEF)
NMAKE ã®æŠèŠ
NMAKE ã¯ããã¡ã€ã«ã®æçµå€æŽæ¥æã瀺ãâã¿ã€ã ã¹ã¿ã³ãâãããšã«åŠçãè¡ããŸããå€ãã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã§ã¯ã2 ç§ééã§ã¿ã€ã ã¹ã¿ã³ããèšå®ããŠããŸããNMAKE ã¯ãâã¿ãŒã²ããâãã¡ã€ã«ãšâäŸåâãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããæ¯èŒããŸããã¿ãŒã²ãã ãã¡ã€ã«ãšã¯ãéåžžãå®è¡å¯èœãã¡ã€ã«ãªã©ããïœ
黷ᅵᅵᅵïŸïœ€ïœ¹ïœ€ï¿œïœ¥ïŸïœ¥ïœ¡ïœ¥ïœ€ïœ¥ï¿œïœ€ï¿œïœ»ïŸïœ€ïœ·ïœ€ïŸïœ€ïœ¹ïœ€ïœ¬ïœ¡ïœ¢ïœŒïŸïœ¹ïŸïœ€ïœµïœ€ïœ»ïœ€ïœ¿ïœ€ïœ€ïœ¥ïœ³ïœ¥ïŸïœ¥ï¿œïœ¥ïŸïœ€ï¿œïœŒïœšïœ€ïœ¹ïœ¥ï¿œïœ¥ïŸïœ¥ï¿œïœ€ï¿œïœ»ïŸïœ€ïœ¹ïœ€ïœ³ïœ€ïŸïœ€ï¿œïœ€ïœ¢ïœ€ï¿œïœ€ïŸïœ€ïœ¹ïœ¡ïœ£ïœ€ïŸïœ€ïœ¿ïœ°ïŸïŸïœžïœ¥ïŸïœ¥ïœ¡ïœ¥ïœ€ïœ¥ï¿œïœ€ïŸïœ€ïŸïœ¡ïœ¢ïœ¥ïœœïœ¡ïœŒïœ¥ïœ¹ ãã¡ã€ã«ãªã©ã¿ãŒã²ãããäœãããšãšãªããã¡ã€ã«ã§ããã¿ãŒã²ãã ãã¡ã€ã«ãããããšã«äŸåãã¡ã€ã«ã倿Žããããšãããã¿ãŒã²ãã ãã¡ã€ã«ãååšããªããšãã¯ããã®ã¿ãŒã²ããã¯æŽæ°ã
å¿
èŠã«ãªããŸãã(ã¿ã€ã ã¹ã¿ã³ãã 2 ç§ééã§å²ãåœãŠãããããšã«ãã£ãŠçºçããããã«ããžã®åœ±é¿ã«ã€ããŠã¯ã /B ãªãã·ã§ã³ã®é
ãåç
§ããŠãã ããã)
泚æ : NMAKE ãæ£ããåäœãããããã以åã®èšå®ãšççŸããªãããã«ã·ã¹ãã ã®æ¥ä»ãšæå»ãèšå®ããŠãã ãããã·ã¹ãã ãèµ·åããããã³ã«æ¥ä»ãšæéãèšå®ãããšãã¯ãæ£ç¢ºã«èšå®ããããæ³šæããŠãã ãããã·ã¹ãã ãèšå®ãèšæ¶ããŠãããšãã¯ãã¡ã¢ãª ãã㯠ã¢ããçšé»æ± ãåäœããŠããããšã確èªããŠãã ããã
NMAKE ã¯ãã¡ã€ã¯ãã¡ã€ã«ã§å®çŸ©ãããåœä»€ã«ãããã£ãŠåŠçãè¡ããŸããNMAKE ãå®è¡ãããšãâã¡ã€ã¯ãã¡ã€ã«âãèªã¿èŸŒãŸããŸããã¡ã€ã¯ãã¡ã€ã« (èšè¿°ãã¡ã€ã«ãšãåŒã°ããŸã) ã¯ãããŸããŸãªåœä»€ã§æ§æãããããã¹ã ãã¡ã€ã«ã§ããNMAKE ã¯ãã®åœä»€ã䜿ã£ãŠããããžã§ã¯ãããã«ãããŸããåœä»€ã¯ãèšè¿°ãããã¯ãã®
}ã¯ãããã£ã¬ã¯ãã£ããæšè«èŠåã§æ§æãããŸããéåžžãåèšè¿°ãããã¯ã«ã¯ãã¿ãŒã²ãããšãã®äŸåãã¡ã€ã«ãã¿ãŒã²ããããã«ãããããã®ã³ãã³ããèšè¿°ãããŸããNMAKE ã¯ãã¿ãŒã²ããã®ã¿ã€ã ã¹ã¿ã³ããšãäŸåãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããæ¯èŒããŸããã¿ãŒã²ããã®æçµå€æŽæ¥æä»¥éã«äŸåãã¡ã€ã«ã倿ŽãããŠããïœ
ïŸããNMAKE ã¯ãèšè¿°ãããã¯ã«ç€ºãããŠããã³ãã³ããå®è¡ããã¿ãŒã²ãããæŽæ°ããŸãã
ã¡ã€ã¯ãã¡ã€ã«ããªããšãã§ã NMAKE ãå®è¡ããããšãã§ããŸããNMAKE ã¯ãã¡ã€ã¯ãã¡ã€ã«ãååšããªããã°ãã³ãã³ã ã©ã€ã³ãŸã㯠TOOLS.INI ããåãåã£ãåœä»€ãšãšãã«ãçµèŸŒã¿ãã¯ããæšè«èŠåã«ãããã£ãŠã¿ãŒã²ããããã«ãããããšããŸãã
NMAKE ã®äž»ãªç®çã¯ãæ©ãç°¡åã«ããã°ã©ã ããã«ãããããšã«ãããŸãããããããã ãã§ãªããNMAKE ã¯ã»ãã®ããã°ã©ã ãèµ·åãããããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã³ãã³ããå®è¡ã§ããã®ã§ãã³ã³ãã€ã«ããªã³ã¯ã«éãããã»ãã®ç®çã«ã䜿ãããšãã§ããŸããNMAKE ã¯ãããã¯ã¢ããã®äœæããã¡ã€ã«ã®ç§»åãªã©ã«ããŸïœ
éåžžã¯ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ããã³ããã§è¡ã£ãŠãããããªãããžã§ã¯ã管çãªã©ã«ã䜿ãããšãã§ããŸãã
ãã®ãã¡ã€ã«ã§ã¯ãã¿ãŒã²ãããæ§ç¯ããããšãâãã«ãâãšåŒãã§ããŸãããããã¯ã¿ãŒã²ãããšäŸåãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããæ¯èŒããã¿ãŒã²ããã®æçµå€æŽæ¥æãå€ããšãã«ããã®ã¿ãŒã²ãããæ§ç¯ããããã®ã³ãã³ããå®è¡ããããšãæããŸããâãã«ãâãšããçšèªã¯ãã¿ãŒã²ãããå®éã«çæããããã©ããã«ããïœ
墲蜀ïŸïœ°ïŸïŸïœ£ïœ€ïŸïœ»ïŸïœ€ï¿œïœ€ï¿œïœ€ïŸïœ€ïœ€ïœ€ïŸïœ€ïœ¹ïœ¡ïœ£
NMAKE ã®å®è¡
NMAKE ãèµ·åãããšãã¯ã次ã®ãããªæ§æã䜿ããŸãã
NMAKE ãoptionsã ãmacrosã ãtargetsã
options ãã£ãŒã«ãã«ã¯ãNMAKE ã®ãªãã·ã§ã³ãæå®ããŸããNMAKE ã®ãªãã·ã§ã³ã«ã€ããŠã¯ããã³ãã³ãã©ã€ã³ ãªãã·ã§ã³ããåç
§ããŠãã ããã
macros ãã£ãŒã«ãã«ã¯ãã¡ã€ã¯ãã¡ã€ã«ã®ããã¹ãã倿Žããããã®ãã¯ãå®çŸ©ãæå®ããŸãããã¯ãã®æ§æã«ã€ããŠã¯ãããŠãŒã¶ãŒå®çŸ©ãã¯ãããåç
§ããŠãã ããã
targets ãã£ãŒã«ãã«ã¯ããã«ãããã¿ãŒã²ãããæå®ããŸããã³ãã³ã ã©ã€ã³ã§æå®ãããã¿ãŒã²ããã ãããã«ããããŸããã¿ãŒã²ãããæå®ããªããã°ãã¡ã€ã¯ãã¡ã€ã«ã®äžã®æåã®äŸåé¢ä¿è¡ã§ 1 çªç®ã«æå®ãããŠããã¿ãŒã²ããã ãããã«ããããŸã (ç䌌ã¿ãŒã²ããã䜿ã£ãŠã1 ã€ä»¥äžã®ã¿ãŒã²ããããã«ãã§ããŸã
ã詳ããã¯ããç䌌ã¿ãŒã²ãããã®é
ãåç
§ããŠãã ããã)
NMAKE ã«ãããã«ãåŠçã¯ã次ã«ç€ºãåªå
é äœã«ãããã£ãŠé²ããããŸãã
1. /F ãªãã·ã§ã³ãæå®ãããšããNMAKE ã¯æå®ãããã¡ã€ã¯ãã¡ã€ã«ãã«ã¬ã³ã ãã£ã¬ã¯ããªãŸãã¯æå®ããããã£ã¬ã¯ããªã§æ¢ããŸãããã¡ã€ã«ãèŠã€ãããªããšãNMAKE ã¯åŠçãäžæ¢ããŠãšã©ãŒ ã¡ãã»ãŒãžã衚瀺ããŸãã
2. /F ãªãã·ã§ã³ãæå®ããªããšãã¯ãNMAKE ã¯ãã¡ã€ã«åãâMAKEFILEâãšããã¡ã€ã¯ãã¡ã€ã«ãã«ã¬ã³ã ãã£ã¬ã¯ããªã§æ¢ããŸãã
3. MAKEFILE ãèŠã€ãããªããšãã«ã¯ãNMAKE ã¯ã³ãã³ã ã©ã€ã³ã§æå®ãããã¿ãŒã²ãã ãã¡ã€ã«ã調ã¹ãæšè«èŠå (TOOLS.INI ã§å®çŸ©ãããŠãããã®ããŸãã¯ãããããå®çŸ©ãããŠããæšè«èŠå) ã䜿ã£ãŠãã«ãã詊ã¿ãŸãããã®ããããã®ã¿ãŒã²ããã«å¯ŸããŠé©çšã§ããæšè«èŠåãããã°ãã¡ã€ã¯ãã¡ã€ã«ãªãã§ NMAKE ã䜿ïœ
ããšãã§ããŸãã
4. ã¡ã€ã¯ãã¡ã€ã«ããªããã³ãã³ã ã©ã€ã³ã«ã¿ãŒã²ãã ãã¡ã€ã«ã®æå®ããããŠããªããã°ãNMAKE ã¯åŠçãäžæããŠããšã©ãŒ ã¡ãã»ãŒãžã衚瀺ããŸãã
äŸ
次ã«ç€ºãã³ãã³ãã§ã¯ããªãã·ã§ã³ (/S)ããã¯ãå®çŸ© ("program=sample") ãæå®ããŠã2 ã€ã®ã¿ãŒã²ãã (sort.exe ãš search.exe) ããã«ãããããã« NMAKE ã«æç€ºããŠããŸãããã®äŸã§ã¯ãã¡ã€ã¯ãã¡ã€ã«ãæå®ããŠããªãã®ã§ãNMAKE 㯠MAKEFILE ãæ¢ããããŸãã¯æšè«èŠåã䜿ã£ãŠãã«ãããŸãã
NMAKE /S "program=sample" sort.exe search.exe
ã³ãã³ãã©ã€ã³ ãªãã·ã§ã³
NMAKE ã®åŠçãå¶åŸ¡ããããã«ãããã€ãã®ãªãã·ã§ã³ããµããŒããããŠããŸãããªãã·ã§ã³ã¯å€§æåã§ãå°æåã§ãæå®ã§ããŸãããŸããæå®ãããšãã«ã¯ããªãã·ã§ã³åã®åã«ã¹ã©ãã·ã¥ (/) ãŸãã¯ãã€ãã¹èšå· (-) ã®ã©ã¡ãããä»ããŠãã ããã
ã¡ã€ã¯ãã¡ã€ã«ã TOOLS.INI ãã¡ã€ã«ã®äžã§æå®ã§ãããªãã·ã§ã³ããããŸããTOOLS.INI ã«ã€ããŠè©³ããã¯ããã®ãã¡ã€ã«ã®ãTOOLS.INI ãã¡ã€ã«ããåç
§ããŠãã ããã!CMDSWITCHES ãã£ã¬ã¯ãã£ãã䜿ã£ããªãã·ã§ã³ã®æå®ã«ã€ããŠã¯ããããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããã
/A
ã¿ãŒã²ãã ãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããåäŸåãã¡ã€ã«ã«å¯ŸããŠæ°ããå Žåã§ããè©äŸ¡ããããã¹ãŠã®ã¿ãŒã²ããããã«ãããŸãããã®ãªãã·ã§ã³ã¯ãé¢ä¿ã®ãªãã¿ãŒã²ããã¯ãã«ãããŸããã
/B
ã¿ã€ã ã¹ã¿ã³ããåãã§ããäŸåé¢ä¿è¡ãå®è¡ããŸããå€ãã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã§ã¯ããã¡ã€ã«ã«ã¿ã€ã ã¹ã¿ã³ããä»ãããšãã«ã2 ç§ã®ééã眮ããŠè¡ããŸããã³ãã³ãã®å®è¡ãéããšãNMAKE ã¯å®éã«ã¯å€ããã¡ã€ã«ã§ããæŽæ°ã®å¿
èŠããªããšå€æããããšããããŸãããã®ãªãã·ã§ã³ãæå®ãããšãå¿
èŠå€ã®ãã«
ããè¡ãããå¯èœæ§ããããŸãããé«éãªãã·ã³äžã§ NMAKE ã䜿ã£ãŠãããšãã«ã¯æå®ããããšãããããããŸãã
/C
èŽåœçã§ãªããšã©ãŒãèŠåã¡ãã»ãŒãžãã¿ã€ã ã¹ã¿ã³ããNMAKE èµ·åæã®éå§ã¡ãã»ãŒãžã衚瀺ããªãããã«ããŸãã/C ãšåæã« /K ãæå®ãããŠãããšãã¯ã/K ã«ãã£ãŠçºè¡ãããèŠåã¡ãã»ãŒãžã衚瀺ããŸããã
/D
NMAKE å®è¡äžã«æ
å ±ã®è¡šç€ºãè¡ããŸããæ
å ±ã¯ãNMAKE ã®ããã©ã«ãåºåã«ééã眮ããŠè¡šç€ºãããŸããNMAKE ã¯ããã«ãåŠçäžã«è©äŸ¡ãããåã¿ãŒã²ãããšäŸåãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããšãã¿ãŒã²ãããååšããªããšãã¯ã¡ãã»ãŒãžã衚瀺ããŸããäŸåãã¡ã€ã«ã¯ããã®ã¿ãŒã²ãã ãã¡ã€ã«ã®åã«ã€ã³ãã³ããããŠè¡šç€ºããïœ
ïŸãã/D ãš /P ãªãã·ã§ã³ã¯ãã¡ã€ã¯ãã¡ã€ã«ã®ãããã°ã«äŸ¿å©ã§ãã
ã¡ã€ã¯ãã¡ã€ã«äžã§éšåçã« /D ãèšå®ãŸãã¯è§£é€ããã«ã¯ã!CMDSWITCHES ãã£ã¬ã¯ãã£ãã䜿ããŸãã詳ããã¯ããããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããã
/E
ã¡ã€ã¯ãã¡ã€ã«ã®ãã¯ãå®çŸ©ãããç°å¢å€æ°ãåªå
ãããŸããããã¯ãããåç
§ããŠãã ããã
/F filename
filename ã«ã¡ã€ã¯ãã¡ã€ã«åãæå®ããŸããfilename ã®åã«ã¯ãã¹ããŒã¹ãŸãã¯ã¿ããå
¥ããããšãã§ããŸãããã¡ã€ã«åã®ãããã«ãã€ãã³ (-) ãæå®ãããšãNMAKE ã¯æšæºå
¥åããã€ã¹ããã®å
¥åãã¡ã€ã¯ãã¡ã€ã«ã®å
¥åãšããŠèªã¿èŸŒã¿ãŸã (å
¥åãçµäºããã«ã¯ã[F6] ããŒãŸã㯠[Ctrl]+[Z] ããŒã䜿ããŸã)ãNMAKE ã¯
è€æ°ã®ã¡ã€ã¯ãã¡ã€ã«ãèªã¿èŸŒãããšãã§ããŸããè€æ°æå®ãããšãã«ã¯ãåã¡ã€ã¯ãã¡ã€ã«ããšã« /F ãªãã·ã§ã³ãæå®ããŸãã
/F ãªãã·ã§ã³ãçç¥ãããšãNMAKE ã¯ã«ã¬ã³ã ãã£ã¬ã¯ããªã§ MAKEFILE (æ¡åŒµåãªã) ãšããååã®ãã¡ã€ã«ãæ¢ãããããã¡ã€ã¯ãã¡ã€ã«ãšããŠäœ¿ããŸããMAKEFILE ãèŠã€ãããªããã°ãNMAKE ã¯æšè«èŠåã䜿ã£ãŠã³ãã³ã ã©ã€ã³ã§æå®ãããã¿ãŒã²ãã ãã¡ã€ã«ããã«ãããŸãã
/HELP
NMAKE ã®ã³ãã³ã ã©ã€ã³æ§æã®èŠçŽã衚瀺ããŸãã
/I
ã¡ã€ã¯ãã¡ã€ã«ã«æžãããŠãããã¹ãŠã®ã³ãã³ãããã®çµäºã³ãŒããç¡èŠããŸãããšã©ãŒãçºçããŠããNMAKE ã¯ã¡ã€ã¯ãã¡ã€ã«ã®çµãããŸã§åŠçãè¡ããŸããã¡ã€ã¯ãã¡ã€ã«ã®äžã§éšåçã«çµäºã³ãŒããç¡èŠããã«ã¯ããã€ãã³ (-) ã³ãã³ãä¿®æ£åãŸã㯠.IGNORE ãã£ã¬ã¯ãã£ãã䜿ããŸããããããããã®ãã¡ã€ã«ã®ãã³ãã®
å¡hä¿®æ£åããšãããã ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ãããã¡ã€ã¯ãã¡ã€ã«äžã§éšåçã«ã/I ãèšå®ãŸãã¯è§£é€ããã«ã¯ã!CMDSWITCHES ãã£ã¬ã¯ãã£ãã䜿ããŸãããã®ãã¡ã€ã«ã®ã ããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããããã«ãã«é¢ä¿ãªããšããã§ã®ãšã©ãŒãç¡èŠããã«ã¯ã/K ãªãã·ã§ã³ã䜿ããŸããäž¡æ¹è©Š
wå®ããããšãã«ã¯ã/I ã /K ã«åªå
ããŸãã
/K
ãšã©ãŒã§ã³ãã³ãã忢ãããšãã«ãäŸåããªãŒã«é¢ä¿ãªãéšåã«å¯Ÿãããã«ããç¶ç¶ããŠè¡ããŸããããã©ã«ãã§ã¯ãNMAKE ã¯ã³ãã³ããã 0 以å€ã®çµäºã³ãŒããè¿ããããšå®è¡ãäžæããŸãããã®ãªãã·ã§ã³ãæå®ãããŠãããšãã³ãã³ããã 0 以å€ã®çµäºã³ãŒããè¿ããããšãã«ãNMAKE ã¯ãã®ã³ãã³ããå«ããããã¯ã®è©Š
ïŸè¡ãäžæããŸããNMAKE ã¯ãã®ã³ãã³ããå¿
èŠãšããŠããã¿ãŒã²ããã®ãã«ããããã«ãèŠåã¡ãã»ãŒãžã衚瀺ããŠã»ãã®ã¿ãŒã²ããããã«ãããŸãã/K ãæå®ãããŠãããšãã«ããã«ããå®äºããªããšãNMAKE ã¯çµäºã³ãŒã 1 ãè¿ããŸãããã®ç¹ã¯ã/I ãªãã·ã§ã³ãšç°ãªããŸãã/I ãªãã·ã§ã³ã¯ãã¹ãŠã®çµäºã³ãŒããç¡èŠãïœ
ïŸããäž¡æ¹æå®ããããšãã«ã¯ã/I ã /K ã«åªå
ããŸãã/C ãªãã·ã§ã³ãæå®ãããšã/K ã§çºè¡ãããèŠåã¡ãã»ãŒãžã®è¡šç€ºãçŠæ¢ããŸãã
/N
ã¡ã€ã¯ãã¡ã€ã«ã®ãã«ãæã«å®è¡ãããã³ãã³ãã衚瀺ããã ãã§ãå®è¡ã¯ããŸãããããªããã»ã¹ ã³ãã³ãã¯å®è¡ãããŸããã¡ã€ã¯ãã¡ã€ã«ã®ãããã°ãæŽæ°ãã¹ãå€ãã¿ãŒã²ãã ãã¡ã€ã«ããã§ãã¯ããã®ã«äŸ¿å©ãªãªãã·ã§ã³ã§ããã¡ã€ã¯ãã¡ã€ã«äžã§éšåçã« /N ãèšå®ãŸãã¯è§£é€ãããšãã«ã¯ã!CMDSWITCHES ãã£ã¬ã¯ã
ã£ãã䜿ããŸããã18.9.2 ããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããã
/NOLOGO
NMAKE èµ·åæã®éå§ã¡ãã»ãŒãžã衚瀺ããªãããã«ããŸãã
/P
ãã¹ãŠã®ãã¯ãå®çŸ©ãæšè«èŠåãã¿ãŒã²ãã ãã¡ã€ã«ã®èšè¿°ãããã³ .SUFFIXES ãã£ã¬ã¯ãã£ãã®ãªã¹ãããNMAKE ã®å®è¡ãéå§ããåã«æšæºåºåããã€ã¹ã«è¡šç€ºããŸããã¡ã€ã¯ãã¡ã€ã«ããŸãã¯ã³ãã³ãã©ã€ã³ã§ã¿ãŒã²ãããæå®ããªãã§ /P ãæå®ãããšãNMAKE ã¯ãããã®æ
å ±ãšãšã©ãŒã衚瀺ããŸãã/P ãš /D ãªãã·ã§ã³
ã¯ãã¡ã€ã¯ãã¡ã€ã«ã®ãããã°ããããšãã«äŸ¿å©ã§ãã
/Q
ãã«ãã«ãã£ãп޿°ããå¿
èŠãããã¿ãŒã²ãã ãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ãããã§ãã¯ããŸãããã ãããã«ãã¯è¡ããŸãããã¿ãŒã²ããããã¹ãп޿°ãããŠããã° NMAKE 㯠0 ãè¿ããæŽæ°ãå¿
èŠãªã¿ãŒã²ãããããã° 0 以å€ã®æ°ãè¿ããŸããã¡ã€ã¯ãã¡ã€ã«ã®ããªããã»ã¹ ã³ãã³ãã ããå®è¡ãããŸããNMAKE ãããã ãã¡
ã€ã«ããå®è¡ãããšãã«äŸ¿å©ãªãªãã·ã§ã³ã§ãã
/R
.SUFFIXES ã®ãªã¹ããè§£é€ããŠãæšè«èŠåãTOOLS.INI ã§å®çŸ©ãããŠãããã¯ããŸãã¯çµèŸŒã¿ãã¯ããç¡èŠããŸãã
/S
ã¡ã€ã¯ãã¡ã€ã«ã«æžãããŠããã³ãã³ãã衚瀺ããªãããã«ããŸããã¡ã€ã¯ãã¡ã€ã«äžã§éšåçã«ã³ãã³ã衚瀺ãçŠæ¢ããã«ã¯ã@ ã³ãã³ãä¿®æ£åãŸã㯠.SILENT ãã£ã¬ã¯ãã£ãã䜿ããŸããããããããã®ãã¡ã€ã«ã®ãã³ãã³ãä¿®æ£åãããããã ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ãããã¡ã€ã¯ãã¡ã€ã«äžã§éšåçã« /S ãèšè«
é§ïŸïœ€ïœ¿ïœ€ïŸïœ²ï¿œïœœï¿œïœ€ïœ¹ïœ€ï¿œïœ€ïŸïœ€ïŸïœ¡ïœ¢!CMDSWITCHES ãã£ã¬ã¯ãã£ãã䜿ããŸãããã®ãã¡ã€ã«ã®ãããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããã
/T
ã³ãã³ã ã©ã€ã³ã§æå®ãããã¿ãŒã²ãã (ãŸãã¯ã¿ãŒã²ãããæå®ãããªããã°ã¡ã€ã¯ãã¡ã€ã«äžã®æåã®ã¿ãŒã²ãã) ã®ã¿ã€ã ã¹ã¿ã³ããçŸåšã®æéã«å€æŽããŸããã¡ã€ã¯ãã¡ã€ã«ã®ããªããã»ã¹ ã³ãã³ããå®è¡ããããã«ãã¯è¡ãããŸãããã¿ãŒã²ããã®å
容ã¯å€æŽãããŸããã
/X filename
ãã¹ãŠã®ãšã©ãŒåºå (NMAKE ããã³å®è¡ãããã³ãã³ãããã®ãã®) ã filename ãžåºåããŸããfilename ã«ã¯ããã¡ã€ã«ãŸãã¯ããã€ã¹ãæå®ã§ããŸããfilename ã®åã«ã¯ãã¹ããŒã¹ãŸãã¯ã¿ããå
¥ããããšãã§ããŸãããã¡ã€ã«åã®ãããã«ãã€ãã³ (-) ãæå®ãããšããšã©ãŒåºåã¯æšæºåºåããã€ã¹ãžéãããŸããããã©
ã«ãã§ã¯ãNMAKE ã¯ãšã©ãŒãæšæºãšã©ãŒã«éããŸãã
/?
NMAKE ã®ã³ãã³ãã©ã€ã³ã®æ§æã®èŠçŽã衚瀺ã㊠NMAKE ãçµäºãããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãžæ»ããŸãã
äŸ
次ã®äŸã§ã¯ã2 ã€ã® NMAKE ãªãã·ã§ã³ãæå®ããŠããŸãã
NMAKE /F sample.mak /C targ1 targ2
/F ãªãã·ã§ã³ã«ãã NMAKE ã¯ãã¡ã€ã¯ãã¡ã€ã« SAMPLE.MAK ãèªã¿èŸŒã¿ãŸãã/C ãªãã·ã§ã³ã«ãã NMAKE ã¯ãèŽåœçã§ãªããšã©ãŒãèŠåã¡ãã»ãŒãžã衚瀺ããªãããã«ããŸããæŽæ°ããã¿ãŒã²ãã ãã¡ã€ã«ãšã㊠targ1 ãš targ2 ã® 2 ã€ãæå®ããŠããŸãã
NMAKE ã³ãã³ã ãã¡ã€ã«
åãã³ãã³ãã©ã€ã³ã®åŒæ°ãç¹°ãè¿ã䜿ããããªãšããåŒæ°ãããã¹ã ãã¡ã€ã«ã«èšè¿°ããŠããããã®ãã¡ã€ã«åãã³ãã³ã ã©ã€ã³ã®åŒæ°ãšã㊠NMAKE ã«æž¡ãããšãã§ããŸããNMAKE ã¯ãã®ã³ãã³ã ãã¡ã€ã«ããªãŒãã³ããŠãåŒæ°ãèªã¿èŸŒã¿ãŸãããã®æ©èœã¯ãåŒæ°ã®ãªã¹ãããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã³ãã³ã ã©ã€ã³ã®æ
å€§é· (MS-DOS ã§ã¯ 128 æå) ãè¶
ãããããªãšãã«ãç¹ã«æå¹ã§ãã
NMAKE ã®ã³ãã³ã ã©ã€ã³ã§ã³ãã³ã ãã¡ã€ã«ãæå®ãããšãã¯ãæ¬¡ã®æ§æã䜿ããŸãã
NMAKE @commandfile
commandfile ãã£ãŒã«ãã«ã¯ãNMAKE ã®ã³ãã³ã ã©ã€ã³ã«å
¥åããæ
å ±ãèšè¿°ãããããã¹ã ãã¡ã€ã«ã®ååãå
¥åããŸããã³ãã³ã ãã¡ã€ã«ã®ååã®åã«ã¢ãã ããŒã¯ (@) ãä»ããŠæå®ããŠãã ããããŸãããã¡ã€ã«åã¯ãã£ã¬ã¯ã㪠ãã¹ãä»ããŠæå®ã§ããŸãã
NMAKE ã¯ãæå®ããããã¡ã€ã«ã 1 ã€ã®ã³ãã³ãã©ã€ã³åŒæ°ãšããŠæ±ããŸããNMAKE ã¯ããã¡ã€ã«ã®äžã®åè¡ã®æ¹è¡ãã¹ããŒã¹ã«çœ®ãæããŸãããããã£ãŠããã¯ãå®çŸ©ãã¹ããŒã¹ãå«ãã§ãããšãã«ã¯ãã¯ã©ãŒããŒã·ã§ã³ ããŒã¯ã§å²ãå¿
èŠããããŸãããã®ãã¡ã€ã«ã®ããã¯ããå®çŸ©ããå Žæãã®é
ãåç
§ããŠãã ããã
ã³ãã³ã ã©ã€ã³ã®æå®ãšã³ãã³ã ãã¡ã€ã«ã®æå®ãšã¯ãåããŠå
¥åã§ããŸããã³ãã³ã ã©ã€ã³ã®å¿
èŠãªç®æã§ã@commandfile ãæå®ããŠãã ãããã³ãã³ãã©ã€ã³å
¥åã¯ãã³ãã³ã ãã¡ã€ã«ã®æå®ããç®æã®ååŸã§è¡ãããšãã§ããŸããã³ãã³ã ãã¡ã€ã«ã¯è€æ°æå®ã§ããŸãã
äŸ 1
ãã®äŸã§ã¯ã次ã«ç€ºããããªå
容ãæã€ãã¡ã€ã« UPDATE ã䜿ã£ãŠããŸãã
/S "program = sample" sort.exe search.exe
次ã®ããã«æå®ãããšãNMAKE ã¯ã³ãã³ã ã©ã€ã³ã®åŒæ°ã UPDATE ããèªã¿èŸŒã¿ãŸãã
NMAKE @update
ãã®äŸã®çµæã¯ã次ã®ããã«çŽæ¥ã³ãã³ãã©ã€ã³åŒæ°ãå
¥åãããšããšåãã«ãªããŸãã
NMAKE /S "program = sample" sort.exe search.exe
äŸ 2
ãã®äŸã§ã¯ã次ã«ç€ºããããªå
容ãæã€ãã¡ã€ã« UPDATE ã䜿ã£ãŠããŸãã
/S "program \
= sample" sort.exe search.exe
åèšå· (\) ã䜿ããšããã¯ãå®çŸ©ã次ã®è¡ã«ç¶ããŠæžãããšãã§ããŸãã
äŸ 3
ãã®äŸã§ã¯ã次ã«ç€ºããããªå
容ãæã€ãã¡ã€ã« UPDATE ã䜿ã£ãŠããŸãã
/S "program = sample" sort.exe
次ã®ããã«æå®ãããšãNMAKE ã¯ã³ãã³ã ã©ã€ã³ã®åŒæ°ã UPDATE ããèªã¿èŸŒã¿ãŸãã
NMAKE @update search.exe
TOOLS.INI ãã¡ã€ã«
ãã䜿ãæ
å ±ãåæåãã¡ã€ã« TOOLS.INI ã«æžã蟌ãã§ãNMAKE ãã«ã¹ã¿ãã€ãºããããšãã§ããŸããNMAKE ã®èšå®ã¯ãã¿ã° [NMAKE] ã§å§ãŸãè¡ã®ããšã«æžããŸããã¿ã°ã¯å€§æåå°æåã®åºå¥ããããŸãããåæåãã¡ã€ã«ã®ãã®ã¿ã°ã®éšåã«ãã¡ã€ã¯ãã¡ã€ã«ã®æ
å ±ãæžã蟌ã¿ãŸããNMAKE ã¯ã/R ãªãã·ã§ã³ãæå®ããŠèµ·åãïœ
ãšã以å€ã¯ããã¹ãŠã®ã»ãã·ã§ã³ã§ãã®æ
å ±ã䜿ããŸããNMAKE ã¯ãæåã«ã«ã¬ã³ã ãã£ã¬ã¯ããªã§ TOOLS.INI ãæ¢ããèŠã€ãããªããšãã¯ç°å¢å€æ° INIT ã«æå®ãããŠãããã£ã¬ã¯ããªã§æ¢ããŸãã
!CMDSWITCHES ãã£ã¬ã¯ãã£ãã䜿ã£ãŠãTOOLS.INI ã§ã³ãã³ãã©ã€ã³ ãªãã·ã§ã³ãæå®ã§ããŸãããã®æ¹æ³ã§æå®ãããªãã·ã§ã³ã¯ããã¹ãŠã® NMAKE ã»ãã·ã§ã³ã§æå¹ã§ãããã®æ¹æ³ã¯ãã»ãã®ãŠãŒãã£ãªãã£ã§ããµããŒããããŠããç°å¢å€æ°ãããªãã·ã§ã³ãåãåãæ¹æ³ãšåã广ããããŸãã!CMDSWITCHES ã«ã€ããŠè©³ãã
ã¯ããã®ãã¡ã€ã«ã®ãããªããã»ã¹ ãã£ã¬ã¯ãã£ãããåç
§ããŠãã ããã
TOOLS.INI ãã¡ã€ã«ã«èšè¿°ãããŠãããã¯ããšæšè«èŠåã¯ã倿Žããããšãã§ããŸãããã®ãã¡ã€ã«ã®ããã¯ãå®çŸ©ã®åªå
é äœããšãæšè«èŠåã®åªå
é äœããåç
§ããŠãã ããã
NMAKE ã¯ãæåã« TOOLS.INI ããã®æ
å ±ãèªã¿èŸŒã¿ã次ã«ã¡ã€ã¯ãã¡ã€ã«ã®æ
å ±ãèªã¿èŸŒã¿ãŸãããããã£ãŠãããšãã° TOOLS.INI ã®äžã®èšè¿°ãããã¯ã¯ãã¡ã€ã¯ãã¡ã€ã«ã®èšè¿°ãããã¯ã®å
é éšåãšããŠæ±ãããŸãã/R ãæå®ãããŠããªããããããã¹ãŠã® NMAKE ã»ãã·ã§ã³ã§ãã®ããã«åäœããŸãã
TOOLS.INI ãã¡ã€ã«å
ã§ã³ã¡ã³ããèšè¿°ãããšãã«ã¯ãè¡ã®å
é ãã»ãã³ãã³ (;) ã§å§ããŠãã ããããŸããã¡ã€ã¯ãã¡ã€ã«ãšåãããã«ã·ã£ãŒãèšå· (#) ã®ããšã«ã³ã¡ã³ããèšè¿°ããããšãã§ããŸãã詳ããã¯ããã®ãã¡ã€ã«ã®ãã³ã¡ã³ãããåç
§ããŠãã ããã
äŸ
次ã«ãTOOLS.INI ãã¡ã€ã«ã®èšè¿°äŸã瀺ããŸãã
[NMAKE]
; macros
CC = qcl
CFLAGS = /Gc /Gs /W3 /Oat
; inference rule
c.obj:
$(CC) /Zi /c $(CFLAGS) $*.c
TOOLS.INI ã«äžã«ç€ºããã³ãŒãããããšãNMAKE 㯠[NMAKE] ã®ããšã®è¡ãèªã¿ãŸãããã®äŸã§ã¯ãMicrosoft QuickC ã³ã³ãã€ã© (QCL.EXE) ãèµ·åããããã«ãã¯ã CC ãåå®çŸ©ãããã¯ã CFLAGS ãå®çŸ©ãããã㊠.C ãœãŒã¹ãã .OBJ ãã¡ã€ã«ãäœãããã®æšè«èŠåãåå®çŸ©ããŠããŸãããããã® NMAKE ã®æ©èœã¯ãã®ç« ã§èª¬æ
ããŠããŸãã
ã¡ã€ã¯ãã¡ã€ã«ã®å
容
NMAKE ã®ã¡ã€ã¯ãã¡ã€ã«ã¯ãèšè¿°ãããã¯ããã¯ããæšè«èŠåãããã³ãã£ã¬ã¯ãã£ãã§æ§æãããŠããŸãããã®ç¯ã§ã¯ãã¡ã€ã¯ãã¡ã€ã«ãæžãäžã§ã®æŠèŠããŸãšããŠããŸããã¡ã€ã¯ãã¡ã€ã«ã®åèŠçŽ ã«ã€ããŠã¯ã以éã®ç¯ã§èª¬æããŸãã
å¶åŸ¡æåã®ãªãã©ã«ãšããŠã®äœ¿çš
å¿
èŠãªãã°ãNMAKE ãå¶åŸ¡æåãšããŠçšããæåã䜿ãããšãã§ããŸããNMAKE ã®å¶åŸ¡æåã¯ã次ã®ãšããã§ãã
: ; # ( ) $ ^ \ { } ! @ -
NMAKE ã®å¶åŸ¡æåããå¶åŸ¡ããããã«äœ¿ãã®ã§ã¯ãªããªãã©ã«æåãšããŠäœ¿ããšãã¯ããã®æåã®åã«ã«ã¬ãã (^) ãä»ããŸããNMAKE ã¯ãå¶åŸ¡æå以å€ã®æåã®åã«çœ®ãããã«ã¬ããã¯ç¡èŠããŸããã¯ã©ãŒããŒã·ã§ã³ã§å²ãŸããã«ã¬ããã¯ããªãã©ã«æåãšèŠãªãããŸãã
ã«ã¬ãããè¡ã®æåŸã§äœ¿ã£ãŠãæååããã¯ãã®å®çŸ©ã«ãªãã©ã«ãšããŠæ¹è¡æåã䜿ãããšãã§ããŸãããã®ã«ã¬ããã«ãã£ãŠãNMAKE ã¯ãæ¹è¡æåãæ¹è¡ã§ã¯ãªãããã¯ãã®äžéšã§ãããšè§£éããŸãããã®æ©èœã®æå³ã¯ããã¯ãå®çŸ©ã®è¡ãç¶ç¶ããåèšå· (\) ãšã¯ç°ãªãã®ã§ã泚æããŠãã ãããåèšå·ã®ããšã®æ¹è¡æåã¯ãã¹ã®
yãŒã¹ã«çœ®ãæããããŸãã詳ããã¯ããã®ãã¡ã€ã«ã®ããŠãŒã¶ãŒå®çŸ©ãã¯ãããåç
§ããŠãã ããã
ã³ãã³ãè¡äžã®ããŒã»ã³ãèšå· (%) ã¯ããã¡ã€ã«æå®åã®éå§ã瀺ããã®ãšããŠè§£éãããŸã (ãã®ãã¡ã€ã«ã®ããã¡ã€ã«åæ§æèŠçŽ ãåç
§ããããã®æ§æããåç
§ããŠãã ãã)ãNMAKE ã¯ã%s ããã¡ã€ã«åãšããŠè§£éãã%| ã«ç¶ã d, e, f, p, F ã®æååããã¡ã€ã«åãŸãã¯ãã¹ã® 1 éšãŸãã¯å
šéšãšè§£éããŸããã³ãã³ãè¡
ã§ããŒã»ã³ãããªãã©ã«æåãšããŠäœ¿ããšãã¯ãããŒã»ã³ãã 2 〠(%%) èšè¿°ããŠãã ããããããã®å Žå以å€ã¯ãNMAKE ã¯ããŒã»ã³ãèšå· 1 ã€ããªãã©ã«æåãšããŠè§£éããŸãããã ããNMAKE ã¯ã€ãã« 2 ã€ã®ããŒã»ã³ãèšå· (%%) ã 1 ã€ã®ããŒã»ã³ãèšå·ãšããŠè§£éããããããªãã©ã«æåãšã㊠%% ã衚ããããšãã«ã¯ã
%%% ãšããŒã»ã³ãèšå· 3 ã€ã§èšè¿°ãããã%%%% ã®ããã« 4 ã€èšè¿°ããŸãã
ãã«èšå· ($) ãã³ãã³ãã§ãªãã©ã«æåãšããŠäœ¿ãã«ã¯ããã«èšå·ã 2 〠($$) èšè¿°ããŸãããã®æ¹æ³ã¯ã^$ ãæå¹ãªã»ãã®å Žåã«ã䜿ãããšãã§ããŸãã
ãã¯ãå®çŸ©ã§ã®ãªãã©ã«æåã«ã€ããŠè©³ããã¯ããã®ãã¡ã€ã« ã®ããã¯ãå®çŸ©ã§äœ¿ãããå¶åŸ¡æåããåç
§ããŠãã ããã
ã¯ã€ã«ãã«ãŒã
ã¿ãŒã²ãã ãã¡ã€ã«ãäŸåãã¡ã€ã«ãæå®ãããšãã«ãMS-DOS ã®ã¯ã€ã«ãã«ãŒã (* ãš ?) ã䜿ãããšãã§ããŸããNMAKE ã¯ãäŸåé¢ä¿è¡ã«ããã¯ã€ã«ãã«ãŒããå±éããŸããã³ãã³ãã®äžã§æå®ãããŠããã¯ã€ã«ãã«ãŒãã¯ããã®ã³ãã³ãã«æž¡ãããŸãããã®ãšãã¯ãNMAKE ã¯ãã®ã¯ã€ã«ãã«ãŒããå±éããŸããã
äŸ
次ã«ç€ºãèšè¿°ãããã¯ã§ã¯ãã¯ã€ã«ãã«ãŒãã® * ã 2 å䜿ãããŠããŸãã
project.exe : *.c
cl *.c /Feproject.exe
ãã®äŸã§ãNMAKE ã¯äŸåé¢ä¿è¡ã«ãã *.c ãå±éããã«ã¬ã³ã ãã£ã¬ã¯ããªã®äžããæ¡åŒµå .C ãæã€ãã¹ãŠã®ãã¡ã€ã«ãæ¢ãåºããŸãããã¡ã€ã« .C ã®äžã«å€ããã®ããããšãCL ã³ãã³ãã¯ãã¡ã€ã« *.c ãå±éããŠãããããã¹ãŠã®ãã¡ã€ã«ãã³ã³ãã€ã«ããã³ãªã³ã¯ããŸãã
ã³ã¡ã³ã
ã¡ã€ã¯ãã¡ã€ã«ã§ã¯ãã·ã£ãŒãèšå· (#) ã®ããšã«ã³ã¡ã³ã (泚éæ) ãæžãããšãã§ããŸããNMAKE ã¯ãã·ã£ãŒãèšå·ããæ¹è¡æåã®éã«èšè¿°ããããã®ãç¡èŠããŸããæ¬¡ã«ãã³ã¡ã³ãèšè¿°ã®äŸã瀺ããŸãã
# ã³ã¡ã³ãè¡
OPTIONS = /MAP # ãã¯ãå®çŸ©è¡
all.exe : one.obj two.obj # äŸåé¢ä¿è¡
link one.obj two.obj;
# ã³ãã³ãèšè¿°ãããã¯ã®éã®è¡
copy one.exe \release
obj.exe: # æšè«èŠåèšè¿°è¡
ã³ãã³ã ã©ã€ã³ã«ã¯ãã³ã¡ã³ããèšè¿°ããããšã¯ã§ããŸãããäŸåé¢ä¿è¡ãæšè«èŠåãå®çŸ©ããŠããè¡ãšåãè¡ã«ã³ãã³ããèšè¿°ãããšããåæ§ã«ãã³ã¡ã³ãã¯èšè¿°ã§ããŸããããã ããã³ãã³ãèšè¿°ãããã¯ã®è¡ã®éã«ã¯ã³ã¡ã³ããèšè¿°ã§ããŸãããã®ãšãã¯ãè¡ã®å
é ãã·ã£ãŒãèšå· # ã§å§ãŸãããã«ããå¿
èŠããããŸãã
ãªãã©ã«æåãšã㊠ã·ã£ãŒãèšå· # ã䜿ããšãã¯ã次ã«ç€ºãããã«ã«ã¬ãã (^) ãåã«çœ®ããŠãã ããã
DEF = ^#define #Macro representing a C preprocessing directive
TOOLS.INI ãã¡ã€ã«ã§ãã³ã¡ã³ããèšè¿°ã§ããŸããTOOLS.INI ã§ã¯ãã³ãã³ (;) ã䜿ã£ãŠã³ã¡ã³ããèšè¿°ããããšãã§ããŸãããã®ãã¡ã€ã«ã®ãTOOLS.INI ãã¡ã€ã«ããåç
§ããŠãã ããã
é·ããã¡ã€ã«å
䜿ã£ãŠãããã¡ã€ã« ã·ã¹ãã ã§é·ããã¡ã€ã«åããµããŒããããŠãããšãã«ã¯ããã®ååã䜿ãããšãã§ããŸãããã ãããã®ãšãã¯ããã« ã¯ã©ãŒããŒã·ã§ã³ (") ã§ãã®ãã¡ã€ã«åãå²ãå¿
èŠããããŸããæ¬¡ã«ãäŸåé¢ä¿è¡ã§ã®äŸã瀺ããŸãã
all : "VeryLongFileName.exe"
èšè¿°ãããã¯
èšè¿°ãããã¯ã¯ã¡ã€ã¯ãã¡ã€ã«ã®äžå¿ãšãªãéšåã§ãã以äžã«ä»£è¡šç㪠NMAKE èšè¿°ãããã¯ã瀺ããŸããããã§ã¯ãäŸåé¢ä¿è¡ãã¿ãŒã²ããéšãäŸåéšã«ã€ããŠé ã«èª¬æããŠããŸãã
myapp.exe : myapp.obj another.obj myapp.def
link myapp another, , NUL, mylib, myapp
copy myapp.exe c:\project
èšè¿°ãããã¯ã¯ãâäŸåé¢ä¿è¡âã§å§ãŸããŸããäŸåé¢ä¿è¡ã§ã¯ã1 ã€ä»¥äžã®âã¿ãŒã²ããâãã¡ã€ã«ãš 0 ãŸã㯠1 ã€ä»¥äžã®âäŸåâãã¡ã€ã«ãæå®ããŸããã¿ãŒã²ãã ãã¡ã€ã«ãååšããªããšãããŸãã¯ã¿ãŒã²ãã ãã¡ã€ã«ã®æçµå€æŽæ¥æãããæ°ããäŸåãã¡ã€ã«ã 1 ã€ã§ããã£ããšããNMAKE ã¯ãã®ã¿ãŒã²ããã«å¯Ÿããã®
Rãã³ãèšè¿°ãããã¯ãå®è¡ããŸããã³ãã³ãèšè¿°ãããã¯ã«ã€ããŠã¯ããã³ãã³ãããåç
§ããŠãã ããã
äŸåé¢ä¿è¡
èšè¿°ãããã¯ã¯ãâäŸåé¢ä¿è¡âã§å§ãŸããŸããäŸåé¢ä¿è¡ã§ã¯ã1 ã€ä»¥äžã®âã¿ãŒã²ããâãã¡ã€ã«ãš 0 ãŸã㯠1 ã€ä»¥äžã®âäŸåâãã¡ã€ã«ãæå®ããŸããã¿ãŒã²ãã ãã¡ã€ã«ãååšããªããšãããŸãã¯ã¿ãŒã²ãã ãã¡ã€ã«ã®æçµå€æŽæ¥æãããæ°ããäŸåãã¡ã€ã«ã 1 ã€ã§ããã£ããšããNMAKE ã¯ãã®ã¿ãŒã²ããã«å¯Ÿããã®
Rãã³ãèšè¿°ãããã¯ãå®è¡ããŸãã以äžã«äŸåè¡ã®äŸã瀺ããŸãã
myapp.exe : myapp.obj another.obj myapp.def
ãã®äŸã§ã¯ãmyapp.objãanother.obj ãŸã㯠myapp.def ã®ãããããæŽæ°ããããšãNMAKE 㯠myapp.exe ãåãã«ãããŸãã
äŸåé¢ä¿è¡ãã€ã³ãã³ããããããšã¯ã§ããŸãã (äŸåé¢ä¿è¡ã®å
é ã«ã¹ããŒã¹ãã¿ããå
¥ããªãã§ãã ãã)ãæåã®ã¿ãŒã²ããããè¡ã®å
é ã«æå®ããå¿
èŠããããŸããã¿ãŒã²ããéšãšäŸåéšã®éã¯ããè€æ°ã®èšè¿°ãããã¯ã§ã®ã¿ãŒã²ããã®äœ¿ãæ¹ãã®é
ã§ã®èª¬æãã®ãããã³ãã³ (:) ã§åºåããŸããã³ãã³ã®ååŸã«ã¯ã¹ããŒã¹
ãŸãã¯ã¿ããå
¥ããããšãã§ããŸããäŸåé¢ä¿è¡ã¯ã1 è¡ã§èšè¿°ããå¿
èŠããããŸãããã ããã¿ãŒã²ãã ãŸãã¯äŸåãã¡ã€ã«ã®åŸãã«åèšå· (\) ãä»ããããšã«ããäŸåé¢ä¿è¡ãè€æ°è¡ã«ããã£ãŠèšè¿°ã§ããŸãã
ã³ãã³ããå®è¡ããåã«ãNMAKE ã¯ãã¹ãŠã®äŸåé¢ä¿è¡ãšé©åãªæšè«èŠåãè©äŸ¡ããŠãã¿ãŒã²ãã ãã¡ã€ã«ãå®å
šã«æŽæ°ããã®ã«å¿
èŠãªãã¹ãŠã®é åºãæå®ãããâäŸåããªãŒâãäœããŸããNMAKE ã¯ãäŸåãã¡ã€ã«èªäœãã»ãã®èšè¿°ãããã¯ã®äŸåé¢ä¿è¡ã§ã¿ãŒã²ãã ãã¡ã€ã«ãšããŠæå®ãããŠãããããã®äŸåé¢ä¿è¡ã®äŸåã
ã¡ã€ã«ãå¥ã®å Žæã§ã¿ãŒã²ããã«ãªã£ãŠãããããã§ãã¯ããŸãããã®ããšã« NMAKE ã¯ãäŸåããªãŒãäœããæçµå€æŽæ¥æããã§ãã¯ããŸããäŸåããªãŒã®äžã«ã¿ãŒã²ãã ãã¡ã€ã«ãããæ°ããäŸåãã¡ã€ã«ããããšãã«ã¯ãNMAKE ã¯å¿
èŠãªãã¡ã€ã«ãæŽæ°ããŠããã¿ãŒã²ããããã«ãããŸãã
ã¿ãŒã²ããéš
äŸåé¢ä¿è¡ã®ã¿ãŒã²ããéšã«ã¯ã1 ã€ä»¥äžã®ã¿ãŒã²ãã ãã¡ã€ã«åãæå®ããŸããå°ãªããšã 1 ã€ã®ã¿ãŒã²ãã ãã¡ã€ã«ãæå®ããå¿
èŠããããŸããè€æ°æå®ãããšãã¯ããã¡ã€ã«åã 1 å以äžã®ã¹ããŒã¹ãŸãã¯ã¿ãã§åºåã£ãŠãã ããããã¡ã€ã«åã¯ããã£ã¬ã¯ã㪠ãã¹ãä»ããŠæå®ã§ããŸãããã¡ã€ã«åã¯ã倧æåå°æåïœ
ïŸåºå¥ããããŸãããã¿ãŒã²ããã¯ããã¹ãå«ã㊠256 æå以å
ã§æå®ããå¿
èŠããããŸãã
ã³ãã³ (:) ã®åã®æåŸã®ã¿ãŒã²ãã ãã¡ã€ã«åãã1 æåã®ãšãã¯ãå¿
ãã³ãã³ã®åã«ã¹ããŒã¹ãå
¥ããŠãã ãããã¹ããŒã¹ããªããšãNMAKE ã¯ãã®ã³ãã³ããã©ã€ãæå®åã§ãããšå€æããŸãã
éåžžãã¿ãŒã²ããéšã«ã¯èšè¿°ãããã¯ã®ã³ãã³ãã䜿ã£ãŠãã«ããããã¡ã€ã«ã®ååãæå®ããŸãããæå¹ãªãã¡ã€ã«åã§ããã°ã©ã®ãã¡ã€ã«ã§ãæå®ã§ããŸãããŸããç䌌ã¿ãŒã²ãããã¿ãŒã²ãããšããŠæå®ããããšãã§ããŸãã詳ããã¯ããã®ãã¡ã€ã«ã®ãç䌌ã¿ãŒã²ãããã®é
ãåç
§ããŠãã ããã
NMAKE ã®ã³ãã³ã ã©ã€ã³ã§ã¿ãŒã²ãã ãã¡ã€ã«ãæå®ããããšãNMAKE ã¯ãã®ã¿ãŒã²ããããã«ãããŸããã³ãã³ã ã©ã€ã³ã§ã¿ãŒã²ãã ãã¡ã€ã«ãæå®ãããªãã£ããšãã«ã¯ãNMAKE ã¯ã¡ã€ã¯ãã¡ã€ã«ã®æåã®äŸåé¢ä¿è¡ã®å
é ã«æå®ãããŠããã¿ãŒã²ããããã«ãããŸãã
以åã®äŸã§ã¯ã1 ã€ã®ã¿ãŒã²ãã ãã¡ã€ã« MYAPP.EXE ãæå®ããããã®ã¿ãŒã²ãããååšããªããšããæŽæ°ãå¿
èŠãªãšãã¯ããã«ãããããã« NMAKE ã«æç€ºããŠããŸãã
è€æ°ã®èšè¿°ãããã¯ã§ã®ã¿ãŒã²ããã®äœ¿ãæ¹
以åã®äŸã®ããã«ã«æå®ãããšãã¯ãã¿ãŒã²ãã㯠1 ã€ã®èšè¿°ãããã¯ã«ã ããããŸããè€æ°ã®èšè¿°ãããã¯ã䜿ã£ãŠã¿ãŒã²ãããæŽæ°ããã«ã¯ãã¿ãŒã²ããéšãšäŸåéšãšã®éã 2 ã€ã®ã³ãã³ (::) ã§åºåããŸãããã®æ©èœã¯ãã¹ã€ã¹ã€ã®ã³ãã³ãã«ãã£ãŠçæãããèŠçŽ ãå«ãè€éãªã¿ãŒã²ãã ãã¡ã€ã«ããã«ããããšãã«ææ
ᅵïŸ

äŸ
次ã«ç€ºãã¡ã€ã¯ãã¡ã€ã«ã§ã¯ãã©ã€ãã©ãªãæŽæ°ããŸãã
target.lib :: one.asm two.asm three.asm
ML one.asm two.asm three.asm
LIB target -+one.obj -+two.obj -+three.obj;
target.lib :: four.c five.c
CL /c four.c five.c
LIB target -+four.obj -+five.obj;
ãã®äŸã§ã¯ãã¢ã»ã³ããªèšèªã®ãã¡ã€ã«ã 1 ã€ã§ãã©ã€ãã©ãªãããããšã«å€æŽããããšãNMAKE ã¯ãœãŒã¹ ãã¡ã€ã«ãã¢ã»ã³ãã«ããŠãã©ã€ãã©ãªãæŽæ°ããŸããåæ§ã«ãC èšèªã®ãã¡ã€ã«ã 1 ã€ã§ã倿ŽããããšãNMAKE 㯠C ã®ãã¡ã€ã«ãã³ã³ãã€ã«ããŠãã©ã€ãã©ãªãæŽæ°ããŸãã
è€æ°ã®äŸåé¢ä¿è¡ã§ã®ã¿ãŒã²ããã®éè€
1 ã€ã®èšè¿°ãããã¯ã§åãã¿ãŒã²ãããè€æ°ã®äŸåé¢ä¿è¡ã䜿ã£ãŠæå®ãããŠãããšãããã®äŸåé¢ä¿è¡ã¯ 1 è¡ã®äŸåé¢ä¿è¡ã®ããã«æ±ãããŸããããšãã°ã次ã®ããã«æå®ãããšããŸãã
bounce.exe : jump.obj
bounce.exe : up.obj
echo Building bounce.exe...
ãã®äŸã¯ã次ã®ããã«æå®ãããšããšåãçµæã«ãªããŸãã
bounce.exe : jump.obj up.obj
echo Building bounce.exe...
ãã®ãããªè©äŸ¡æ¹æ³ãè¡ãããããã«ããã€ãã®åœ±é¿ããããŸããNMAKE 㯠1 åã«ã€ã 1 ã€ã®ã¿ãŒã²ãããå
ã«ããŠäŸåããªãŒãäœããããæ¬¡ã®ããã«å¥ã®ã¿ãŒã²ãããå«ãŸããŠããŸãããšããããŸãã
bounce.exe leap.exe : jump.objã
bounce.exe climb.exe : up.obj
echo Building bounce.exe...
ãã®äŸã§ãNMAKE 㯠3 ã€ã®ã¿ãŒã²ããããããã«ã€ããŠãå¥ã
ã®èšè¿°ãããã¯ã§æå®ãããŠããããã«äŸåé¢ä¿è¡ãè©äŸ¡ããŸããbounce.exe ãŸã㯠climb.exe ãæŽæ°ããå¿
èŠããããšããNMAKE ã¯æå®ãããã³ãã³ããå®è¡ããŸããleap.exe ãæŽæ°ããå¿
èŠããããšãã¯ãæå®ãããã³ãã³ãã¯å®è¡ããããNMAKE ã¯æšè«èŠåã®
é©çšã詊ã¿ãŸãã
ã¡ã€ã¯ãã¡ã€ã«ã®äžã®ç°ãªãäŸåé¢ä¿è¡ã§åãã¿ãŒã²ãããæå®ãããšãã«ã¯ã泚æãå¿
èŠã«ãªããŸããåãã¿ãŒã²ããããã¡ã€ã¯ãã¡ã€ã«ã®ç°ãªãå Žæã® 1 ã€ã®ã³ãã³ (:) ã§åºåãããŠãã 2 ã€ã®äŸåé¢ä¿è¡ã§æå®ãããŠããŠããããã³ãã³ãããã®ãã¡ã® 1 ã€ã®äŸåé¢ä¿è¡ã®ããšã«ã ãæå®ãããŠãããšããNMAKE ã¯ãã® 2
ã€ã®äŸåé¢ä¿è¡ã飿¥ãŸãã¯çµåãããŠããããã«æ±ããŸãããã®ãããªå ŽåãNMAKE ã¯ã³ãã³ãã®æå®ããªãäŸåé¢ä¿è¡ã«å¯ŸããŠæšè«èŠåãå®è¡ããŸãã (ãæšè«èŠåããåç
§ããŠãã ãã)ãNMAKE 㯠ãã®äŸåé¢ä¿è¡ã 1 ã€ã®èšè¿°ãããã¯ã«å±ããŠãããšèŠãªããäžæ¹ã®äŸåé¢ä¿è¡ã§æå®ãããŠããã³ãã³ããå®è¡ããŸãã
次ã«ç€ºãã¡ã€ã¯ãã¡ã€ã«ã¯ãåã®äŸãšåãããã«è§£éãããŸãã
bounce.exe : jump.obj
echo Building bounce.exe...
Technical Details
Message-ID:
<NEWTNews.814819730.2022.test3@japan4.netmanage.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: fe8aa,27799b40df331da0,start X-Google-Attributes: gidfe8aa,public From: test3@japan4.netmanage.com Subject: test-ingnoreïŒïŒïŒïœ Date: 1995/10/27 Message-ID: <NEWTNews.814819730.2022.test3@japan4.netmanage.com> X-Deja-AN: 118216293 organization: PSI Public Usenet Link content-type: TEXT/PLAIN; charset=ISO-2022-JP mime-version: 1.0 newsgroups: ca.test