ÇÑ ½Ã½ºÅÛÀ» ´Ù½Ã ÄÄÆÄÀÏÇÏ´Â ¹æ¹ýÀ» make
¿¡°Ô ¾Ë·ÁÁÖ´Â Á¤º¸´Â
¸ÞÀÌÅ©ÆÄÀÏ(makefile)À̶ó°í ÇÏ´Â µ¥ÀÌŸº£À̽º¸¦ ÀÐÀ½À¸·Î½á
¾ò¾îÁø´Ù.
¸ÞÀÌÅ©ÆÄÀÏÀº ´Ù¼¸°¡Áö Á¾·ùÀÇ °ÍµéÀÌ µé¾î ÀÖ´Ù: ¸í½ÃÀû ·ê, ¾Ï¹¬ÀûÀÎ ·ê, º¯¼ö Á¤ÀÇ, Áö½Ã¾î, ±×¸®°í ÁÖ¼®¹®ÀÌ´Ù. ·ê, º¯¼ö, ±×¸®°í Áö½Ã¾î´Â µÚ¿¡¼ ´õ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.
objects
º¯¼ö °ªÀ» ¸ðµç ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ ¸®½ºÆ®·Î Á¤ÀÇÇÑ
º¯¼ö Á¤ÀǸ¦ º¸¿©ÁØ´Ù. (see section º¯¼ö´Â ¸ÞÀÌÅ©ÆÄÀÏÀ» °£´ÜÇÏ°Ô ¸¸µç´Ù)
make
°¡ ¹º°¡
Ưº°ÇÑ ÀÛ¾÷À» Çϵµ·Ï ¸¸µå´Â ¸í·É¾îÀÌ´Ù. Áö½Ã¾î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ´Ù:
define
Áö½Ã¾î ³»ºÎ, ±×¸®°í
¸í·É¾î ³»ºÎ(¿©±â¼´Â ¼ÐÀÌ ÁÖ¼®¹® ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù)¸¦ Á¦¿ÜÇÑ Á¦¿ÜÇÑ
¸ÞÀÌÅ©ÆÄÀÏÀÇ ¾î¶² ÁÙ¿¡¼µµ ³ªÅ¸³¯ ¼ö ÀÖ´Ù. ÄÚ¸àÆ®°¡ µé¾î ÀÖ´Â ÁÙ(ÁÖ¼®¹®
¾Õ¿¡ °ø¹éÀÌ µé¾î ÀÖÀ»Áöµµ ¸ð¸£´Â)Àº ºñ¾î ÀÖ´Â °Í°ú ¸¶Âù°¡ÁöÀÌ°í,
¹«½ÃµÈ´Ù.
±âº» »çÇ×À¸·Î, make
°¡ ¸ÞÀÌÅ©ÆÄÀÏÀ» ãÀ» ¶§, ´ÙÀ½ À̸§µéÀ»
¼ø¼´ë·Î ½ÃµµÇÑ´Ù: `GNUmakefile', `makefile' ±×¸®°í ¸¶Áö¸·À¸·Î
`Makefile'ÀÌ´Ù.
º¸Åë ¸ÞÀÌÅ©ÆÄÀÏÀ» `makefile'À̳ª `Makefile'À̶ó°í À̸§ÁöÀ»
°ÍÀÌ´Ù. (¿ì¸®´Â `Makefile'À» ÃßõÇÑ´Ù. ÀÌ·¸°Ô Çϸé ÀÌ ÆÄÀÏÀº
µð·ºÅ丮 ¸®½ºÆ®ÀÇ Ã³À½ºÎºÐ¿¡ `README'¿Í °°Àº Áß¿äÇÑ ÆÄÀÏµé ´ÙÀ½¿¡
³ªÅ¸³¯ °ÍÀ̱⠶§¹®ÀÌ´Ù.) ù¹ø°·Î °Ë»çµÇ´Â À̸§Àº `GNUmakefile'Àº
´ëºÎºÐÀÇ ¸ÞÀÌÅ©ÆÄÀÏÀÇ °æ¿ì ÃßõµÇÁö ¾Ê´Â´Ù. GNU make
Àü¿ë
¸ÞÀÌÅ©ÆÄÀÏÀÏ °æ¿ì¿¡¸¸ ÀÌ À̸§À» »ç¿ëÇØ¾ß ÇÏ°í, ÀÌ À̸§Àº ´Ù¸¥
make
¹öÀü¿¡¼´Â ÀÌÇØÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ´Ù¸¥ make
ÇÁ·Î±×·¥Àº `makefile'°ú `Makefile'À» °Ë»çÇÏ°í,
`GNUmakefile'Àº °Ë»çÇÏÁö ¾Ê´Â´Ù.
make
°¡ ÀÌ·± À̸§ÀÇ ÆÄÀÏÀ» Çϳªµµ ãÁö ¸øÇÑ °æ¿ì, ¸ÞÀÌÅ©ÆÄÀÏÀ»
¾Æ¿¹ »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ °æ¿ì¿¡´Â make
¸í·ÉÀÇ ÀÎÀÚ·Î °ñÀ»
ÁöÁ¤ÇØ¾ß ÇÏ°í, make
´Â ÀÌ¹Ì ³»ºÎ¿¡ µé¾î ÀÖ´Â ¾Ï¹¬ÀûÀÎ ·ê¸¸À»
»ç¿ëÇØ ±× °ñÀ» ´Ù½Ã ¸¸µå·Á°í ½ÃµµÇÒ °ÍÀÌ´Ù. See section ¾Ï¹¬ÀûÀÎ ·ê »ç¿ëÇϱâ.
¸ÞÀÌÅ©ÆÄÀÏ À̸§À¸·Î Ç¥ÁØÀÌ ¾Æ´Ñ À̸§À» ¾²°í ½ÍÀ¸¸é, `-f' ȤÀº
`--file' ¿É¼Ç¿¡ ±× ¸ÞÀÌÅ©ÆÄÀÏÀÇ À̸§À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. `-f
name' ȤÀº `--file=name' ÀÎÀÚ¸¦ ÁÖ¸é make
´Â
¸ÞÀÌÅ©ÆÄÀÏ·Î name ÆÄÀÏÀ» Àд´Ù. ÇÑ °³ ÀÌ»óÀÇ `-f' ȤÀº
`--file' ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¿©·¯°³ÀÇ ¸ÞÀÌÅ©ÆÄÀÏÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¸ðµç ¸ÞÀÌÅ©ÆÄÀÏÀº ÁöÁ¤ÇÑ ¼ø¼´ë·Î ¿¬°áµµ´Ï´Ù. ±âº» ¸ÞÀÌÅ©ÆÄÀÏÀÇ À̸§ÀÎ
`GNUmakefile', `makefile' ±×¸®°í `Makefile'Àº `-f'
ȤÀº `--file'À» ÁöÁ¤ÇßÀ» °æ¿ì ÀÚµ¿À¸·Î °Ë»çµÇÁö ¾Ê´Â´Ù.
include
Áö½Ã¾î¸¦ »ç¿ëÇϸé make
´Â Àá½Ã ÇöÀç ¸ÞÀÌÅ©ÆÄÀÏ
Àб⸦ Áß´ÜÇÏ°í ¶Ç´Ù¸¥ ¸ÞÀÌÅ©ÆÄÀÏÀ» ÀÐÀº ´ÙÀ½ ÇöÀç ¸ÞÀÌÅ©ÆÄÀÏÀ»
°è¼ÓÇؼ Àд´Ù. ¸ÞÀÌÅ©ÆÄÀÏ¿¡¼ ÀÌ Áö½Ã¾î´Â ´ÙÀ½°ú °°ÀÌ ¾´´Ù:
include ÆÄÀÏÀ̸§...
ÆÄÀÏÀ̸§À¸·Î ¼¿ ¹æ½ÄÀÇ ÆÄÀÏÀ̸§ ÆÐÅÏÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÁÙÀÌ ½ÃÀÛÇÒ ¶§ °ø¹éÀ» ³Ö¾îµµ µÇ°í, ÀÌ °ø¹éÀº ¹«½ÃµÈ´Ù. ÇÏÁö¸¸ ÅÇÀº ¾µ
¼ö ¾ø´Ù. (ÁÙÀÌ ÅÇÀ¸·Î ½ÃÀÛÇÏ¸é ±× ÁÙÀº Ä¿¸Çµå ¶óÀÎÀ¸·Î ÀÌÇØÇÒ °ÍÀÌ´Ù.)
include
¿Í ÆÄÀÏ À̸§ »çÀÌ, ±×¸®°í ÆÄÀÏ À̸§µé »çÀÌ¿¡ °ø¹éÀ» ³Ö¾î¾ß
ÇÑ´Ù; ¿©±â¿¡ °ø¹éÀ» ¿©·¯°³ ³Ö°Å³ª ÁÙÀÇ ³¡¿¡ °ø¹éÀ» ³Ö¾îµµ ¹«½ÃµÈ´Ù. ÁÙ
³¡¿¡ `#'·Î ½ÃÀÛÇÏ´Â ÁÖ¼®¹®À» ¾µ ¼öµµ ÀÖ´Ù. ÆÄÀÏ À̸§¿¡ º¯¼ö³ª ÇÔ¼ö
ÂüÁ¶°¡ µé¾î ÀÖÀ¸¸é, ±× º¯¼ö³ª ÇÔ¼ö´Â ±× °ªÀ¸·Î ´ëüµÈ´Ù.
¿¹¸¦ µé¾î, `a.mk', `b.mk', ±×¸®°í `c.mk' ¼¼°³ÀÇ
`.mk' ÆÄÀÏÀÌ ÀÖ°í, $(bar)
ÀÇ °ªÀÌ bish bash
ÀÎ °æ¿ì,
´ÙÀ½
include foo *.mk $(bar)
´Â ´ÙÀ½°ú °°´Ù.
include foo a.mk b.mk c.mk bish bash
make
°¡ include
Áö½Ã¾î¸¦ ó¸®ÇÒ ¶§, include
°¡ µé¾î
ÀÖ´Â ¸ÞÀÌÅ©ÆÄÀÏ Àб⸦ Àá½Ã Áß´ÜÇÏ°í include
¿¡ ¿°ÅµÈ ÆÄÀϵéÀ»
¼ø¼´ë·Î Àд´Ù. ÀбⰡ ¸ðµÎ ³¡³ª¸é, make
´Â include
Áö½Ã¾î°¡ µé¾î ÀÖ´Â ¸ÞÀÌÅ© ÆÄÀÏ Àб⸦ ´Ù½Ã °è¼ÓÇÑ´Ù.
include
Áö½Ã¾î¸¦ »ç¿ëÇÏ´Â ÇÑ°¡Áö »óȲÀº ¿©·¯ °³ÀÇ µð·ºÅ丮¿¡ ÀÖ´Â
°¢ ¸ÞÀÌÅ©ÆÄÀϷΠ󸮵Ǵ ¿©·¯°³ÀÇ ÇÁ·Î±×·¥ÀÌ °°Àº Á¾·ùÀÇ º¯¼ö Á¤ÀǸ¦
»ç¿ëÇØ¾ß ÇÒ °æ¿ìÀÌ´Ù. (see section Setting Variables) or pattern
rules (see section Defining and Redefining Pattern Rules).
µµ´Ù¸¥ »óȲÀº ¼Ò½º ÆÄÀÏ¿¡¼ ÀÇÁ¸¼ºÀ» ÀÚµ¿À¸·Î ¸¸µé¾î ³»´Â °æ¿ìÀÌ´Ù;
ÀÇÁ¸¼ºÀº ¸ÞÀÎ ¸ÞÀÌÅ©ÆÄÀÏÀÌ Æ÷ÇÔÇÏ´Â ÆÄÀÏ ¾È¿¡ µé¾î ÀÖ°Ô µÈ´Ù. ÀÌ·¸°Ô
ÀÌ¿ëÇÏ´Â ÀÏÀº ¸ÞÀÎ ¸ÞÀÌÅ©ÆÄÀÏÀÇ ³¡¿¡ ÀÇÁ¸¼ºÀ» Ãß°¡ÇÏ´Â °Íº¸´Ù (´Ù¸¥
¹öÀüÀÇ make
¿¡¼ ÀüÅëÀûÀ¸·Î ÇØ ¿Ô´ø ¹æ¹ýÀÌ´Ù) ´õ ±ú²ýÇÑ ¹æ¹ýÀÌ´Ù.
See section Generating Dependencies Automatically.
¿©±â¼ ÁöÁ¤ÇÑ ÆÄÀÏ À̸§ÀÌ ½½·¡½¬·Î ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é¼, ÇöÀç µð·ºÅ丮¿¡ ¾øÀ¸¸é, ¸î°³ÀÇ ´Ù¸¥ µð·ºÅ丮µé¿¡¼ ÀÌ ÆÄÀÏÀ» ã¾Æº»´Ù. ¸Ç ¸Õ¹ö `-I' ȤÀº `--include-dir' ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÑ µð·ºÅ丮¿¡¼ ã´Â´Ù (see section Summary of Options). ±× ´ÙÀ½¿¡ ´ÙÀ½ µð·ºÅ丮(ÀÌ·± µð·ºÅ丮°¡ ÀÖ´Ù¸é)¿¡¼ ¼ø¼´ë·Î ã´Â´Ù: `prefix/include' (º¸Åë `/usr/local/include' (1)) `/usr/gnu/include', `/usr/local/include', `/usr/include'.
Æ÷ÇÔÇÒ ¸ÞÀÌÅ©ÆÄÀÏÀÌ ÀÌ µð·ºÅ丮µéÀÇ ¾îµð¿¡µµ ¾øÀ¸¸é, °æ°í ¸Þ¼¼Áö°¡
³ª¿ÀÁö¸¸, Áï½Ã·Î Ä¡¸íÀûÀÎ ¾Ö·¯°¡ µÇÁö´Â ¾Ê´Â´Ù; include
°¡ µé¾î
ÀÖ´Â ¸ÞÀÌÅ©ÆÄÀÏÀ» °è¼Ó ó¸®ÇÑ´Ù. ÀÏ´Ü ¸ÞÀÌÅ©ÆÄÀÏ Àб⸦ ¸¶Ä¡¸é,
make
´Â ¿À·¡µÇ¾ú°Å³ª Á¸ÀçÇÏÁö ¾Ê´Â ¸ÞÀÌÅ©ÆÄÀϵéÀ» ´Ù½Ã ¸¸µå·Á°í
½ÃµµÇÒ °ÍÀÌ´Ù. See section ¸ÞÀÌÅ©ÆÄÀÏ ´Ù½Ã ¸¸µå´Â ¹ý. ¸ÞÀÌÅ©ÆÄÀÏÀ» ´Ù½Ã ¸¸µå·Á°í ½ÃµµÇÏ°í ½ÇÆÐÇÑ ´ÙÀ½¿¡¼¾ß,
make
´Â ¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾ø´Ù´Â Ä¡¸íÀû ¾Ö·¯¸¦ ³½´Ù.
Á¸ÀçÇÏÁö ¾Ê°í, ´Ù½Ã ¸¸µé ¼ö ¾ø´Â ¸ÞÀÌÅ© ÆÄÀÏÀ» ¾Ö·¯ ¸Þ¼¼Áö
¾øÀÌ make
°¡ ¹«½ÃÇϵµ·Ï ÇÏ·Á¸é, -include
Áö½Ã¾î¸¦
include
´ë½Å¿¡ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù:
-include ÆÄÀÏÀ̸§...
ÀÌ°Ç ¸ðµç ¸é¿¡¼ include
°ú °°Áö¸¸ ÆÄÀÏÀ̸§ÀÌ ¾ø¾îµµ ¾Ö·¯¸¦
³»Áö ¾Ê´Â´Ù (°æ°í Á¶Â÷µµ ³»Áö ¾Ê´Â´Ù). ´Ù¸¥ ¹öÀüÀÇ make
¿Í
ȣȯµÇµµ·Ï Çϱâ À§ÇØ, -include
ÀÇ ¶Ç´Ù¸¥ À̸§À¸·Î
sinclude
°¡ ÀÖ´Ù.
MAKEFILES
MAKEFILES
MAKEFILES
ȯ°æº¯¼ö°¡ Á¤ÀǵǸé, make
´Â ÀÌ °ªÀ» ´Ù¸¥
¸ÞÀÌÅ©ÆÄÀÏÀ» Àбâ Àü¿¡ Àоî¾ß ÇÒ Ãß°¡ ¸ÞÀÌÅ©ÆÄÀÏÀÇ ÆÄÀÏÀ̸§
¸®½ºÆ®(°ø¹éÀ¸·Î ±¸ºÐµÈ)¶ó°í »ý°¢ÇÑ´Ù. ÀÌ È¯°æ º¯¼ö´Â include
Áö½Ã¾î¿Í ¾ÆÁÖ ºñ½ÁÇÏ°Ô µ¿ÀÛÇÑ´Ù: ¿©·¯°³ÀÇ µð·ºÅ丮¿¡¼ ÀÌ ÆÄÀÏÀÌ ÀÖ´ÂÁö
ã´Â´Ù (see section ´Ù¸¥ ¸ÞÀÌÅ©ÆÄÀÏ Æ÷ÇÔÇϱâ). ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù¸é,
±âº» °ñÀº ÀÌ ¸ÞÀÌÅ©ÆÄÀÏ¿¡ Àִ Ÿ°ÙÀ» »ç¿ëÇÏÁö ¾Ê°í, MAKEFILES
¿¡
¿°Åµµ´Ï ÆÄÀÏÀÌ ¾ø´õ¶óµµ ¾Ö·¯°¡ ¾Æ´Ï´Ù.
MAKEFILES
´Â make
¸¦ Àç±ÍÀûÀ¸·Î »ç¿ëÇÒ °æ¿ì °¢ make
»çÀÌÀÇ Åë½Å ¸ñÀûÀ¸·Î ÁÖ·Î »ç¿ëµÈ´Ù. make
¸¦ ¸Ç óÀ½ ½ÇÇàÇϱâ Àü¿¡
ÀÌ È¯°æº¯¼ö¸¦ ÁöÁ¤ÇÏ´Â ÀÏÀº, ¿ÜºÎÀÇ ¸ÞÀÌÅ©ÆÄÀ϶§¹®¿¡ ÇöÀç ÀдÂ
¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾û¸ÁÀÌ µÉ ¿°·Á°¡ ÀÖÀ¸¹Ç·Î º¸Åë ÁÁÁö ¾ÊÀº ÀÏÀÌ´Ù. ÇÏÁö¸¸
¾î¶² ¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾øÀÌ make
¸¦ ½ÇÇàÇÏ´Â °æ¿ì, MAKEFILES
ÀÇ
¸ÞÀÌÅ© ÆÄÀÏÀº ³»ºÎÀÇ ¾Ï¹¬ÀûÀÎ ·êµéÀ» ´õ Àß µ¿ÀÛ½ÃÅ°µµ·Ï ÇÏ´Â µ¥ ¸Å¿ì
À¯¿ëÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ã±â °æ·Î¸¦ Á¤ÀÇÇÏ´Â µ¥ À¯¿ëÇÏ°Ô
¾²Àδ٠(see section ÀÇÁ¸¼ºÀÌ µé¾î ÀÖ´Â µð·ºÅ丮 ã±â).
¾î¶² »ç¶÷µéÀº ·Î±äÇÒ ¶§ ÀÚµ¿À¸·Î MAKEFILES
°ªÀ» °áÁ¤Çϵµ·Ï
¸ÂÃç³õ°í, MAKEFILES
°ªÀÌ Á¸ÀçÇÑ´Ù°í °¡Á¤ÇÏ°í ¸ÞÀÌÅ©ÆÄÀÏÀ»
ÀÛ¼ºÇÑ´Ù. ÀÌ°Ç ¸Å¿ì ÁÁÁö ¾ÊÀº ¹æ¹ýÀÌ´Ù. ±×·¸°Ô ¸¸µé¾îÁø ¸ÞÀÌÅ© ÆÄÀÏÀº
´Ù¸¥ »ç¶÷ÀÌ »ç¿ëÇÒ ¶§ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù. ¸ÞÀÌÅ©
ÆÄÀÏ¿¡ Á÷Á¢ include
Áö½Ã¾î¸¦ ¾²´Â ÆíÀÌ ÈξÀ ÁÁ´Ù.
See section ´Ù¸¥ ¸ÞÀÌÅ©ÆÄÀÏ Æ÷ÇÔÇϱâ.
°¡²û ¸ÞÀÌÅ©ÆÄÀÏÀÌ ´Ù¸¥ ÆÄÀÏ¿¡¼ºÎÅÍ ´Ù½Ã ¸¸µé¾îÁö´Â °æ¿ìµµ ÀÖ´Ù. ¿¹¸¦
µé¾î RCS ȤÀº SCCS ÆÄÀÏ¿¡¼ºÎÅÍ ¸¸µé¾î Áú ¼ö ÀÖ´Ù. ¸ÞÀÌÅ©ÆÄÀÏÀÌ ´Ù¸¥
ÆÄÀÏ¿¡¼ ¸¸µé¾î Áú ¼ö ÀÖ´Â °æ¿ì, ¾Æ¸¶ make
°¡ ÃֽŠ¹öÀüÀÇ
¸ÞÀÌÅ©ÆÄÀÏÀ» ÀоîµéÀÌ±æ ¹Ù¶ö °ÍÀÌ´Ù.
¸ðµç ¸ÞÀÌÅ© ÆÄÀÏÀ» ÀÐÀº ´ÙÀ½¿¡, make
´Â °¢°¢ÀÇ ¸ÞÀÌÅ©ÆÄÀÏ¿¡¼ °ñ
Ÿ°ÙÀ» ã¾Æ³»°í ¾÷µ¥ÀÌÆ®¸¦ ½ÃµµÇÑ´Ù. ¸ÞÀÌÅ©ÆÄÀÏ¿¡ ¾î¶»°Ô ¾÷µ¥ÀÌÆ®Ç϶ó°í
¾Ë·ÁÁÖ´Â (¹Ù·Î ±× ¸ÞÀÌÅ©ÆÄÀÏ¿¡ Àְųª ´Ù¸¥ ¸ÞÀÌÅ© ÆÄÀÏ¿¡ Àְųª) ·êÀÌ
Çϳªµµ ¾ø°Å³ª ¾Ï¹¬ÀûÀÎ ·êÀÌ °Å±â¿¡ Àû¿ëµÇ´Â °æ¿ì (see section ¾Ï¹¬ÀûÀÎ ·ê »ç¿ëÇϱâ), ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ ¾÷µ¥ÀÌÆ®µÉ °ÍÀÌ´Ù. ¸ðµç
¸ÞÀÌÅ©ÆÄÀÏÀÌ °Ë»çµÈ ´ÙÀ½¿¡, ¸ÞÀÌÅ©ÆÄÀÏÀÌ Çϳª¶óµµ º¯°æµÇ¾úÀ¸¸é,
make
´Â Áö±Ý±îÁö ÀÐÀº °É ¸ðµÎ Àؾî¹ö¸®°í, ¸ÞÀÌÅ©ÆÄÀÏ Àüü¸¦ ´Ù½Ã
Àд´Ù. (°¢ ¸ÞÀÌÅ©ÆÄÀÏÀ» ¶Ç´Ù½Ã ¾÷µ¥ÀÌÆ®ÇÏ·Á°í ½ÃµµÇϱ⵵ ÇÑ´Ù. ÇÏÁö¸¸
ÀÌ ÆÄÀϵéÀº ÀÌ¹Ì ¾÷µ¥ÀÌÆ®µÇ¾î ÀÖÀ¸¹Ç·Î º¸ÅëÀÇ °æ¿ì ¶Ç´Ù½Ã ¸ÞÀÌÅ©ÆÄÀÏÀ»
¹Ù²ÙÁö´Â ¾ÊÀ» °ÍÀÌ´Ù.)
¸ÞÀÌÅ©ÆÄÀÏ¿¡ ÀÇÁ¸¼º ¾øÀÌ ÆÄÀÏÀ» ´Ù½Ã ¸¸µå´Â ´õºí ÄÝ·ÐÀÌ ÀÖÀ¸¸é, ±×
ÆÄÀÏÀº ¾ðÁ¦³ª ´Ù½Ã ¸¸µé °ÍÀÌ´Ù (see section Double-Colon Rules). ¸ÞÀÌÅ©ÆÄÀÏÀÇ °æ¿ì,
´õºí ÄÝ·Ð ·êÀÌ ÀÇÁ¸¼º ¾øÀÌ ¸í·É¾î¸¸ ÀÖ´Â ¸ÞÀÌÅ©ÆÄÀÏÀÇ °æ¿ì¿¡´Â
make
°¡ ½ÇÇàµÉ ¶§¸¶´Ù ´Ù½Ã ¸¸µé¾îÁú °ÍÀÌ°í, make
´Â ¶Ç´Ù½Ã
¸ÞÀÌÅ©ÆÄÀϵéÀ» Àб⠽ÃÀÛÇÒ °ÍÀÌ´Ù. ¹«ÇÑ ·çÇÁ¸¦ µ¹°Ô µÈ´Ù: make
´Â
°è¼ÓÇؼ ¸ÞÀÌÅ©ÆÄÀϵéÀ» ´Ù½Ã ¸¸µé°í, ±× ¿ÜÀÇ ¾Æ¹« °Íµµ ÇÏÁö ¾Ê´Â´Ù. Áï,
¹«ÇÑ ·çÇÁ¸¦ ¸·À¸·Á¸é, make
°¡ ´õºí ÄݷРŸ°Ù¿¡¼ ÀÇÁ¸¼º ¾øÀÌ
¸ÞÀÌÅ©ÆÄÀÏÀ» ´Ù½Ã ¸¸µéÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù.
`-f' ȤÀº `--file' ¿É¼ÇÀ¸·Î ÀÐÀ» ¸ÞÀÌÅ©ÆÄÀÏÀ» Ưº°È÷ ÁöÁ¤ÇÏÁö
¾ÊÀ¸¸é, make
´Â ±âº» ¸ÞÀÌÅ©ÆÄÀÏ À̸§µéÀ» ½ÃµµÇÑ´Ù;
see section ¸ÞÀÌÅ©ÆÄÀÏÀ» ¾î¶² À̸§À¸·Î ÇÒ °ÍÀΰ¡. ¸í½ÃÀûÀ¸·Î
¸ÞÀÌÅ©ÆÄÀÏÀ» `-f' ȤÀº `--file' ¿É¼ÇÀ¸·Î ¿äûÇßÀ» °æ¿ì¿Í´Â
´Ù¸£°Ô, make
´Â ÀÌ ¸ÞÀÌÅ©ÆÄÀÏÀÌ ÁøÂ¥·Î Á¸ÀçÇÏ´Â Áö, ¾È ÇÏ´ÂÁö
½Å°æÀ» ¾²Áö ¾Ê´Â´Ù. ÇÏÁö¸¸ ±âº» ¸ÞÀÌÅ©ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÁö¸¸
make
·êÀ» ½ÇÇàÇؼ ±âº» ¸ÞÀÌÅ©ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Â °æ¿ì¶ó¸é, ±×
·êÀ» ½ÇÇàÇؼ ¸ÞÀÌÅ©ÆÄÀÏÀÌ »ç¿ëµÉ ¼ö ÀÖµµ·Ï ÇÏ°í ½ÍÀ» °ÍÀÌ´Ù.
Áï, ±âº» ¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾Æ¹«°Íµµ ¾øÀ¸¸é, make
´Â °¢ ±âº»
¸ÞÀÌÅ©ÆÄÀϵéÀ» ã´Â ¼ø¼¿Í °°Àº ¼ø¼·Î (see section ¸ÞÀÌÅ©ÆÄÀÏÀ» ¾î¶² À̸§À¸·Î ÇÒ °ÍÀΰ¡) Çϳª¶óµµ ¸¸µå´Â µ¥ ¼º°øÇÒ ¶§±îÁö, ȤÀº ¸ðµç
À̸§µéÀ» ´Ù ½ÃµµÇÒ ¶§±îÁö, ¸¸µå·Á°í ½ÃµµÇÑ´Ù. make
°¡
¸ÞÀÌÅ©ÆÄÀÏÀ» ãÁöµµ ¸øÇÏ°í, ¸¸µéÁöµµ ¸øÇÑ °æ¿ì¿¡µµ ¾Ö·¯°¡ ¾Æ´Ï¶ó´Â Á¡¿¡
À¯ÀÇÇ϶ó; ¸ÞÀÌÅ©ÆÄÀÏÀº Ç×»ó ÇÊ¿äÇÑ °ÍÀÌ ¾Æ´Ï´Ù.
`-t' ȤÀº `--touch' ¿É¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì (see section Instead of Executing the Commands), ¾î´À Ÿ°ÙÀ» touchÇÏ´ÂÁö °áÁ¤ÇÏ´Â µ¥ µÚ¶³¾îÁø ¸ÞÀÌÅ©ÆÄÀÏÀ» »ç¿ëÇÏ°í ½ÍÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. Áï `-t' ¿É¼ÇÀº ¸ÞÀÌÅ©ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®ÇÒ ¶§´Â ¾Æ¹«·± È¿°ú°¡ ¾ø´Ù; ¸ÞÀÌÅ© ÆÄÀÏÀº `-t'°¡ ÁöÁ¤µÈ °æ¿ì¿¡µµ ÁøÂ¥·Î ¾÷µ¥ÀÌÆ®µÈ´Ù. ¸¶Âù°¡Áö·Î, `-q'(ȤÀº `--question')°ú `-n'(ȤÀº `--just-print') ¿É¼Çµµ ¸ÞÀÌÅ©ÆÄÀÏ ¾÷µ¥ÀÌÆ®¸¦ ¸·À» ¼ö´Â ¾ø´Ù. µÚ¶³¾îÁø ¸ÞÀÌÅ©ÆÄÀÏÀº ±× ¿ÜÀÇ Å¸°Ù¿¡ ´ëÇØ À߸øµÈ °á°ú¸¦ ³¾ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. Áï, `make -f mfile -n foo' ¸í·ÉÀº `mfile'À» ¾÷µ¥ÀÌÆ®ÇÏ°í, ±× ÆÄÀÏÀ» Àаí, `foo'¿Í ±× ÀÇÁ¸¼ºÀ» ¾÷µ¥ÀÌÆ®ÇÏ´Â ¸í·ÉµéÀ» ½ÇÇàÇÏÁö´Â ¾Ê°í Ç¥½Ã¸¸ ÇÒ °ÍÀÌ´Ù. `foo'¿¡ ´ëÇØ Ç¥½ÃµÇ´Â ¸í·É¾îµéÀº ¾÷µ¥ÀÌÆ®µÈ `mfile'¿¡ ¾²¿© ÀÖ´Â ¸í·É¾îÀÌ´Ù.
ÇÏÁö¸¸, °¡²û ÁøÂ¥·Î ¸ÞÀÌÅ©ÆÄÀÏ Á¶Â÷ ¾÷µ¥ÀÌÆ®ÇÏÁö ¾Êµµ·Ï ÇÏ°í ½ÍÀ» ¶§°¡ ÀÖ´Ù. ¸ÞÀÌÅ© ÆÄÀÏÀ» ¸í·ÉÇà¿¡¼ °ñ·Î ÁöÁ¤ÇÔ°ú µ¿½Ã¿¡ ¸ÞÀÌÅ©ÆÄÀÏ·Î ÁöÁ¤ÇÏ¸é ±×·¸°Ô ÇÒ ¼ö ÀÖ´Ù. ¸ÞÀÌÅ©ÆÄÀÏ À̸§ÀÌ Á÷Á¢ °ñ·Î ÁöÁ¤µÈ °æ¿ì, `-t' ¿É¼Ç µîÀÌ È¿°ú¸¦ ¹ßÈÖÇÑ´Ù.
±×·¯¹Ç·Î, `make -f mfile -n mfile foo'´Â `mfile' ¸ÞÀÌÅ©ÆÄÀÏÀ» Àаí, ¸í·É¾î¸¦ ½ÇÇàÇÏÁö ¾ÊÀº ä·Î `mfile'À» ¾÷µ¥ÀÌÆ®ÇÒ ¶§ ÇÊ¿äÇÑ ¸í·É¾îµéÀ» Ç¥½ÃÇÑ´Ù. ±×¸®°í `foo'¸¦ ¾÷µ¥ÀÌÆ®ÇÒ ¶§ ÇÊ¿äÇÑ ¸í·É¾îµéÀ» ½ÇÇàÇÏÁö ¾ÊÀº ä·Î Ç¥½ÃÇÑ´Ù. `foo'ÀÇ ¸í·É¾îµéÀº `mfile'ÀÇ ÇöÀç ³»¿ë¿¡ ¾²¿© ÀÖ´Â ¸í·É¾îÀÌ´Ù.
¾î¶² °æ¿ì¿¡´Â, ¶Ç ´Ù¸¥ ¸ÞÀÌÅ©ÆÄÀÏ°ú °ÅÀÇ ºñ½ÁÇÑ ¸ÞÀÌÅ©ÆÄÀÏÀÌ ÀÖÀ¸¸é
À¯¿ëÇÏ´Ù. ¾î¶² ¸ÞÀÌÅ© ÆÄÀÏÀ» `include' Áö½Ã¾î¸¦ »ç¿ëÇؼ ¶Ç´Ù¸¥
¸ÞÀÌÅ© ÆÄÀÏ¿¡¼ Æ÷ÇÔÇÏ°í, ´õ ¸¹Àº Ÿ°Ù°ú º¯¼ö Á¤ÀǸ¦ Ãß°¡ÇÒ ¼öµµ ÀÖ´Ù.
ÇÏÁö¸¸, µÎ°³ÀÇ ¸ÞÀÌÅ©ÆÄÀÏÀÌ °°Àº Ÿ°Ù¿¡ ´ëÇؼ ´Ù¸¥ ¸í·ÉÀÌ ÁÖ¾îÁ³´Ù¸é,
make
´Â ±×·± ½ÄÀ¸·Î Çϵµ·Ï ³»¹ö·Á µÎÁö ¾Ê´Â´Ù. ±×·¯³ª ÇÑ °¡Áö
¹æ¹ýÀÌ ÀÖ´Ù.
¸ÞÀÌÅ© ÆÄÀÏÀ» Æ÷ÇÔÇÏ´Â (¶Ç ´Ù¸¥ ¸ÞÀÌÅ© ÆÄÀÏÀ» Æ÷ÇÔÇÏ·Á´Â) ¸ÞÀÌÅ©ÆÄÀÏ¿¡¼
¾Æ¹«°Å³ª ¸Â´Â ÆÐÅÏ ·êÀ» ½á¼ Æ÷ÇÔÇÏ´Â ¸ÞÀÌÅ©ÆÄÀÏ¿¡ µé¾î ÀÖ´Â Á¤º¸¿¡¼
¸¸µé ¼ö ¾ø´Â Ÿ°ÙÀ» ´Ù½Ã ¸¸µéµµ·Ï, ±×·¡¼ make
°¡ ´Ù¸¥
¸ÞÀÌÅ©ÆÄÀÏ¿¡¼ Ÿ°ÙÀ» ã¾Æº¸µµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÆÐÅÏ ·ê¿¡ ´ëÇÑ ´õ ¸¹Àº
Á¤º¸´Â See section Defining and Redefining Pattern Rules.
¿¹¸¦ µé¾î, ¾î¶»°Ô `foo' Ÿ°ÙÀ» (±×¸®°í ±× ¿Ü ¿©·¯°¡Áö Ÿ°ÙÀ») ¸¸µå´Â ¹ýÀÌ ¾²¿© ÀÖ´Â `Makefile'À̶ó´Â ¸ÞÀÌÅ©ÆÄÀÏÀÌ ÀÖÀ¸¸é, ´ÙÀ½°ú °°ÀÌ µé¾î ÀÖ´Â `GNUmakefile'À̶ó´Â ¸ÞÀÌÅ©ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
foo: frobnicate > foo %: force @$(MAKE) -f Makefile $@ force: ;
`make foo'¶ó°íÇϸé, make
´Â `GNUmakefile'À» ã°í, ÀÐÀº
´ÙÀ½, `foo'¸¦ ¸¸µå·Á¸é `frobnicate > foo'¶ó´Â ¸í·ÉÀ» ½ÇÇàÇؾß
µÈ´Ù´Â °É ¾Ë¾Æ Â÷¸°´Ù. ¸¸¾à `make bar'¶ó°í Çϸé, make
´Â
`GNUmakefile'¿¡¼´Â `bar'¸¦ ¸¸µå´Â ¹ýÀ» ãÁö ¸øÇÏ°í, ÆÐÅÏ ·ê¿¡
ÀÖ´Â ¸í·É¾î¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù: `make -f Makefile bar'.
`Makefile'¿¡ `bar'¸¦ ¾÷µ¥ÀÌÆ®ÇÏ´Â ·êÀÌ µé¾î ÀÖÀ¸¸é,
make
´Â ±× ·êÀ» Àû¿ëÇÒ °ÍÀÌ´Ù. ±×¸®°í ¾î¶»°Ô ¸¸µå´ÂÁö
`GNUmakefile'¿¡ ¾²¿© ÀÖÁö ¾ÊÀº ´Ù¸¥ ¸ðµç Ÿ°Ù¿¡ ´ëÇؼµµ
¸¶Âù°¡ÁöÀÌ´Ù.
À§¿Í °°ÀÌ µ¿ÀÛÇÏ´Â ÀÌÀ¯´Â, À§ÀÇ ÆÐÅÏ ·ê¿¡¼ `%'¶ó´Â ÆÐÅÏÀ» »ç¿ëÇÏ°í
ÀÖÀ¸¹Ç·Î, ¾î¶² Ÿ°Ù¿¡ ´ëÇؼµµ µé¾î ¸Â±â ¶§¹®ÀÌ´Ù. ÀÌ ·êÀº
`force'¶ó´Â ÀÇÁ¸¼ºÀ» ÁöÁ¤Çؼ, ±× Ÿ°Ù ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÏ´Â
°æ¿ì¿¡µµ ¸í·ÉÀÌ ½ÇÇàµÇµµ·Ï º¸ÀåÇÑ´Ù. ¿ì¸®´Â `force' Ÿ°Ù¿¡¼ ºó
¸í·ÉÀ» Áý¾î ³Ö¾î¼ make
°¡ `force'¸¦ ºôµåÇÏ´Â ¾Ï¹¬ÀûÀÎ ·êÀ»
ãÁö ¾Êµµ·Ï ÇÑ´Ù---ÀÌ·¸°Ô ÇÏÁö ¾ÊÀ¸¸é °°Àº ¾Æ¹«°Å³ª ¸Â´Â ·êÀÌ
`force' ÀÚü¿¡µµ Àû¿ëµÇ¾î ÀÇÁ¸¼º¿¡ ·çÇÁ°¡ »ý±ä´Ù.
Go to the first, previous, next, last section, table of contents.