Go to the first, previous, next, last section, table of contents.


¸ÞÀÌÅ©ÆÄÀÏ ÀÛ¼ºÇϱâ

ÇÑ ½Ã½ºÅÛÀ» ´Ù½Ã ÄÄÆÄÀÏÇÏ´Â ¹æ¹ýÀ» make¿¡°Ô ¾Ë·ÁÁÖ´Â Á¤º¸´Â ¸ÞÀÌÅ©ÆÄÀÏ(makefile)À̶ó°í ÇÏ´Â µ¥ÀÌŸº£À̽º¸¦ ÀÐÀ½À¸·Î½á ¾ò¾îÁø´Ù.

¸ÞÀÌÅ©ÆÄÀÏ¿¡ ¹«¾ùÀÌ µé¾î Àִ°¡

¸ÞÀÌÅ©ÆÄÀÏÀº ´Ù¼¸°¡Áö Á¾·ùÀÇ °ÍµéÀÌ µé¾î ÀÖ´Ù: ¸í½ÃÀû ·ê, ¾Ï¹¬ÀûÀÎ ·ê, º¯¼ö Á¤ÀÇ, Áö½Ã¾î, ±×¸®°í ÁÖ¼®¹®ÀÌ´Ù. ·ê, º¯¼ö, ±×¸®°í Áö½Ã¾î´Â µÚ¿¡¼­ ´õ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.

¸ÞÀÌÅ©ÆÄÀÏÀ» ¾î¶² À̸§À¸·Î ÇÒ °ÍÀΰ¡

±âº» »çÇ×À¸·Î, 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°¡ ÀÖ´Ù.

The Variable 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.