´Ù¸¥ ´Ù¾çÇÑ ½Ã½ºÅ۵鿡 ÀÖ´Â make
ÇÁ·Î±×·¥µéÀº GNU make
°¡ ±¸ÇöÇسõÁö ¾Ê´Â ¸î°¡Áö ±â´ÉµéÀ» Áö¿øÇÑ´Ù. POSIX.2 Ç¥ÁØ (IEEE
Standard 1003.2-1992) ¿¡ ÀÇÇϸé ÀÌ·± ±â´Éµé ¾î¶² °Íµµ make
´Â
ÇÊ¿äÇÏÁö ¾Ê´Ù.
make
¿¡ ÀÇÇؼ ±¸ÇöµÇÁö ¾Ê¾Ò´Ù. ¿Ö³Ä¸é Áö½ÄÀ»
¾ÆÄ«ÀÌºê ½É¹ú Å×À̺íÀÇ ³»ºÎ Æ÷¸äÀ¸·Î make
¿¡ ³Ö´Â °ÍÀº ¸ðµâ¼ºÀ»
ÇØÄ¡±â ¶§¹®ÀÌ´Ù.
See section ¾ÆÄ«ÀÌºê ½É¹ú µð·ºÅ丮 °»½Å(Updating Archive Symbol Directories).
make
¿¡¼ Ưº°ÇÑ Àǹ̸¦ °¡Áø´Ù; ±×µéÀº `~' ¸¦
°¡ÁöÁö ¾Ê´Â ÆÄÀÏ¿¡ ´ëÀÀÇÏ´Â SCCS ÆÄÀÏÀ» °¡¸®Å²´Ù. ¿¹¸¦ µé¾î¼ Á¢¹Ì»ç
±ÔÄ¢ `.c~.o' ´Â `n.o' ¶ó´Â ÆÄÀÏÀ» SCCS ÆÄÀÏ
`s.n.c' ·ÎºÎÅÍ ¸¸µé°ÍÀÌ´Ù. ¿ÏÀüÇÑ Àû¿ë¹üÀ§¸¦ À§Çؼ ±×·±
Á¢¹Ì»ç ±ÔÄ¢µéÀÇ Àüü°¡ ÇÊ¿äÇÏ´Ù.
See section ±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules).
GNU make
¿¡¼ ÀÌ·± °æ¿ìµéÀÇ ¸ðµç °ÍµéÀº SCCS ·ÎºÎÅÍ ÃßÃâÇÏ´Â
µÎ°¡Áö ÆÐÅÏ ±ÔÄ¢µé¿¡ ÀÇÇؼ, ±ÔÄ¢ ¿¬¼âÀÇ ÀÏ¹Ý ±â´Éµé°ú ¿¬µ¿Çؼ,
󸮵ȴÙ.
See section ¹¬½ÃÀû ±ÔÄ¢ÀÇ ¿¬¼â(Chains of Implicit Rules).
make
¿¡¼ ¹®ÀÚ¿ `$$@' ´Â, ´Ù¼öÀÇ Å¸°ÙµéÀ»
°¡Áö´Â ±ÔÄ¢ÀÇ Á¾¼Ó¹°µé¿¡¼, ÀÌ°ÍÀº ó¸®ÁßÀΠƯÁ¤ Ÿ°ÙÀ» ³ªÅ¸³½´Ù´Â,
ÀÌ»óÇÑ Àǹ̸¦ °¡Áø´Ù.
ÀÌ°ÍÀº `$$' °¡ Ç×»ó ÀÏ¹Ý `$' ¸¦ ³ªÅ¸³»¾ß ÇϹǷΠGNU
make
¿¡¼ Á¤ÀǵÇÁö ¾Ê¾Ò´Ù.
ÀÌ·± ±â´ÉÀ» Á¤Àû ÆÐÅÏ ±ÔÄ¢µéÀ» »ç¿ëÇؼ ¾ò´Â °ÍÀÌ
°¡´ÉÇÏ´Ù. (see section Á¤Àû ÆÐÅÏ ±ÔÄ¢(Static Pattern Rules)).
System V make
ÀÇ ´ÙÀ½°ú °°Àº ±ÔÄ¢Àº:
$(targets): $$@.o lib.a´ÙÀ½°ú °°Àº GNU
make
Á¤Àû ÆÐÅÏ ±ÔÄ¢À¸·Î ±³Ã¼µÉ ¼ö ÀÖ´Ù:
$(targets): %: %.o lib.a
make
¿¡¼ VPATH
°Ë»ö
(see section Á¾¼Ó¹°À» À§ÇÑ µð·ºÅ丮 °Ë»ö(Searching Directories for Dependencies))
À¸·Î ã¾ÆÁø ÆÄÀϵéÀº ¸í·É ¹®ÀÚ¿µé ¾È¿¡¼ º¯°æµÈ À̸§À» °®´Â´Ù. ¿ì¸®´Â
ÀÚµ¿ º¯¼öµéÀ» »ç¿ëÇؼ ÀÌ ±â´ÉÀ» »çÀå½ÃÅ°´Â °ÍÀÌ Á» ´õ ¸íÈ®ÇÏ´Ù°í
´À³¤´Ù.
make
µé¿¡¼´Â, ¾î¶² ±ÔÄ¢ÀÇ Á¾¼Ó¹°µé ¾È¿¡¼ ³ªÅ¸³
ÀÚµ¿ º¯¼ö $*
´Â ±× ±ÔÄ¢ÀÇ Å¸°ÙÀÇ Àüü À̸§À¸·Î È®ÀåµÇ´Â
¾ÆÁÖ ÀÌ»óÇÑ "±â´É"À» °¡Áø´Ù. ¿ì¸®´Â À¯´Ð½º make
°³¹ßÀÚµéÀÌ
ÀÌ·¸°Ô Çϱâ À§Çؼ ¸¶À½¼ÓÀ¸·Î ¹«½¼ »ý°¢À» ÇÏ´ÂÁö ¾Ë ¼ö ¾ø´Ù; ÀÌ°ÍÀº
$*
ÀÇ ÀÏ¹Ý Á¤ÀÇ¿Í ¿ÏÀüÈ÷ ´Ù¸£´Ù.
make
µé¿¡¼´Â, ¹¬½ÃÀû ±ÔÄ¢ °Ë»ö (see section ¹¬½ÃÀû ±ÔÄ¢(Using Implicit Rules)) ÀÌ ¸í·ÉµéÀÌ ¾ø´Â °Í»Ó¸¸ÀÌ ¾Æ´Ï°í
¸ðµç Ÿ°Ùµé¿¡ ´ëÇؼ ¼öÇàµÈ´Ù. ÀÌ°ÍÀº ´ÙÀ½°ú °°Àº °ÍÀ» ÇÒ ¼ö
ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù:
foo.o: cc -c foo.c±×¸®°í À¯´Ð½º
make
´Â `foo.o' ÀÌ `foo.c' ¿¡
Á¾¼ÓÇÑ´Ù´Â °ÍÀ» ¾Ë °ÍÀÌ´Ù.
ÀÌ·± »ç¿ëÀÌ À߸øµÇ¾ú´Ù°í ¿ì¸®´Â »ý°¢ÇÑ´Ù. make
ÀÇ Á¾¼Ó¹° ¼Ó¼ºÀº
Àß-Á¤ÀǵǾúÀ¸¸ç(Àû¾îµµ GNU make
¿¡ ´ëÇؼ), ±× ¸ðµ¨¿¡ ¸ÂÁö ¾Ê´Â
°ÍÀ» ¼öÇàÇÑ´Ù.
make
´Â EFL ÇÁ·Î±×·¥µéÀ» ÄÄÆÄÀÏÇϰųª »çÀüó¸®ÇÏ´Â ³»Àå
¹¬½ÃÀû ±ÔÄ¢µéÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ¿ì¸®´Â EFL À» »ç¿ëÇÏ´Â »ç¶÷ÀÌ ÀÖ´Ù´Â
°ÍÀ» µè°Ô µÈ´Ù¸é ±â²¨ÀÌ À̰͵éÀ» ´õÇÒ °ÍÀÌ´Ù.
make
¿¡¼ ³ªÅ¸³ °ÍÀε¥, Á¢¹Ì»ç ±ÔÄ¢Àº ¸í·ÉµéÀÌ ¾øÀÌ
ÁöÁ¤µÉ ¼ö ÀÖ°í ºó ¸í·ÉµéÀ» °¡Áø °Íó·³ Ãë±ÞµÈ´Ù (see section ºó ¸í·É »ç¿ëÇϱâ(Using Empty Commands)). ¿¹¸¦ µé¾î¼:
.c.a:³»Àå `.c.a' Á¢¹Ì»ç ±ÔÄ¢À» ¿À¹ö¶óÀ̵åÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â ¸í·ÉµéÀÌ ¾ø´Â ±ÔÄ¢ÀÌ, Ç×»ó ±× Ÿ°Ù¿¡ ´ëÇؼ Á¾¼Ó¹° ¸®½ºÆ®¸¦ ´Ü¼øÇÏ°Ô Ãß°¡ÇÏ´Â °ÍÀÌ ´õ ½±´Ù°í ´À³¤´Ù. À§ÀÇ ¿¹Á¦´Â GNU
make
ÀÇ ¿øÇÏ´Â ÇൿÀ» ¾ò±â À§Çؼ ´ÙÀ½°ú °°ÀÌ ½±°Ô ÀçÀÛ¼ºµÉ ¼ö ÀÖ´Ù:
.c.a: ;
make
ÀÇ ¸î°¡Áö º¯Á¾ ¹öÀüµéÀº, `-k'
(see section ÇÁ·Î±×·¥ÀÇ ÄÄÆÄÀÏ Å×½ºÆ®(Testing the Compilation of a Program) ÀÇ °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â, ½©À» `-e' Ç÷¡±×·Î È£ÃâÇÑ´Ù.
`-e' Ç÷¡±×´Â ½©¿¡°Ô ÀÓÀÇÀÇ ÇÁ·Î±×·¥ÀÌ 0ÀÌ ¾Æ´Ñ »óÅ°ªÀ» ¸®ÅÏÇϸé
Áï½Ã Á¾·áÇ϶ó°í ¸»ÇÏ´Â °ÍÀÌ´Ù. ¿ì¸®´Â °¢ ½© ¸í·ÉÇàÀ» Ȧ·Î ÀÖµµ·Ï ¾²°í
ÀÌ·± Ưº°ÇÑ Ãë±ÞÀ» ¿ä±¸ÇÏÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀÌ ÈξÀ ´õ ½±´Ù°í ´À³¤´Ù.
Go to the first, previous, next, last section, table of contents.