¼ø¶È»ñÎÁ/11
make †
make ¤È¤Ï¡¤Makefile ¤È¸Æ¤Ð¤ì¤ë¥ì¥·¥Ô¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤¿¥ì¥·¥Ô¤Ë±è¤Ã¤Æºî¶È¤ò¼«Æ°Åª¤Ë¤·¤Æ¤¯¤ì¤ë¥Ä¡¼¥ë¤Ç¤¢¤ë*1¡¥ ÆÃħ¤È¤·¤Æ¤Ï¡¤
- ¥ì¥·¥Ô¤Ê¤Î¤Ç¡¤½ñ¤Êý¤¬Ã±½ã¡¥»È¤¤¤Þ¤ï¤·¤·¤ä¤¹¤¤¡¥
- ¡Ö¥â¥Î¡×¤Î°Í¸´Ø·¸¤È¡¤¤½¤Î¶É½êŪ¤Ê¼ê½ç¤À¤±½ñ¤±¤ÐÎɤ¤¡¥¤È¤Æ¤âñ½ã¡¥
- ɬÍפʺî¶È¼ê½ç¤ò¼«Æ°Åª¤ËȽÃǤ·¤Æ¤¯¤ì¤ë¡¥ ¿Í´Ö¤¬¼ê½ç¤Î½çÈÖ¤òµ¤¤Ë¤·¤Ê¤¯¤ÆÎɤ¤¡¥
- ºî¶È¤ò¤ä¤êľ¤¹ºÝ¡¤É¬Íפʺî¶È¡Ö¤À¤±¡×¤ä¤Ã¤Æ¤¯¤ì¤ë¡¥ ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤À¤ÈÁêÅöºî¤ê¤³¤Þ¤Ê¤¤¤È¡¤Æ¬¤«¤é¤ä¤êľ¤·¤Ë¤Ê¤ë.¤½¤ì¤ËÈæ³Ó¤¹¤ë¤ÈÂçÊÑÊØÍø¡¥
- ºî¶È¤ÎÅÓÃæ¤Ç¥¨¥é¡¼¤¬¤¢¤Ã¤Æ»ß¤Þ¤Ã¤¿¤È¤¹¤ë¡¥¤½¤Î²Õ½ê¤À¤±¼êºî¶È¤ÇÂбþ¤·¤¿¾ì¹ç¡¤¤â¤¦°ìÅÙ make ¤¹¤ë¤È¡¤Â³¤¤«¤é¤¤Á¤ó¤È¤ä¤Ã¤Æ¤¯¤ì¤ë¡¥
- ¤è¤ê´Êñ¤Êµ½Ò¤ò¤¹¤ë¤¿¤á¤Î¹âÅÙ¤Êʸˡ¤â¤¢¤ê¡¤½¬½Ï¤¹¤ì¤Ð¤¹¤ë¤Û¤É´Êñ¤Ë½ñ¤±¤ë¡¥
¤È¤¤¤¦¤È¤³¤í¤¬µó¤²¤é¤ì¤ë¡¥ ¸«¤Æ¤ï¤«¤ë¤è¤¦¤Ë¡¤ÂçÊѤËÊØÍø¤Ê¤â¤Î¤Ç¤¢¤ë¡¥ º£²ó¤Ï¤³¤Î make ¤Ë¤Ä¤¤¤Æ³Ø¤Ü¤¦¡¥
¤Ê¤ª¡¤¼«Æ°Åª¤Êºî¶È¤ò¤¹¤ë°Ù¤Î¥Ä¡¼¥ë¤È¤·¤Æ¾¤Ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ê¤É¤â¤¢¤ë¤¬¡¤ ÅÓÃæ¤ÇÄûÀµ¤ä¤ä¤êľ¤·¤¬È¯À¸¤¹¤ë¤è¤¦¤Ê¾ì¹ç(¥×¥í¥°¥é¥à³«È¯¤Ê¤É)¤Ï make ¤ÎÊý¤¬ÌÀ¤é¤«¤ËÊØÍø¤Ç¤¢¤ë¡¥
Reference: make »²¹Í»ñÎÁ †
- GNU Make ¡Ä µã¤¯»Ò¤âÌÛ¤ë GNU ¤Î Make. ¤Þ¤¢¡¤¤³¤³¤ò¾ðÊó¤Îµ¯ÅÀ¤È¤·¤Æ¤ª¤±¤Ð´Ö°ã¤¤¤Ê¤¤¡¥ºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ï 4.00 ¤«? ¤Þ¤¢¡¤make ¤ò¼«Ê¬¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפˤʤ뤳¤È¤Ï¤Þ¤º¤Ê¤¤¤À¤í¤¦¡¥
- GNU Make ¥Þ¥Ë¥å¥¢¥ë¤ÎÆüËܸìÌõ ¡Ä GNU Make ¤Î¥Þ¥Ë¥å¥¢¥ë¤òÆüËܸì¤ËÌõ¤µ¤ì¤¿Êý(¤¤¤Î¤Þ¤¿ ¤ß¤Ä¤Ò¤íÍÍ)¤¬µï¤ë¡¥¥é¥¤¥»¥ó¥¹¤Ï GPL ¤À¡¥´¶¼Õ¤·¤Æ¡¤¤¢¤ê¤¬¤¿¤¯Æɤޤ»¤Æ¤â¤é¤ª¤¦¡¥
¾¤Ë¤â¡¤web ¾å¤Ë¤Ï make ¤Ë¤Ä¤¤¤Æ½ñ¤¤¤¿¤â¤Î¤¬Âô»³¤¢¤ë¡¥
¼«Ê¬¤Ë¤¢¤Ã¤¿¤â¤Î¤òõ¤·¤Æ¤ß¤è¤¦¡¥
101 of make: make ¤Î´ðÁà †
Make salad: ¥µ¥é¥À¤ËÎ㤨¤ë: Makefile †
¤Þ¤º¤ÏÎ㤨¤«¤éÆþ¤í¤¦¡¥ make ¤¬ÎÁÍý¿Í¤Ç¡¤Makefile ¤Ï¤½¤Î¥ì¥·¥Ô¤ËÁêÅö¤¹¤ë¤È¹Í¤¨¤Æ¡¤¥ì¥·¥Ô¤ò½ñ¤¯¤³¤È¤ò¹Í¤¨¤ë¡¥ ºÇ½é¤Ë¡¤´Êñ¤Ê¥µ¥é¥À¤òºî¤ë¥ì¥·¥Ô¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡¥ ¤¿¤À¤·¡¤½ñ¤Êý¤Ï make ¤Îήµ·¤Ç¡¤¤Ç¤¢¤ë¡¥
ºÇ½é¤Ë¡¤´Êñ¤Ê¥µ¥é¥À¤òºî¤ë¡¤¤È¤¤¤¦ºî¶È¤ò¡¤
- ´°À®ÉÊ¡¤ÅÓÃæ·Ð²áÉÊ¡¤ºàÎÁ¡¤¤È¤¤¤Ã¤¿¡Ö¥â¥Î¡×¤Î°Í¸´Ø·¸
- ¤È¡¤¤½¤ÎÅÓÃæ·Ð²á¤Ç¤ÎÁàºî
¤Ë¤ï¤±¤ÆÃúÇ«¤Ë¹Í¤¨¤Æ¤ß¤è¤¦¡¥ ¤Þ¤º¤Ï°Í¸´Ø·¸¤À¤±½ñ¤¤¤Æ¤ß¤ë¡¥
¢£ ¥µ¥é¥ÀºîÀ®»þ¤Î¡Ö¥â¥Î¡×¤Î°Í¸´Ø·¸ ¢£
¥¿¡¼¥²¥Ã¥ÈÉÊ | ¤½¤Î¥¿¡¼¥²¥Ã¥È¤ËɬÍפÊÉÊ |
¥µ¥é¥À´°À®ÉÊ | ¡¦Å¬ÅÙ¤ÊÂ礤µ¤ËÀÚ¤é¤ì¤¿À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ ¡¦¥É¥ì¥Ã¥·¥ó¥° ¡¦åºÎï¤Ê´ï |
ŬÅÙ¤ÊÂ礤µ¤ËÀÚ¤é¤ì¤¿ À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ | ¡¦À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ |
À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ | ¡¦¿·Á¯¤ÊÌîºÚ |
¥É¥ì¥Ã¥·¥ó¥° | ¡¦¿Ý ¡¦¥µ¥é¥ÀÌý ¡¦¾ßÌý ¡¦±ö ¡¦¥³¥·¥ç¥¦ |
¼¡¤Ë¡¤¤³¤Î°Í¸´Ø·¸¤Îº¸¤Î¡Ö¥¿¡¼¥²¥Ã¥ÈÉʡפòºîÀ®¤¹¤ë¤¿¤á¤Ë¤ä¤ë¡Öºî¶È¡×¤ò½ñ¤Æþ¤ì¤Æ¤ß¤è¤¦¡¥
¢£ ¥µ¥é¥ÀºîÀ®»þ¤Ëºî¤Ã¤¿¤êÍøÍѤ·¤¿¤ê¤¹¤ë¡Ö¥â¥Î¡×¤Î°Í¸´Ø·¸¤Èºî¶È ¢£
¥¿¡¼¥²¥Ã¥ÈÉÊ | ¤½¤Î¥¿¡¼¥²¥Ã¥È¤ËɬÍפÊÉÊ |
¥µ¥é¥À´°À®ÉÊ | ¡¦Å¬ÅÙ¤ÊÂ礤µ¤ËÀÚ¤é¤ì¤¿À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ ¡¦¥É¥ì¥Ã¥·¥ó¥° ¡¦åºÎï¤Ê´ï |
ɬÍ×Éʤκǽé¤òºÇ¸å¤ËÆþ¤ì¡¤ÆóÈÖÌܤò¤Õ¤ê¤«¤±¤ë | |
ŬÅÙ¤ÊÂ礤µ¤ËÀÚ¤é¤ì¤¿ À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ | ¡¦À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ |
ɬÍ×ÉʤòŬÅö¤Ë¥«¥Ã¥È | |
À¶·é¤«¤Ä¿·Á¯¤ÊÌîºÚ | ¡¦¿·Á¯¤ÊÌîºÚ |
ɬÍ×ÉʤòÀö¤¦ | |
¥É¥ì¥Ã¥·¥ó¥° | ¡¦¿Ý ¡¦¥µ¥é¥ÀÌý ¡¦¾ßÌý ¡¦±ö ¡¦¥³¥·¥ç¥¦ |
ɬÍ×ÉʤòŬÎÌ¡¤Å¬Å٤˺®¤¼¤ë |
¤³¤Îɽ¤Ë½¾¤Ã¤Æ¡¤°ìÈֺǽé¤Î¥¿¡¼¥²¥Ã¥ÈÉʤˤĤ¤¤Æ
¥¿¡¼¥²¥Ã¥ÈÉʤ¬¤â¤·¤â̵¤±¤ì¤Ð¡Öºî¶È¡×¤Çºî¤ê¡¤¤½¤Î»þ¤ËɬÍפÊÉʤ¬¤Ê¤±¤ì¤Ð¤½¤ì¤¬¥¿¡¼¥²¥Ã¥ÈÉʤȤ·¤Æ½ñ¤«¤ì¤Æ¤¤¤ëÉôʬ¤òÆɤó¤Ç°Ê²¼Æ±ÍͤˡĤȤ¤¤¦¤³¤È¤òºÆµ¢Åª¤Ë·«¤êÊÖ¤»¤Ð¥µ¥é¥À¤¬´°À®¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡¥
ÃúÇ«¤Ë¹Í¤¨¤ì¤Ðή¤ì¤¬¤ï¤«¤ë¤À¤í¤¦¡¥
¤è¤Ã¤Æ¡¤¤³¤ì¤Ç make ή¤Î¥ì¥·¥Ô¤Î´°À®¤Ç¤¢¤ë¡¥
¤·¤«¤â¼ÂºÝ¤Îºî¶È¤Ï make ¤È¤¤¤¦ÎÁÍý¿Í¤¬¤ä¤Ã¤Æ¤¯¤ì¤ë¤Î¤À¤«¤é¡¤¤ï¤ì¤ï¤ì¤Î»Å»ö
¤Ï¤³¤Î¥ì¥·¥Ô¤ò½ñ¤¯¤À¤±¤Ç½ªÎ»¤Ê¤Î¤À¡¥
¤µ¤Æ¡¤¼¡¤Ë make ¤Îʸˡ¤Ç¤³¤Î¥ì¥·¥Ô¤ò½ñ¤¯¤³¤È¤ò¹Í¤¨¤è¤¦¡¥
Ä̾ï¤Ï Makefile ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤³¤à¡¥
¤½¤·¤Æ¤½¤ÎÃæ¿È¤Ï¡¤ make ¤Îʸˡ¤Ë±è¤¦¤Ê¤é¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
¢£ ¾å¤Î¥ì¥·¥Ô¤ò make ¤Îʸˡ¤Ë±è¤Ã¤Æ Makefile ¤È¤·¤Æ½ñ¤¯¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë ¢£
¥µ¥é¥À´°À®ÉÊ¡§␣ŬÀÚÀ¶·é¿·Á¯ÌîºÚ␣¥É¥ì¥Ã¥·¥ó¥°␣åºÎï¤Ê´ï
____␉____ɬÍ×Éʤκǽé¤òºÇ¸å¤ËÆþ¤ì¡¤ÆóÈÖÌܤò¤Õ¤ê¤«¤±¤ë
ŬÀÚÀ¶·é¿·Á¯ÌîºÚ:␣À¶·é¿·Á¯ÌîºÚ
____␉____ɬÍ×ÉʤòŬÅö¤Ë¥«¥Ã¥È
À¶·é¿·Á¯ÌîºÚ:␣¿·Á¯ÌîºÚ
____␉____ ɬÍ×ÉʤòÀö¤¦
¥É¥ì¥Ã¥·¥ó¥°:␣¿Ý␣¥µ¥é¥ÀÌý␣¾ßÌý␣±ö␣¥³¥·¥ç¥¦
____␉____ ɬÍ×ÉʤòŬÎÌ¡¤Å¬Å٤˺®¤¼¤ë
* ¤¿¤À¤·¡¤ ____␉____ ¤Ï, ¥¿¥Ö(tab ¥¡¼¤ò°ì²ó²¡¤¹¤ÈÆþÎϤǤ¤ë)¤Î¤³¤È¤Ç¤¢¤ë.
¤³¤³¤ÇɬÍפÊʸˡ¤Ï¤¿¤Ã¤¿2¤Ä¤Ç¡¤
¤À¤±¤Ç¤¢¤ë¡¥
´Êñ¤À¤í¤¦¡ª
¤µ¤Æ¡¤¤³¤¦¤ä¤Ã¤Æ¥ì¥·¥Ô¤¹¤Ê¤ï¤Á Makefile ¤¬´°À®¤·¤¿¤é¡¤¤¢¤È¤Ï¡¤
make
¤ÈÂǤĤÀ¤±¤Ç(ºàÎÁ¤¬Â·¤Ã¤Æ¤¤¤ë¤Ê¤é¤Ð)¡¤make ¥³¥Þ¥ó¥É¤¬¤³¤Î¥ì¥·¥Ô¤Ë¤½¤Ã¤Æºî¶È¤ò¤·¤Æ¡¤¥µ¥é¥À¤¬´°À®¤¹¤ë¤È¤¤¤¦¤ï¤±¤Ç¤¢¤ë¡¥
What will happen if you change something and "make" again? ¥µ¥é¥À¤ËÎ㤨¤ë: ÅÓÃ椫¤é¤ä¤êľ¤¹¤È¤·¤¿¤é? †
¤µ¤Æ¡¤¾å¤Î¥ì¥·¥Ô¤ò½ñ¤¡¤ÎÁÍý¿Í¤Ë¥µ¥é¥À¤òºî¤Ã¤Æ¤â¤é¤Ã¤¿¸å¤Ç¡¤ ¿Ý¤¬¸Å¤«¤Ã¤¿¤³¤È¤Ëµ¤¤Å¤¤¤Æ¿·¤·¤¤¿Ý¤Ç¥µ¥é¥À¤òºî¤êľ¤·¤¿¤¤¤È»×¤Ã¤¿¤È¤·¤è¤¦¡¥ ¤¿¤À¤·¡¤ÅÓÃæ¤Ç¤Ç¤¤¿ÉʤϽ¼Ê¬¤Ë;¤Ã¤Æ¤¤¤ë¤È¤·¤Æ¤ª¤³¤¦*2¡¥
¤¹¤ë¤È¤³¤Î¾ì¹ç¡¤É¬Íפʺî¶È¤Ï
- ¥É¥ì¥Ã¥·¥ó¥°¤ÎºîÀ®
- ¥µ¥é¥À¤Î´°À®(ŬÀÚÀ¶·é¿·Á¯ÌîºÚ¤Ï¤µ¤Ã¤ºî¤Ã¤Æ;¤Ã¤Æ¤¤¤ë¤â¤Î¤ò»È¤¨¤ë¤Î¤Ç)
¤È¤¤¤¦¡¤¤¿¤Ã¤¿2¹ÔÄø¤ÇÎɤ¤¡¥ ¤·¤«¤·¡¤¤³¤Î¡Ö2¹ÔÄø¤ÇÎɤ¤¡×¤È¤¤¤¦¶ñÂÎŪ¤Ê»ö¼Â¤òÎÁÍý¿Í(make)¤Ë¤É¤¦¤ä¤Ã¤Æ»Ø¼¨¤¹¤ì¤Ð¤è¤¤¤«? ¼Â¤Ï¤³¤Î»Ø¼¨¤Ï¶ñÂÎŪ¤ËÅÁ¤¨¤Ê¤¯¤Æ¤è¤¤¤Î¤À¡¥ make ¤¬¡Ö¥â¥Î¡×¤ÎÀ½Â¤»þ´Ö¤òÈæ³Ó¤·¤Æ¾¡¼ê¤ËȽÃǤ·¤Æ¤¯¤ì¤ë¤Î¤Ç¤¢¤ë¡¥
¤Ä¤Þ¤ê¡¤¿Ý¤ò¼è¤êÂؤ¨¤¿¤¢¤È¤Ç¤â¤¦°ìÅÙ
make
¤ÈÂǤĤÀ¤±¤Ç¡¤¾¡¼ê¤Ë¤³¤Î2¹ÔÄø¤À¤±¤ä¤êľ¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¤¢¤ë¡¥ ¤³¤Î¤è¤¦¤Ë¡¤
¤Î¤Ç¤¢¤ë. ¤³¤ì¤¬ make ¤Î¤È¤Æ¤âÊØÍø¤ÊÅÀ¤Ç¤¢¤ë¡¥
The simplest example: ñ½ã¤ÊÎã †
¤Ç¤Ï¡¤¥×¥í¥°¥é¥à¤Ç¼ÂºÝ¤Ë¤ä¤Ã¤Æ¤ß¤è¤¦¡¥ ºÇ½é¤Ï¤´¤¯´Êñ¤Ë¡¤¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¤¼Â¹Ô¤¹¤ë¤È¤¤¤¦Ã±½ã¤ÊÆóÃʳ¬¤Îºî¶È¤ò¤µ¤»¤Æ¤ß¤è¤¦¡¥
¼Â½¬:
°Ê²¼¤Î¼ê½ç¤Ë½¾¤¤¡¤Å¬Åö¤Ê¼Â½¬Íѥǥ£¥ì¥¯¥È¥ê¤Ç make ¤òÆ°¤«¤·¤Æ¤ß¤ë¡¥
¤¿¤À¤·¡¤¤¿¤À¤ä¤ë¤À¤±¤Ç¤Ï¤Ê¤¯¡¤Á´ÂΤÎή¤ì¤òÍý²ò¤·¤Ê¤¬¤é¤ä¤í¤¦¡¥¥¿¥¤¥×¤¹¤ë¤À¤±¤Ç¤Ï°ÕÌ£¤¬¥Ê¥¤¤¾¡¥
- ¤Þ¤º¡¤f_sin.c ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
#include <stdio.h> #include <math.h> main () { double x,dx; dx = 1.0/100; x = 0.0; for ( x = 0.0; x <= 0.5+dx; x += dx) { printf("%6.3f %6.3f\n", x, sin(x)); } return 0; }
²¿¤ò¤¹¤ë¥×¥í¥°¥é¥à¤«, Æɲò¤·¤Æ¤ª¤³¤¦¡¥
- Ʊ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë Makefile ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
2, 3, 6¹ÔÌܤϡ֥¿¥Ö¡×+¡Öºî¶È¥³¥Þ¥ó¥É¡×¤Î·Á¼°¤Ç½ñ¤¯¤³¤È¡ª¡ª¡ª¤³¤Î·Á¼°¤Ç¤Ê¤¤¤È¤Þ¤º¤¤*3¡¥f_sin.dat:␣f_sin.exe
____␉____ \rm␣-f␣f_sin.dat
____␉____ ./f_sin.exe␣>␣f_sin.dat
f_sin.exe:␣f_sin.c
____␉____ gcc␣-lm␣f_sin.c␣-o␣f_sin.exe
¥¿¥Ö¤òÌÀµ¤¹¤ë¤¿¤á¤Ë¡¤¤¤¤Ä¤â¤È¾¯¤·°ã¤¦É½µ¤ò¤·¤Æ¤¤¤ë. ¥³¥Ô¥Ú¤Ç¤¤Ê¤¤¤Î¤Ç¼«ÎϤÇÆþÎϤ·¤è¤¦¡¥
²¿¤ò¤¹¤ë¥ì¥·¥Ô¤«, Æɤó¤Ç³Îǧ¤·¤Æ¤ª¤³¤¦¡¥
- make ¤·¤Æ¤ß¤ë¡¥
make
- ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¤f_sin.c ¤È¤¤¤¦¥×¥í¥°¥é¥à¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¤¼Â¹Ô¤µ¤ì¡¤¤½¤Î·ë²Ì¤Î f_sin.dat ¤È¤¤¤¦¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤¬¤Ç¤¤Æ¤¤¤ë¤Ï¤º¤À¡¥
¤½¤ÎÆâÍƤò¡¤Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤·¤ÆÇÁ¤¤¤Æ¤ß¤è¤¦¡¥
less␣f_sin.dat
- ·ë²Ì¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ò¾Ã¤·¤Æ¤ß¤è¤¦¡¥
rm␣f_sin.dat
- ºÆ¤Ó make ¤·¤Æ¤ß¤ë¡¥
¤³¤Î»þ¡¤¤É¤Îºî¶È¤¬¹Ô¤ï¤ì¤ë¤«¡¤Ãí°Õ¿¼¤¯¸«¤Æ¤ª¤³¤¦¡¥Àè¤È°Û¤Ê¤ë¤Ï¤º¤À¡¥make
- ºÆ¤Ó¼Â¹Ô·ë²Ì¤¬¤Ç¤¤Æ¤¤¤ë¤Ï¤º¤Ê¤Î¤Ç³Îǧ¤·¤è¤¦¡¥
less␣f_sin.dat
- º£ÅÙ¤Ï¥×¥í¥°¥é¥à¤ò½¤Àµ¤·¤Æ¤ß¤è¤¦¡¥
¶ñÂÎŪ¤Ë¤Ï¡¤f_sin.c ¤Î for ¤Î¹Ô¤ò
for ( x = 0.0; x <= 1.0+dx; x += dx) {
¤È½¤Àµ¤·¤Æ¤ß¤ë(0.5 ¤À¤Ã¤¿¤È¤³¤í¤ò 1.0 ¤Ë½¤Àµ¤¹¤ë)¡¥
- ºÆ¤Ó make ¤·¤Æ¤ß¤ë¡¥
make
- º£Å٤μ¹Էë²Ì¤Ï°Û¤Ê¤ë¤Ï¤º¤À¡¥¸«¤Æ¤ß¤è¤¦¡¥
less␣f_sin.dat
¤¤¤í¤ó¤ÊÊѹ¹¤ò¤·¤Æ¤â¡¤¤¤¤Ä¤Ç¤â make ¥³¥Þ¥ó¥É¤À¤±¤ÇºÑ¤à¡ª ÊØÍø¤Ê¤³¤È¤Ëµ¤ÉÕ¤³¤¦¡¥
Simple example: ¤Á¤ç¤Ã¤ÈÊ£»¨¤Ë¤Ê¤Ã¤¿Îã †
¼¡¤Ë¡¤º£¤ÎÎã¤ò¤Á¤ç¤Ã¤È¤À¤±½¤Àµ¤·¤Æ¡¤¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¤¼Â¹Ô¤·¤Æ¡¤¤µ¤é¤Ë¤½¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤«¤é¥°¥é¥Õ¤òºîÀ®¤¹¤ë¤È¤¤¤¦¡¤»°Ãʳ¬¤Îºî¶È¤ò¤µ¤»¤Æ¤ß¤è¤¦¡¥
¼Â½¬:
Àè¤Î³¤¤Î·Á¤Ë¤Ê¤ë¡¥Â³¤¤È¤·¤Æ¡¤°Ê²¼¤Î¤è¤¦¤Ë¤ä¤Ã¤Æ¤ß¤è¤¦¡¥
- Àè¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë sin2eps.gpl ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
set output "f_sin.eps" set term postscript plot "f_sin.dat" w l
ºÇ¸å¤Î¹Ô¤ÎºÇ¸å¤Îʸ»ú¤Ï l(¾®Ê¸»ú¤Î¥¨¥ë)¤À¡¥
ºÇ¸å¤Î¹Ô¤ò¤¤Ã¤Á¤ê²þ¹Ô¤·¤Æ¤ª¤¯¤³¤È¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¡ª
- Makefile ¤ÎÃæ¿È¤ò°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë(ÀèƬ¤Ë»°¹Ô¤¬²Ã¤ï¤ë)¡¥
¡Öºî¶È¡×¤Î¹Ô¤Ï¡Ö¥¿¥Ö¡×+¥³¥Þ¥ó¥É¤Ç¤¢¤ë¤³¤È¤ò˺¤ì¤º¤Ë¡ªf_sin.eps:␣f_sin.dat
____␉____ gnuplot␣"sin2eps.gpl"
f_sin.dat:␣f_sin.exe
____␉____ \rm␣-f␣f_sin.dat
____␉____ ./f_sin.exe␣>␣f_sin.dat
f_sin.exe:␣f_sin.c
____␉____ gcc␣-lm␣f_sin.c␣-o␣f_sin.exe
¤³¤³¤â¡¤¥¿¥Ö¤òÌÀµ¤¹¤ë¤¿¤á¤Ë¤¤¤Ä¤â¤È¾¯¤·°ã¤¦É½µ¤ò¤·¤Æ¤¤¤ë. ¥³¥Ô¥Ú¤Ç¤¤Ê¤¤¤Î¤Ç¼«ÎϤÇÆþÎϤ·¤è¤¦¡¥
²¿¤ò¤¹¤ë¥ì¥·¥Ô¤Ë¤Ê¤Ã¤¿¤«, ¤³¤ì¤âÆɤó¤Ç³Îǧ¤·¤Æ¤ª¤³¤¦¡¥
- make ¤·¤Æ¤ß¤ë¡¥
make
- ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¤f_sin.eps ¤È¤¤¤¦²èÁü¥Õ¥¡¥¤¥ë¤¬¤Ç¤¤Æ¤¤¤ë¤Î¤Ç¡¤¸«¤Æ¤ß¤è¤¦.
GUI ¤Ç¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥Þ¥¦¥¹¤Ç¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤â¤è¤·¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤â¤¤¤±¤ë¤À¤í¤¦¡¥
gv␣f_sin.eps␣&
¤³¤Î¥³¥Þ¥ó¥É̾¤Ï´Ä¶¤Ë¤è¤Ã¤Æ¤Ï¡¤gv ¤Ç¤Ï¤Ê¤¯¡¤ggv ¤«¤â¤·¤ì¤Ê¤¤¡¥ gv ¤Ç¤Ï¥À¥á¤Ê¤È¤¤Ï»î¤·¤Æ¤ß¤è¤¦¡¥
¤³¤Î¤è¤¦¤Ë¡¤ºî¶È¤¬²¿Ãʳ¬¤«¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¤â make ¤ÏÌäÂê¤Ê¤¯»È¤¨¤ë¡¥
Something complicated: ¤â¤¦¤Á¤ç¤Ã¤È¤À¤±Â³¤¯¤ó¤¸¤ã¡Ä †
¤µ¤Æ¡¤º£Å٤ϡ¤¾å¤Îºî¶È¤ò 3¤Ä¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¡¤3¤Ä¤Î¼Â¹Ô¥Õ¥¡¥¤ ¥ë¤ò¼Â¹Ô¤·¡¤3¤Ä¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òºî¤é¤»¤Æ¡¤¤½¤ì¤òÅý¹ç¤·¤¿¥°¥é¥Õ¥Õ¥¡¥¤¥ë ¤ò1¤Äºî¤ë¤È¤¤¤¦¤â¤Î¤Ë¤·¤è¤¦¡¥ ¤Ê¤Ë¡¤Íý¶þ¤¬¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð´Êñ¤À¡¥
¼Â½¬:
Àè¤Î³¤¤Î·Á¤Ë¤Ê¤ë¡¥Â³¤¤È¤·¤Æ¡¤°Ê²¼¤Î¤è¤¦¤Ë¤ä¤Ã¤Æ¤ß¤è¤¦¡¥
- f_cos.c ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
#include <stdio.h> #include <math.h> main () { double x,dx; dx = 1.0/100; x = 0.0; for ( x = 0.0; x <= 1.0+dx; x += dx) { printf("%6.3f %6.3f\n", x, cos(x)); } return 0; }
²¿¤ò¤¹¤ë¥×¥í¥°¥é¥à¤«, Æɲò¤·¤Æ¤ª¤³¤¦¡¥
- f_sqr.c ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
#include <stdio.h> #include <math.h> main () { double x,dx; dx = 1.0/100; x = 0.0; for ( x = 0.0; x <= 1.0+dx; x += dx) { printf("%6.3f %6.3f\n", x, x*x); } return 0; }
¤³¤ì¤â²¿¤ò¤¹¤ë¥×¥í¥°¥é¥à¤«, Æɲò¤·¤Æ¤ª¤³¤¦¡¥
- Makefile ¤ÎÃæ¿È¤ò°Ê²¼¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë(¤À¤¤¤ÖÊѤï¤ë¤Î¤ÇÃí°Õ¿¼¤¯ºî¶È¤·¤è¤¦)¡¥
¡Öºî¶È¡×¤Î¹Ô¤Ï¡Ö¥¿¥Ö¡×+¥³¥Þ¥ó¥É¤Ç¤¢¤ë¤³¤È¤ò˺¤ì¤º¤Ë¡ªall.eps:␣f_sin.dat␣f_cos.dat␣f_sqr.dat
____␉____ gnuplot␣"all2eps.gpl"
f_sin.dat:␣f_sin.exe
____␉____ \rm␣-f␣f_sin.dat
____␉____ ./f_sin.exe␣>␣f_sin.dat
f_cos.dat:␣f_cos.exe
____␉____ \rm␣-f␣f_cos.dat
____␉____ ./f_cos.exe␣>␣f_cos.dat
f_sqr.dat:␣f_sqr.exe
____␉____ \rm␣-f␣f_sqr.dat
____␉____ ./f_sqr.exe␣>␣f_sqr.dat
f_sin.exe:␣f_sin.c
____␉____ gcc␣-lm␣f_sin.c␣-o␣f_sin.exe
f_cos.exe:␣f_cos.c
____␉____ gcc␣-lm␣f_cos.c␣-o␣f_cos.exe
f_sqr.exe:␣f_sqr.c
____␉____ gcc␣-lm␣f_sqr.c␣-o␣f_sqr.exe
¤³¤³¤â¡¤¥¿¥Ö¤òÌÀµ¤¹¤ë¤¿¤á¤Ë¤¤¤Ä¤â¤È¾¯¤·°ã¤¦É½µ¤ò¤·¤Æ¤¤¤ë. ¥³¥Ô¥Ú¤Ç¤¤Ê¤¤¤Î¤Ç¼«ÎϤÇÆþÎϤ·¤è¤¦¡¥
²¿¤ò¤¹¤ë¥ì¥·¥Ô¤Ë¤Ê¤Ã¤¿¤«, ¤³¤ì¤âÆɤó¤Ç³Îǧ¤·¤Æ¤ª¤³¤¦¡¥
- Àè¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë all2eps.gpl ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤¹þ¤ó¤Ç¤ª¤¯¡¥
set output "all.eps" set term postscript plot "f_sin.dat" w l,"f_cos.dat" w l,"f_sqr.dat" w l
ºÇ¸å¤Î¹Ô¤Î½ÄËÀ¤Ã¤Ý¤¤Ê¸»ú¤ÏÁ´¤Æ l(¾®Ê¸»ú¤Î¥¨¥ë)¤À¡¥
ºÇ¸å¤Î¹Ô¤ò¤¤Ã¤Á¤ê²þ¹Ô¤·¤Æ¤ª¤¯¤³¤È¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¡ª
- make ¤·¤Æ¤ß¤ë¡¥
make
- ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¤all.eps ¤È¤¤¤¦²èÁü¥Õ¥¡¥¤¥ë¤¬¤Ç¤¤Æ¤¤¤ë¤Î¤Ç¡¤¸«¤Æ¤ß¤è¤¦.
GUI ¤Ç¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥Þ¥¦¥¹¤Ç¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤â¤è¤·¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤â¤¤¤±¤ë¤À¤í¤¦¡¥
gv␣all.eps␣&
- ¥×¥í¥°¥é¥à¤Î¤¤¤º¤ì¤«¤òŬÅö¤Ë½¤Àµ¤·¤Æ¤ß¤è¤¦¡¥ÆâÍƤϥ°¥é¥Õ¤¬¤ª¤«¤·¤¯¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¤â¤Î¤Ê¤é¤Ê¤ó¤Ç¤âÎɤ¤¡¥
- ºÆ¤Ó make ¤·¤Æ¤ß¤ë¡¥
make
- º£Å٤μ¹Էë²Ì¤Ï°Û¤Ê¤ë¤Ï¤º¤À¡¥¸«¤Æ¤ß¤è¤¦¡¥
gv␣all.eps␣&
Advanced syntax: make ¤Îʸˡ¤ò¤¤Á¤ó¤È»È¤¦¤È³Ú¤Ç¤¤ëÎã †
Àè¤Î Makefile ¤ò¸«¤ë¤È¡¤»÷¤¿¤è¤¦¤Ê¤³¤È¤¬²¿²ó¤â½ñ¤«¤ì¤Æ¤¤¤Æ¡¤ÌÌÅݤʾå¤Ë´Ö°ã¤¨¤ä¤¹¤¤¡¥ ¤â¤Á¤í¤ó¡¤make ¤Îʸˡ¤Ï¤³¤¦¤¤¤¦¤³¤È¤Ï¹îÉþ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥ Î㤨¤ÐÀè¤Î Makefile ¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ê¡¤¥·¥ó¥×¥ë¤Ê Makefile ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
.SUFFIXES␣:␣.dat␣.exe
DATA␣=␣f_sin.dat␣f_cos.dat␣f_sqr.dat
.c.exe:
____␉____ gcc␣-lm␣$<␣-o␣$@
.exe.dat:
____␉____ \rm␣-f␣$@
____␉____ ./$<␣>␣$@
all.eps:␣$(DATA)
____␉____ gnuplot␣"all2eps.gpl"
$(DATA):
¾å¤Î Makefile Ãæ¤Ë¤Ï·«¤êÊÖ¤·¤Îµ½Ò¤¬Ìµ¤¤¤³¤È¤ËÃí°Õ¤·¤è¤¦¡¥ÌµÂ̤â¥Ð¥°¤Î²¹¾²¤â¤Ê¤¯¤Ê¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡¥
¼Â½¬:(;͵¤¬¤¢¤ë¤Ê¤é¤Ð) make ¤Îʸˡ¤òÄ´¤Ù¡¤¾å¤Î Makefile ¤òÍý²ò¤·¤è¤¦¡¥
Report: ¥ì¥Ý¡¼¥È †
°Ê²¼¤Î²ÝÂê¤Ë¤Ä¤¤¤Æǽ¤¦¸Â¤ê¸ÌÀ¤ÊÄ´ºº¤È¹Í»¡¤ò¹Ô¤¤¡¤
AppliedMath7-Report-11
¤È¤¤¤¦Âê̾¤ò¤Ä¤±¤Æ e-mail ¤Ë¤Æ¶µ´±°¸¤Ë¥ì¥Ý¡¼¥È¤È¤·¤ÆÄó½Ð¤»¤è. ¤Ê¤ª¡¤¥ì¥Ý¡¼¥È¤ò e-mail ¤ÎÂå¤ï¤ê¤Ë TeX ¤ÇºîÀ®¤·¤¿½ñÌ̤ˤÆÄó½Ð¤·¤Æ¤â¤è¤¤.
Exercises: ²ÝÂê †
- Makefile ¤ò½¤Àµ¤·¤Æ¡¤¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë(.c ¤È¤Ä¤¤¤Æ¤¤¤ë¤â¤Î)¤Î¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤ò¤µ¤»¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤è.
- Makefile ¤Ë¤µ¤é¤ËÄɲ䷤ơ¤¤Ç¤¤¿¥°¥é¥Õ¥Õ¥¡¥¤¥ë¤ò°µ½Ì¤¹¤ëµ¡Ç½¤ò¤Ä¤±¤Æ¤ß¤è¡¥
- TeX ¤¬»È¤¨¤ë¤â¤Î¤Ï¡¤º£²ó¤Î¼ø¶ÈÎã¤ò½¤Àµ¤·¤Æ TeX ¤òÍí¤á¤é¤ì¤Ê¤¤¤«¹Í¤¨¤Æ¤ß¤è¡¥
about Icons, ClipArts †
For details, see this.