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


¹¬½ÃÀû ±ÔÄ¢(Using Implicit Rules)

Ÿ°Ù ÆÄÀϵéÀ» ¸®¸ÞÀÌÅ©ÇÏ´Â ¾î¶² Ç¥ÁØ ¹æ¹ýµéÀÌ ÀÚÁÖ »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î¼­ ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ¸¸µå´Â Åë»óÀûÀÎ ¹æ¹ýÀº C ¼Ò½º·ÎºÎÅÍ C ÄÄÆÄÀÏ·¯, cc¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.

¹¬½ÃÀû ±ÔÄ¢(Implicit rules) Àº »ç¿ëÇÏ°íÀÚ ÇÒ ¶§ ±×°ÍµéÀ» ÀÚ¼¼ÇÏ°Ô ÁöÁ¤ÇÒ ÇÊ¿ä¾øµµ·Ï, Åë»óÀûÀÎ Å×Å©´ÐµéÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» make ¿¡°Ô ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î¼­ C ÄÄÆÄÀÏÀ» À§ÇÑ ¹¬½ÃÀû ±ÔÄ¢ÀÌ ÀÖ´Ù. ÆÄÀÏ À̸§µéÀÌ ¾î¶² ¹¬½ÃÀû ±ÔÄ¢µéÀÌ ½ÇÇàµÉ °ÍÀΰ¡¸¦ °áÁ¤ÇÑ´Ù. ¿¹¸¦ µé¾î¼­ C ÄÄÆÄÀÏÀº `.c' ÆÄÀÏÀ» º¸Åë ÃëÇؼ­ `.o' ÆÄÀÏÀ» ¸¸µç´Ù. ±×·¡¼­ make´Â ÀÌ°ÍÀÌ ÆÄÀÏ À̸§ÀÇ ³¡ºÎºÐµé(È®ÀåÀÚµé)ÀÇ Á¶ÇÕÀ» º¼ ¶§ C ÄÄÆÄÀÏÀ» À§ÇÑ ¹¬½ÃÀû ±ÔÄ¢À» Àû¿ëÇÑ´Ù.

¹¬½ÃÀû ±ÔÄ¢µéÀÇ ¿¬¼â°í¸®°¡ ¼øÂ÷ÀûÀ¸·Î Àû¿ëµÉ ¼ö ÀÖ´Ù; ¿¹¸¦ µé¾î¼­, make´Â `.y' ÆÄÀϷκÎÅÍ `.o' ÆÄÀÏÀ», `.c' ÆÄÀÏÀ» °æÀ¯Çؼ­ ¸®¸ÞÀÌÅ©ÇÒ °ÍÀÌ´Ù. See section ¹¬½ÃÀû ±ÔÄ¢ÀÇ ¿¬¼â(Chains of Implicit Rules).

³»Àå ¹¬½ÃÀû ±ÔÄ¢µéÀº, º¯¼öµéÀÇ °ªµéÀ» º¯°æÇؼ­ ¿©·¯ºÐÀÌ ¹¬½ÃÀû ±ÔÄ¢µéÀÌ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï, ±×µéÀÇ ¸í·É¿¡¼­ ¸î°¡Áö º¯¼öµéÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î¼­ º¯¼ö CFLAGS ´Â C ÄÄÆÄÀÏÀ» À§ÇÑ ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇؼ­ C ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁø Ç÷¡±×µéÀ» Á¦¾îÇÑ´Ù. See section ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇØ »ç¿ëµÇ´Â º¯¼ö(Variables Used by Implicit Rules).

¿©·¯ºÐ ÀڽŸ¸ÀÇ ¹¬½ÃÀû ±ÔÄ¢µéÀ» ÆÐÅÏ ±ÔÄ¢µé(pattern rules)¸¦ ÀÛ¼ºÇÔÀ¸·Î½á Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. See section ÆÐÅÏ ±ÔÄ¢À» Á¤ÀÇÇÏ°í ÀçÁ¤Çϱâ(Defining and Redefining Pattern Rules).

Á¢¹Ì»ç ±ÔÄ¢(uffix rules) Àº ¹¬½ÃÀû ±ÔÄ¢µéÀ» Á¤ÀÇÇÏ´Â Á» ´õ Á¦ÇÑµÈ ¹æ½ÄÀÌ´Ù. ÆÐÅÏ ±ÔÄ¢µéÀÌ Á» ´õ ÀϹÝÀûÀÌ°í ¸íÄèÇÑ °ÍÀÌÁö¸¸ Á¢¹Ì»ç ±ÔÄ¢µéÀº ȣȯ¼ºÀ» À§Çؼ­ ¾ÆÁ÷ ³²¾Æ ÀÖ´Ù. See section ±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules).

¹¬½ÃÀû ±ÔÄ¢ »ç¿ë(Using Implicit Rules)

make°¡ Ÿ°Ù ÆÄÀÏÀ» °»½ÅÇϱâ À§ÇÑ °ü½ÀÀûÀÎ ¹æ¹ýÀ» ãµµ·Ï Çϱâ À§Çؼ­ ¿©·¯ºÐÀÌ ÇØ¾ß ÇÒ ÀÏÀº ¸í·ÉµéÀ» ½º½º·Î ÁöÁ¤ÇÏÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀÌ ÀüºÎÀÌ´Ù. ¸í·É ¶óÀεéÀÌ ¾ø´Â ±ÔÄ¢À» ÀÛ¼ºÇϰųª ±×·± ±ÔÄ¢À» ÀüÇô ÀÛ¼ºÇÏÁö ¸»ÀÚ. ±×·¯¸é make´Â »ç¿ëÇÒ ¹¬½ÃÀû ±ÔÄ¢À», ¾î¶² Á¾·ùÀÇ ¼Ò½º ÆÄÀÏÀÌ Á¸ÀçÇϴ°¡¿Í ¸¸µé¾îÁú ¼ö Àִ°¡¿¡ ±â¹ÝÇؼ­, ã¾Æ³¾ °ÍÀÌ´Ù.

¿¹¸¦ µé¾î¼­ makefileÀÌ ´ÙÀ½°ú °°ÀÌ »ý°å´Ù°í ÇÏÀÚ:

foo : foo.o bar.o
        cc -o foo foo.o bar.o $(CFLAGS) $(LDFLAGS)

`foo.o'¸¦ ¾ð±ÞÇßÁö¸¸ ±×°Í¿¡ ´ëÇÑ ±ÔÄ¢À» ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ make´Â ÀÚµ¿À¸·Î ±×°ÍÀ» °»½ÅÇÏ´Â ¹æ¹ýÀ» ¸»ÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢À» ãÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº `foo.o'°¡ ÇöÀç Á¸ÀçÇÏ´ÂÁö ¾ÈÇÏ´ÂÁö¿¡ »ó°ü¾øÀÌ ÀϾ´Ù.

¹¬½ÃÀû ±ÔÄ¢ÀÌ ÀÖÀ¸¸é ÀÌ°ÍÀº ¸í·Éµé°ú Çϳª ÀÌ»óÀÇ Á¾¼Ó¹°µé(¼Ò½º ÆÄÀϵé) ¸ðµÎ¸¦ °ø±ÞÇÒ ¼ö ÀÖ´Ù. ¹¬½ÃÀû ±ÔÄ¢ÀÌ °ø±ÞÇÒ ¼ö ¾ø´Â, Çì´õ ÆÄÀϵé°ú °°Àº, Ãß°¡ÀÇ Á¾¼Ó¹°µéÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù¸é, `foo.o'¿¡ ´ëÇÑ ±ÔÄ¢À» ¸í·É ¶óÀεéÀÌ ¾øÀÌ ÀÛ¼ºÇÏ°íÀÚ ÇÒ °ÍÀÌ´Ù.

°¢ ¹¬½ÃÀû ±ÔÄ¢Àº ÇϳªÀÇ Å¸°Ù ÆÐÅÏ°ú Á¾¼Ó¹° ÆÐÅϵéÀ» °¡Áø´Ù. µ¿ÀÏÇÑ Å¸°Ù ÆÐÅÏÀ» °¡Áö´Â ¸¹Àº ¹¬½ÃÀû ±ÔÄ¢µéÀÌ Á¸ÀçÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ ¸¹Àº ±ÔÄ¢µéÀÌ `.o' ÆÄÀϵéÀ» ¸¸µé ¼ö ÀÖ´Ù: Çϳª´Â, `.c' ÆÄÀϷκÎÅÍ C ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ¼öµµ ÀÖ°í; ´Ù¸¥ °ÍÀº, `.p' ÆÄÀϷκÎÅÍ ÆĽºÄ® ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù; ±âŸ µîµî. ½ÇÁ¦·Î Àû¿ëµÇ´Â ±ÔÄ¢Àº ±×°ÍÀÇ Á¾¼Ó¹°ÀÌ Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖ´Â °Í ÇϳªÀÌ´Ù. ±×·¡¼­ ÆÄÀÏ `foo.c'¸¦ °¡Áø´Ù¸é, make´Â C ÄÄÆÄÀÏ·¯¸¦ ½ÇÇàÇÒ °ÍÀÌ´Ù; ±×·¸Áö ¾Ê°í `foo.p'¸¦ °¡Áø´Ù¸é make´Â ÆĽºÄ® ÄÄÆÄÀÏ·¯¸¦ ½ÇÇàÇÒ °ÍÀÌ´Ù; ±âŸ µîµî.

¹°·Ð, makefileÀ» ÀÛ¼ºÇÒ ¶§ ¿©·¯ºÐÀº make°¡ »ç¿ëÇßÀ¸¸é ÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢ÀÌ ¾î¶² °ÍÀΰ¡¸¦ ¾Ë°í ÀÖÀ¸¸ç, ¾î¶² Á¾¼Ó ÆÄÀϵéÀÌ Á¸ÀçÇÒ °ÍÀΰ¡¸¦ ¾Ë°í Àֱ⠶§¹®¿¡ make°¡ ±×°ÍÀ» ¼±ÅÃÇÒ °ÍÀ̶ó´Â °ÍÀ» ¾È´Ù. ¸ðµç »çÀü¿¡ Á¤ÀÇµÈ ¹¬½ÃÀû ±ÔÄ¢µé Ä«´Þ·Î±×¸¦ º¸·Á¸é See section ¹¬½ÃÀû ±ÔÄ¢µéÀÇ Ä«´Þ·Î±×(Catalogue of Implicit Rules).

À§¿¡¼­ ¿ì¸®´Â ÇϳªÀÇ ¹¬½ÃÀû ±ÔÄ¢ÀÌ, ¿ä±¸µÈ Á¾¼Ó¹°µéÀÌ "Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖÀ¸¸é" Àû¿ëµÈ´Ù°í ¸»Çß´Ù. ÆÄÀÏÀº ±×°ÍÀÌ maekefile¿¡¼­ Ÿ°ÙÀ̳ª Á¾¼Ó¹°·Î ¸í½ÃÀûÀ¸·Î ÁöÁ¤µÇ°í ¹¬½ÃÀû ±ÔÄ¢ÀÌ ±×°ÍÀ» ¸¸µå´Â ¹æ¹ýÀ» Àç±ÍÀûÀ¸·Î ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù¸é, "¸¸µé¾îÁú ¼ö ÀÖ´Ù". ¹¬½ÃÀû Á¾¼Ó¹°ÀÌ ´Ù¸¥ ¹¬½ÃÀû ±ÔÄ¢ÀÇ °á°úÀ̶ó¸é ¿ì¸®´Â ¿¬¼âÀÛ¿ë(chaining)ÀÌ ÀϾ´Ù°í ¸»ÇÑ´Ù. See section ¹¬½ÃÀû ±ÔÄ¢ÀÇ ¿¬¼â(Chains of Implicit Rules).

ÀϹÝÀûÀ¸·Î make´Â °¢ Ÿ°Ù¿¡ ´ëÇؼ­ ¸í·ÉÀÌ ¾ø´Â ¹¬½ÃÀû±ÔÄ¢, °¢ ´õºí-ÄÝ·Ð ±ÔÄ¢À» °Ë»öÇÑ´Ù. Á¾¼Ó¹°·Î¸¸ ¾ð±ÞµÈ ÆÄÀÏÀº, Ÿ°ÙÀÇ ±ÔÄ¢ÀÌ ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾Ê´Â Ÿ°ÙÀ¸·Î »ý°¢µÇ°í, ±×·¡¼­ ÀÌ°Í¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢ÀÌ °Ë»öµÈ´Ù. °Ë»öÀÌ ÀÌ·ç¾îÁö´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº See section ¹¬½ÃÀû ±ÔÄ¢ °Ë»ö ¾Ë°í¸®Áò(Implicit Rule Search Algorithm).

¸í½ÃÀû Á¾¼Ó¹°µéÀº ¹¬½ÃÀû ±ÔÄ¢ °Ë»ö¿¡ ¾Æ¹«·± ¿µÇâµµ ¹ÌÄ¡Áö ¾Ê´Â´Ù´Â Á¡¿¡ ÁÖ¸ñÇÏÀÚ. ¿¹¸¦ µé¾î¼­ ´ÙÀ½°ú °°Àº ¸í½ÃÀû ±ÔÄ¢À» »ý°¢ÇÏÀÚ:

foo.o: foo.p

`foo.p'ÀÇ Á¾¼Ó¼ºÀº make°¡ ¿ÀºêÁ§Æ® ÆÄÀÏ `.o' ÆÄÀÏ¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢¿¡ µû¶ó¼­ ÆĽºÄ® ¼Ò½º ÆÄÀÏ `.p' ÆÄÀϷκÎÅÍ `foo.o'¸¦ ¸®¸ÞÀÌÅ©ÇÒ °ÍÀÌ´Ù¶ó´Â °ÍÀ» ¹Ýµå½Ã ÀǹÌÇÏÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î¼­ `foo.c'°¡ ÀÌ¹Ì Á¸ÀçÇÏ°í C ¼Ò½º ÆÄÀϷκÎÅÍ ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ¸¸µå´Â ¹¬½ÃÀû ±ÔÄ¢ÀÌ ´ë½Å »ç¿ëµÈ´Ù. ¿Ö³Ä¸é ÀÌ°ÍÀÌ »çÀü Á¤ÀÇµÈ ¹¬½ÃÀû ±ÔÄ¢µéÀÇ ¸®½ºÆ®¿¡¼­ ÆĽºÄ®¿¡ ´ëÇÑ ±ÔÄ¢º¸´Ù ¸ÕÀú ³ª¿À±â ¶§¹®ÀÌ´Ù (see section ¹¬½ÃÀû ±ÔÄ¢µéÀÇ Ä«´Þ·Î±×(Catalogue of Implicit Rules)).

¹¬½ÃÀû ±ÔÄ¢ÀÌ ¸í·ÉµéÀÌ ¾ø´Â Ÿ°Ù¿¡ ´ëÇؼ­ »ç¿ëµÇ±â¸¦ ¿øÇÏÁö ¾Ê´Â´Ù¸é Ÿ°Ù¿¡°Ô, ÇϳªÀÇ ¼¼¹ÌÄݷи¸ ÀÛ¼ºÇؼ­ ºó ¸í·ÉµéÀ» ÁÙ ¼ö ÀÖ´Ù (see section ºó ¸í·É »ç¿ëÇϱâ(Using Empty Commands)).

¹¬½ÃÀû ±ÔÄ¢µéÀÇ Ä«´Þ·Î±×(Catalogue of Implicit Rules)

´ÙÀ½Àº makefileÀÌ À̵éÀ» ¸í½ÃÀûÀ¸·Î ¿À¹ö¶óÀ̵åÇϰųª Ãë¼ÒÇÏÁö ¾Ê¾Ò´Ù¸é Ç×»ó »ç¿ëÀÌ °¡´ÉÇÑ »çÀü¿¡ Á¤ÀÇµÈ ¹¬½ÃÀû ±ÔÄ¢µéÀÇ Ä«´Þ·Î±×ÀÌ´Ù. ¹¬½ÃÀû ±ÔÄ¢µéÀ» Ãë¼ÒÇϰųª ¿À¹ö¶óÀ̵åÇÏ´Â Á¤º¸¿¡ ´ëÇؼ­ See section ¹¬½ÃÀû ±ÔÄ¢ Ãë¼Ò½ÃÅ°±â(Canceling Implicit Rules). `-r'À̳ª `--no-builtin-rules' ¿É¼ÇÀº ¸ðµç »çÀü¿¡ Á¤ÀÇµÈ ±ÔÄ¢µéÀ» Ãë¼Ò½ÃŲ´Ù.

`-r' ¿É¼ÇÀÌ ÁÖ¾îÁöÁö ¾Ê¾Ò´ÙÇÏ´õ¶óµµ, ÀÌµé ±ÔÄ¢µé ¸ðµÎ°¡ Ç×»ó Á¤ÀǵǴ °ÍÀº ¾Æ´Ï´Ù. ¸¹Àº »çÀü¿¡ Á¤ÀÇµÈ ±ÔÄ¢µéÀº make¿¡¼­ Á¢¹Ì»ç ±ÔÄ¢µé·Î ±¸ÇöµÈ´Ù. ±×·¡¼­ À̵éÀº Á¢¹Ì»ç ¸®½ºÆ®(suffix list)¿¡ ÀÇÁ¸ÀûÀ¸·Î Á¤ÀÇµÉ °ÍÀÌ´Ù (Ư¼öÇÑ Å¸°Ù .SUFFIXESÀÇ Á¾¼Ó¹°µéÀÇ ¸®½ºÆ®). µðÆúÆ® Á¢¹Ì»ç ¸®½ºÆ®´Â ´ÙÀ½°ú °°´Ù: .out, .a, .ln, .o, .c, .cc, .C, .p, .f, .F, .r, .y, .l, .s, .S, .mod, .sym, .def, .h, .info, .dvi, .tex, .texinfo, .texi, .txinfo, .w, .ch .web, .sh, .elc, .el. Á¾¼Ó¹°µéÀÌ ÀÌ·± Á¢¹Ì»çµé ÁßÀÇ Çϳª¸¦ °¡Áö´Â ¾Æ·¡¿¡¼­ ±â¼úµÈ ¹¬½ÃÀû ±ÔÄ¢µé ¸ðµÎ´Â ½ÇÁ¦·Î Á¢¹Ì»ç ±ÔÄ¢µéÀÌ´Ù. Á¢¹Ì»ç ¸®½ºÆ®¸¦ º¯°æÇÑ´Ù¸é ´ÜÁö È¿·Â ÀÖ´Â »çÀü¿¡ Á¤ÀÇµÈ Á¢¹Ì»ç ±ÔÄ¢µé¸¸ÀÌ ¿©·¯ºÐÀÌ ÁöÁ¤ÇÑ ¸®½ºÆ®¿¡ ÀÖ´Â Á¢¹Ì»çµé ÁßÀÇ Çϳª³ª µÑÀÇ À̸§À» °¡Áö´Â °ÍµéÀÌ µÉ °ÍÀÌ´Ù; Á¢¹Ì»çµé Áß¿¡¼­ ÀÌµé ¸®½ºÆ®¿¡ ÀÖÁö ¾Ê´Â ±ÔÄ¢µéÀº »ç¿ë ºÒ°¡´ÉÀÌ µÈ´Ù. Á¢¹Ì»ç ±ÔÄ¢µé¿¡ ´ëÇÑ »ó¼¼ÇÑ ³»¿ëÀº See section ±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules).

C ÇÁ·Î±×·¥ ÄÄÆÄÀÏ(Compiling C programs)
`n.o' ´Â `n.c' ·ÎºÎÅÍ `$(CC) -c $(CPPFLAGS) $(CFLAGS)' ÇüÅÂÀÇ ¸í·É¿¡ ÀÇÇؼ­ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù.
C++ ÇÁ·Î±×·¥ ÄÄÆÄÀÏ(Compiling C++ programs)
`n.o' ´Â `n.cc' ³ª `n.C' ·ÎºÎÅÍ `$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)' ÇüÅÂÀÇ ¸í·É¿¡ ÀÇÇؼ­ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. C++ ¼Ò½º ÆÄÀϵ鿡 ´ëÇؼ­ `.c' ´ë½Å¿¡ `.cc' Á¢¹Ì»ç¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù.
ÆĽºÄ® ÇÁ·Î±×·¥ ÄÄÆÄÀÏ(Compiling Pascal programs)
`n.o' ´Â `n.p' ·ÎºÎÅÍ `$(PC) -c $(PFLAGS)' ¶ó´Â ¸í·ÉÀ» »ç¿ëÇؼ­ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù.
Æ÷Æ®¶õ°ú Ratfor ÇÁ·Î±×·¥ ÄÄÆÄÀÏ(Compiling Fortran and Ratfor programs)
`n.o' ´Â `n.r', `n.F' ¶Ç´Â `n.f' ·ÎºÎÅÍ Æ÷Æ®¶õ ÄÄÆÄÀÏ·¯¸¦ ½ÇÇàÇؼ­ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. »ç¿ëµÈ Á¤È®ÇÑ ¸í·ÉÀº ´ÙÀ½°ú °°´Ù:
`.f'
`$(FC) -c $(FFLAGS)'.
`.F'
`$(FC) -c $(FFLAGS) $(CPPFLAGS)'.
`.r'
`$(FC) -c $(FFLAGS) $(RFLAGS)'.
Æ÷Æ®¶õ°ú Ratfor ÇÁ·Î±×·¥ »çÀüó¸®(Preprocessing Fortran and Ratfor programs)
`n.f' ´Â `n.r' ¶Ç´Â file{n.F} ·ÎºÎÅÍ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. ÀÌ ±ÔÄ¢Àº Ratfor ¶Ç´Â »çÀü󸮰¡´ÉÇÑ Æ÷Æ®¶õ ÇÁ·Î±×·¥À» ¾ö°ÝÇÑ Æ÷Æ®¶õ ÇÁ·Î±×·¥À¸·Î º¯È¯ÇÏ´Â »çÀü󸮱⸦ ½ÇÇà½Ãų »ÓÀÌ´Ù. »ç¿ëµÇ´Â Á¤È®ÇÑ ¸í·ÉÀº ´ÙÀ½°ú °°´Ù:
`.F'
`$(FC) -F $(CPPFLAGS) $(FFLAGS)'.
`.r'
`$(FC) -F $(FFLAGS) $(RFLAGS)'.
Modula-2 ÇÁ·Î±×·¥ ÄÄÆÄÀÏ(Compiling Modula-2 programs)
`n.sym' ´Â `n.def' ·ÎºÎÅÍ `$(M2C) $(M2FLAGS) $(DEFFLAGS)' ¶ó´Â ÇüÅÂÀÇ ¸í·ÉÀ» »ç¿ëÇؼ­ ¸¸µé¾îÁø´Ù. `n.o'´Â `n.mod';·ÎºÎÅÍ ¸¸µé¾îÁø´Ù. ±× ÇüÅ´ ´ÙÀ½°ú °°´Ù: `$(M2C) $(M2FLAGS) $(MODFLAGS)'.
¾î¼Àºí·¯ ÇÁ·Î±×·¥À» ¾î¼Àºí¸µÇÏ°í »çÀüó¸®Çϱâ(Assembling and preprocessing assembler programs)
`n.o' ´Â `n.s' ·ÎºÎÅÍ ¾î¼Àºí·¯ as ¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. Á¤È®ÇÑ ¸í·ÉÀº `$(AS) $(ASFLAGS)'. `n.s' ´Â C ¼±Çà 󸮱â cpp ¸¦ ½ÇÇàÇÔÀ¸·Î½á `n.S' ÆÄÀϷκÎÅÍ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. Á¤È®ÇÑ ¸í·ÉÀº `$(CPP) $(CPPFLAGS)'.
´ÜÀÏ ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ¸µÅ©(Linking a single object file)
`n' ´Â `n.o' ·ÎºÎÅÍ C ÄÄÆÄÀÏ·¯¸¦ °æÀ¯Çؼ­ ¸µÄ¿(º¸Åë ld)¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. Á¤È®ÇÑ ¸í·ÉÀº `$(CC) $(LDFLAGS) n.o $(LOADLIBES)'. ÀÌ ±ÔÄ¢Àº ´ÜÀÏ ¼Ò½º ÆÄÀÏÀ» °¡Áö´Â ´Ü¼øÇÑ ÇÁ·Î±×·¥¿¡ ´ëÇؼ­ Á¤È®ÇÑ °ÍÀ» ÇÑ´Ù. ´Ù¼öÀÇ ¿ÀºêÁ§Æ® ÆÄÀϵéÀÌ ÀÖ´õ¶óµµ(¾Æ¸¶µµ ´Ù¾çÇÑ ´Ù¸¥ ¼Ò½º ÆÄÀϵé·ÎºÎÅÍ ¿Â °Í) Á¤È®ÇÑ °ÍÀ» ÇàÇÒ °ÍÀÌ´Ù. À̵éÁß Çϳª´Â ½ÇÇà ÆÄÀÏÀÇ À̸§°ú °°Àº À̸§À» °¡Áø´Ù. ±×·¡¼­,
x: y.o z.o
`x.c', `y.c' ±×¸®°í `z.c' ¸ðµÎ°¡ Á¸ÀçÇÒ ¶§ ´ÙÀ½À» ½ÇÇàÇÒ °ÍÀÌ´Ù:
cc -c x.c -o x.o
cc -c y.c -o y.o
cc -c z.c -o z.o
cc x.o y.o z.o -o x
rm -f x.o
rm -f y.o
rm -f z.o
Á» ´õ º¹ÀâÇÑ °æ¿ì, À̸§ÀÌ ½ÇÇà ÆÄÀϷκÎÅÍ À¯µµµÇ´Â ¿ÀºêÁ§Æ® ÆÄÀÏÀÌ ¾øÀ» ¶§, ¸µÅ©¸¦ À§Çؼ­ ¸í½ÃÀû ¸í·ÉÀ» ÀÛ¼ºÇØ¾ß ÇÑ´Ù. `.o' ¿ÀºêÁ§Æ® ÆÄÀϵé·Î ¸¸µé¾îÁö´Â °¢ Á¾·ùÀÇ ÆÄÀÏÀº ÄÄÆÄÀÏ·¯(`$(CC)', `$(FC)', ¶Ç´Â `$(PC)' ¸¦ »ç¿ëÇؼ­ ÀÚµ¿À¸·Î ¸µÅ©µÈ´Ù; C ÄÄÆÄÀÏ·¯ `$(CC)'´Â `-c' ¿É¼Ç ¾øÀÌ `.s' ÆÄÀϵéÀ» ¾î¼ÀºíÇÏ´Â µ¥ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº `.o' ¿ÀºêÁ§Æ® ÆÄÀϵéÀ» Áß°£ ÆÄÀϵé·Î »ç¿ëÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù. ±×·¯³ª ÀÌ°ÍÀº ÇÑ ½ºÅÜÀ¸·Î ÄÄÆÄÀÏÇÏ°í ¸µÅ©ÇÏ´Â µ¥ ´õ ºü¸£´Ù. ÀÌ°ÍÀÌ ¾î¶»°Ô ÀÌ·ç¾îÁö´Â°¡ÀÌ´Ù.
C ÇÁ·Î±×·¥À» Yacc(Yacc for C programs)
`n.c' ´Â `n.y'·Î ºÎÅÍ `$(YACC) $(YFLAGS)' ¶ó´Â ¸í·ÁÀ» ½ÇÇàÇÔÀ¸·Î½á ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù.
C ÇÁ·Î±×·¥À» Lex(Lex for C programs)
`n.c' ´Â `n.l' ·ÎºÎÅÍ Lex ¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. ½ÇÁ¦ ¸í·ÉÀº `$(LEX) $(LFLAGS)'.
Ratfor ÇÁ·Î±×·¥À» Lex(Lex for Ratfor programs)
`n.r' ´Â Lex¸¦ ½ÇÇàÇÏ¿© `n.l' ·ÎºÎÅÍ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. ½ÇÁ¦ ¸í·ÉÀº `$(LEX) $(LFLAGS)'. µ¿ÀÏÇÑ Á¢¹Ì»ç `.l'À» ¸ðµç Lex ÆÄÀϵ鿡 ´ëÇؼ­ »ç¿ëÇÏ´Â °ü·Ê´Â, ±×µéÀÌ Ratfor Äڵ峪 C ÄÚµåµé Áß¿¡ ¾î¶² °ÍÀ» ¸¸µé´øÁö »ó°ü¾øÀÌ, make°¡ Ưº°ÇÑ °æ¿ì¿¡ ÀÌ µÎ ¾ð¾îµé ÁßÀÇ ¾î¶² °ÍÀ» »ç¿ëÁßÀÎÁö ÀÚµ¿À¸·Î °áÁ¤ÇÏ´Â °ÍÀ» ºÒ°¡´ÉÇÏ°Ô ¸¸µç´Ù. `.l' ÆÄÀϷκÎÅÍ ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ´Ù½Ã ¸¸µé±â À§Çؼ­ make°¡ È£ÃâµÇ¾ú´Ù¸é ÀÌ°ÍÀº ¾î¶² ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ °ÍÀΰ¡¸¦ ¹Ýµå½Ã ÃßÃøÇس»¾ß ÇÑ´Ù. C ÄÄÆÄÀÏ·¯¶ó°í ÃßÃøÇس¾ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ¿Ö³Ä¸é ÀÌ°ÍÀÌ °¡Àå ÀϹÝÀûÀ̱⠶§¹®ÀÌ´Ù. Ratfor¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é make°¡ ÀÌ°ÍÀ» ¾Ëµµ·Ï `n.r'À» makefile¾È¿¡ ¾ð±ÞÇØ¾ß ÇÑ´Ù. ¶Ç´Â Ratfor¸¦ C ÆÄÀÏµé ¾øÀÌ, ¹èŸÀûÀ¸·Î »ç¿ëÇÏ°í ÀÖ´Ù¸é ´ÙÀ½°ú °°ÀÌ Çؼ­ ¹¬½ÃÀû ±ÔÄ¢ Á¢¹Ì»ç ¸®½ºÆ®·ÎºÎÅÍ `.c'¸¦ Á¦°ÅÇ϶ó:
.SUFFIXES:
.SUFFIXES: .o .r .f .l ...
C, Yacc, ¶Ç´Â Lex ÇÁ·Î±×·¥À¸·ÎºÎÅÍ Lint ¶óÀ̺귯¸® ¸¸µé±â(Making Lint Libraries from C, Yacc, or Lex programs)
`n.ln' ´Â lint¸¦ ½ÇÇàÇؼ­ `n.c' ·ÎºÎÅÍ ¸¸µé¾îÁø´Ù. Á¤È®ÇÑ ¸í·ÉÀº `$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i'. `n.y' ³ª `n.l' ·ÎºÎÅÍ ¸¸µé¾îÁø C Äڵ忡 ´ëÇؼ­ µ¿ÀÏÇÑ ¸í·ÉÀÌ »ç¿ëµÈ´Ù.
TeX °ú À¥(TeX and Web)
`n.dvi' ´Â `n.tex' ·ÎºÎÅÍ `$(TEX)' ¸í·É¿¡ ÀÇÇؼ­ ¸¸µé¾îÁø´Ù. `n.tex' ´Â `n.web' ·ÎºÎÅÍ `$(WEAVE)' ·Î ¸¸µé¾îÁö°Å³ª, `n.w' ·ÎºÎÅÍ (±×¸®°í `n.ch' °¡ Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖ´Ù¸é ÀÌ°ÍÀ¸·ÎºÎÅÍ) `$(CWEAVE)' ¸í·É¿¡ ÀÇÇؼ­ ¸¸µé¾îÁø´Ù. `n.p' ´Â `n.web' ·Î ºÎÅÍ `$(TANGLE)' ¸í·É¿¡ ÀÇÇؼ­ ¸¸µé¾îÁö°í `n.c' ´Â `n.w' ·ÎºÎÅÍ(±×¸®°í `n.ch' ÀÌ Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖ´Ù¸é ÀÌ°ÍÀ¸·ÎºÎÅÍ) `$(CTANGLE)' ¸í·É¿¡ ÀÇÇؼ­ ¸¸µé¾îÁø´Ù.
Texinfo ¿Í Info
`n.dvi' ´Â `n.texinfo', `n.texi', ¶Ç´Â `n.txinfo' ·ÎºÎÅÍ `$(TEXI2DVI) $(TEXI2DVI_FLAGS)' ¸í·ÉÀ» »ç¿ëÇؼ­ ¸¸µé¾îÁø´Ù. `n.info' ´Â `n.texinfo', `n.texi', ¶Ç´Â `n.txinfo' ·ÎºÎÅÍ `$(MAKEINFO) $(MAKEINFO_FLAGS)' ¸í·ÉÀ» »ç¿ëÇؼ­ ¸¸µé¾îÁø´Ù.
RCS
`n' À̶ó´Â À̸§À» °¡Áø ÀÓÀÇÀÇ ÆÄÀÏÀº `n,v' ¶Ç´Â `RCS/n,v' ¶ó´Â À̸§À» °¡Áø RCS ÆÄÀϷκÎÅÍ, ÇÊ¿äÇÏ´Ù¸é ÃßÃâµÈ´Ù. »ç¿ëµÇ´Â Á¤È®ÇÑ ¸í·ÉÀº `$(CO) $(COFLAGS)' ÀÌ´Ù. `n' ´Â ÀÌ°ÍÀÌ ÀÌ¹Ì Á¸ÀçÇϰųª, ½ÉÁö¾î RCS ÆÄÀÏÀÌ ´õ »õ·Î¿î °ÍÀ̶ó ÇÒ Áö¶óµµ, RCS ·ÎºÎÅÍ ÃßÃâµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. RCS ¸¦ À§ÇÑ ±ÔÄ¢µéÀº Á¦ÀÏ ¸¶Áö¸·(terminal) (see section ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢(Match-Anything Pattern Rules)) À̾, RCS ÆÄÀϵéÀº ´Ù¸¥ ¼Ò½ºµé·ÎºÎÅÍ ¸¸µé¾îÁú ¼ö ¾ø´Ù; ±×µéÀº ½ÇÁ¦·Î ¹Ýµå½Ã Á¸ÀçÇØ¾ß ÇÑ´Ù.
SCCS
`n' ´Â `s.n' ¶Ç´Â `SCCS/s.n' ¶ó´Â À̸§À» °¡Áø SCCS ÆÄÀϷκÎÅÍ, ÇÊ¿äÇÏ´Ù¸é ÃßÃâµµ´Ï´Ù. »ç¿ëµÇ´Â Á¤È®ÇÑ ¸í·ÉÀº `$(GET) $(GFLAGS)' ÀÌ´Ù. SCCS ¸¦ À§ÇÑ ±ÔÄ¢µéÀº Á¦ÀÏ ¸¶Áö¸·(terminal) (see section ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢(Match-Anything Pattern Rules)) ÀÌÀ̼­, SCCS ÆÄÀϵéÀº ´Ù¸¥ ¼Ò½º·ÎºÎÅÍ ¸¸µé¾îÁú ¼ö ¾ø´Ù; ±×µéÀº ¹Ýµå½Ã ½ÇÁ¦·Î Á¸ÀçÇØ¾ß ÇÑ´Ù. SCCS À» À§Çؼ­, `n' À̶õ ÆÄÀÏÀÌ `n.sh' ¶ó´Â °ÍÀ¸·ÎºÎÅÍ º¹»çµÇ°í ½ÇÇà °¡´ÉÀÌ µÈ´Ù(¸ðµÎ¿¡ ÀÇÇؼ­). ÀÌ°ÍÀº SCCS ¿¡ üũÀεǴ ½© ½ºÅ©¸³Æ®ÀÌ´Ù. RCS ´Â ÆÄÀÏÀÇ ½ÇÇà Æ۹̼ÇÀ» º¸Á¸Çϱ⠶§¹®¿¡ ÀÌ ±â´ÉÀ» RCS ¿Í ÇÔ²² »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¿ì¸®´Â SCCS ¸¦ µÇµµ·ÏÀÌ¸é »ç¿ëÇÏÁö ¾Êµµ·Ï ±Ç°íÇÏ´Â ¹ÙÀÌ´Ù. RCS ´Â ³Î¸® ´õ ÁÁÀº °ÍÀ̶ó°í »ý°¢µÇ¾îÁö°í ÀÖ°í ¶ÇÇÑ °øÂ¥ÀÌ´Ù. ºñ½ÁÇÑ(¶Ç´Â ´õ ¸øÇÑ) »ó¿ë ¼ÒÇÁÆ®¿þ¾î ´ëÈù ¹«·á ¼ÒÇÁÆ®¿þ¾î¸¦ ¼±ÅÃÇÔÀ¸·Î½á ¿©·¯ºÐÀº ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î ¿îµ¿À» Áö¿øÇÏ´Â °ÍÀÌ´Ù.

º¸Åë À§ÀÇ ÀÖ´Â Å×ÀÌºí¿¡ ³ª¿Â º¯¼öµé¸¸À» º¯°æÇÏ°íÀÚ ÇÒ °ÍÀÌ´Ù. À̵éÀº ´ÙÀ½ ¼½¼Ç¿¡¼­ ¼³¸íµÈ´Ù.

±×·¯³ª ³»Àå ¹¬½Ã ±ÔÄ¢µé¿¡ ÀÖ´Â ¸í·ÉµéÀÌ ½ÇÁ¦·Î COMPILE.c, LINK.p, ±×¸®°í PREPROCESS.S ¿Í °°Àº º¯¼öµéÀ» »ç¿ëÇÑ´Ù. À̵éÀÇ °ªÀº À§¿¡ ³ª¿­µÈ ¸í·ÉµéÀ» ´ã°í ÀÖ´Ù.

make ´Â, `.x' ¼Ò½º ÆÄÀÏÀ» ÄÄÆÄÀÏÇÏ´Â ±ÔÄ¢Àº COMPILE.x ¶ó´Â º¯¼ö¸¦ »ç¿ëÇÑ´Ù´Â °ü·Ê¸¦ »ç¿ëÇÑ´Ù. ºñ½ÁÇÏ°Ô `.x' ¶ó´Â ÆÄÀϷκÎÅÍ ½ÇÇà ÆÄÀϤ·¸£ ¸¸µå´Â ±ÔÄ¢Àº LINK.x ¸¦ »ç¿ëÇÑ´Ù; `.x' ¸¦ ¼±Çà ó¸®ÇÏ´Â ±ÔÄ¢Àº PREPROCESS.x ¸¦ »ç¿ëÇÑ´Ù.

¿ÀºêÁ§Æ® ÆÄÀÏÀ» »ý¼ºÇÏ´Â ¸ðµç ±ÔÄ¢µéÀº OUTPUT_OPTION º¯¼ö¸¦ »ç¿ëÇÑ´Ù. make ´Â ÀÌ º¯¼ö¸¦ ÄÄÆÄÀÏ ¶§ÀÇ ¿É¼Ç¿¡ µû¶ó¼­, `-o $@'¸¦ ´ãµµ·Ï, ¶Ç´Â ºó °ÍÀÌ µÇµµ·Ï Á¤ÀÇÇÑ´Ù. VPATH (see section Á¾¼Ó¹°À» À§ÇÑ µð·ºÅ丮 °Ë»ö(Searching Directories for Dependencies) ¸¦ »ç¿ëÇÒ ¶§¿Í ºñ½ÁÇÏ°Ô, ´Ù¸¥ µð·ºÅ丮¿¡ ¼Ò½º°¡ ÀÖÀ» ¶§, °á°ú°¡ Á¤È®ÇÑ ÆÄÀÏ·Î °¡µµ·Ï Çϱâ À§Çؼ­ `-o' ¿É¼ÇÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ±×·¯³ª, ¾î¶² ½Ã½ºÅ۵鿡¼­ ÄÄÆÄÀÏ·¯µéÀº ¿ÀºêÁ§Æ® ÆÄÀϵ鿡 ´ëÇؼ­ `-o' ¿É¼ÇÀ» ¹Þ¾ÆµéÀÌÁö ¾Ê´Â´Ù. ±×·± ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é, VPATH¸¦ »ç¿ëÇÑ´Ù¸é, ¾î¶² ÄÄÆÄÀÏÀº ±×µéÀÇ °á°ú¸¦ ´Ù¸¥ À§Ä¡¿¡´Ù ³õÀ» °ÍÀÌ´Ù. ÀÌ·± ¹®Á¦¿¡ ´ëÇÑ °¡´ÉÇÑ ÇØ°á¹ý(workaround)Àº OUTPUT_OPTION ¿¡°Ô `; mv $*.o $@' °ªÀ» ÁÖ´Â °ÍÀÌ´Ù.

¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇØ »ç¿ëµÇ´Â º¯¼ö(Variables Used by Implicit Rules)

³»Àå ¹¬½ÃÀû ±ÔÄ¢ÀÇ ¸í·ÉµéÀº ¾î¶² »çÀüÁ¤ÀÇµÈ º¯¼öµéÀ» ÀÚÀ¯·Ó°Ô »ç¿ëÇÑ´Ù. ÀÌ·± º¯¼öµéÀ» makefile ¾È¿¡¼­, make¿¡ ´ëÇÑ ¸Å°³º¯¼öµé·Î, ¶Ç´Â ȯ°æ¿¡¼­, ¹¬½ÃÀû ±ÔÄ¢µéÀ» ÀçÁ¤ÀÇÇÏÁö ¾Ê°í¼­ À̵éÀÌ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ» ¹Ù²Ù±â À§ÇØ, º¯°æÇÒ ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î¼­ C ¼Ò½º ÆÄÀÏÀ» ÄÄÆÄÀÏÇÏ´Â µ¥ »ç¿ëµÇ´Â ¸í·ÉÀº ½ÇÁ¦·Î `$(CC) -c $(CFLAGS) $(CPPFLAGS)' ÀÌ´Ù. »ç¿ëµÈ º¯¼öµéÀÇ ½ÇÁ¦ °ªµéÀº `cc'¿Í ¾Æ¹«°Íµµ ¾Æ´Ï±â ¶§¹®¿¡ °á±¹ `cc -c' ÀÌ µÈ´Ù. `CC' ¸¦ `ncc'·Î ÀçÁ¤ÀÇÇÔÀ¸·Î½á, `ncc' °¡ ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇؼ­ ¼öÇàµÇ´Â ¸ðµç C ÄÄÆÄÀÏ¿¡ ´ëÇؼ­ »ç¿ëµÇµµ·Ï ÇÒ ¼ö ÀÖ´Ù. `CFLAGS' ¸¦ `-g' ·Î º¯°æÇؼ­ `-g' ¿É¼ÇÀ» °¢ ÄÄÆÄÀÏ¿¡ Àü´ÞÇÒ ¼ö ÀÖ´Ù. C ÄÄÆÄÀÏÀ» ¼öÇàÇÏ´Â ¸ðµç ¹¬½ÃÀû ±ÔÄ¢µéÀº `$(CC)' ¸¦ »ç¿ëÇÏ¿© ±× ÄÄÆÄÀÏ·¯ÀÇ ÇÁ·Î±×·¥ À̸§°ú ¸ðµç °ÍÀÌ ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁø ¸Å°³º¯¼öµé ¾È¿¡ `$(CFLAGS)' ¸¦ Æ÷ÇÔÇÑ´Ù.

¹¬½ÃÀû ±ÔÄ¢µé¾È¿¡ »ç¿ëµÈ º¯¼öµéÀº µÎ°¡Áö Ŭ·¡½ºµé·Î ±¸ºÐµÈ´Ù; ÇÁ·Î±×·¥µéÀÇ À̸§ÀÎ °Íµé(CC ¿Í °°ÀÌ)°ú, ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¸Å°³º¯¼öµéÀ» ´ã°í ÀÖ´Â °Íµé(CFLAGS ¿Í °°ÀÌ). ("ÇÁ·Î±×·¥ÀÇ À̸§" µµ ¶ÇÇÑ ¾î¶² ¸í·É ¸Å°³º¯¼öµéÀ» °¡Áú ¼ö ÀÖÁö¸¸ ÀÌ°ÍÀº ¹Ýµå½Ã ½ÇÁ¦ÀÇ ½ÇÇà ÇÁ·Î±×·¥ À̸§À¸·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù.) Çϳª ÀÌ»óÀÇ º¯¼ö °ªÀ» °¡Áø´Ù¸é ±×°ÍµéÀ» °ø¹é¹®ÀÚµé·Î ±¸ºÐÇ϶ó.

´ÙÀ½Àº ³»Àå ±ÔÄ¢µé ¾È¿¡¼­ ÇÁ·Î±×·¥µéÀÇ À̸§À¸·Î »ç¿ëµÇ´Â º¯¼öµéÀ» ¸ðÀº Å×À̺íÀÌ´Ù:

AR
¾ÆÄ«À̺ê-°ü¸® ÇÁ·Î±×·¥; µðÆúÆ®´Â `ar'.
AS
¾î¼Àºí¸® ¼öÇà ÇÁ·Î±×·¥; µðÆúÆ®´Â `as'.
CC
C ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `cc'.
CXX
C++ ÇÁ·Î±×·¥µéÀ» ÄÄÆÄÀÏÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `g++'.
CO
RCS ·ÎºÎÅÍ ÆÄÀÏÀ» ÃßÃâÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `co'.
CPP
°á°ú´Â Ç¥ÁØ Ãâ·ÂÀ¸·Î ³»´Â, C ¼±Çà󸮱⸦ ½ÇÇàÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â samp{$(CC) -E}.
FC
Æ÷Æ®¶õ°ú Ratfor ÇÁ·Î±×·¥µéÀ» ÄÄÆÄÀÏÇϰųª ¼±Çàó¸®ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `f77'.
GET
SCCS ·ÎºÎÅÍ ÆÄÀÏÀ» ÃßÃâÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `get'.
LEX
Lex ¹®¹ýµéÀ» C ÇÁ·Î±×·¥µéÀ̳ª Ratfor ÇÁ·Î±×·¥µé·Î º¯È¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `lex'.
PC
ÆĽºÄ® ÇÁ·Î±×·¥µéÀ» ÄÄÆÄÀÏÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `pc'.
YACC
Yacc ¹®¹ýµéÀ» C ÇÁ·Î±×·¥µé·Î º¯È¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `yacc'.
YACCR
Yacc ¹®¹ýµéÀ» Ratfor ÇÁ·Î±×·¥µé·Î º¯È¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `yacc -r'.
MAKEINFO
Texinfo ¼Ò½º ÆÄÀÏÀ» Info ÆÄÀÏ·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `makeinfo'.
TEX
TeX ¼Ò½º·ÎºÎÅÍ TeX DVI ¸¦ ¸¸µå´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `tex'.
TEXI2DVI
Texinfo ¼Ò½º·ÎºÎÅÍ TeX DVI ÆÄÀϵéÀ» ¸¸µå´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `texi2dvi'.
WEAVE
Web À» TeX ·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `weave'.
CWEAVE
C Web À» TeX ·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `cweave'.
TANGLE
Web À» ÆĽºÄ®·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `tangle'.
CTANGLE
C Web À» C ·Î º¯È¯ÇÏ´Â ÇÁ·Î±×·¥; µðÆúÆ®´Â `ctangle'.
RM
ÆÄÀÏÀ» Á¦°ÅÇÏ´Â ¸í·É; µðÆúÆ® `rm -f'.

´ÙÀ½Àº ÀÌ°ÍÀÇ °ªµéÀÌ À§¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé¿¡ ´ëÇÑ Ãß°¡ÀÇ ¸Å°³º¯¼öµéÀÌ µÇ´Â º¯¼öµéÀ» ¸ðÀº Å×À̺íÀÌ´Ù. ÀÌ·± ¸ðµç °Íµé¿¡ ´ëÇÑ µðÆúÆ®´Â ´Ù¸¥ ¾ð±ÞÀÌ ¾ø´Ù¸é ºó ¹®ÀÚ¿­ÀÌ´Ù.

ARFLAGS
¾ÆÄ«À̺ê-°ü¸® ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁö´Â Ç÷¡±×; default `rv'.
ASFLAGS
¾î¼Àºí·¯¿¡ ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±× (`.s' ³ª `.S' ÆÄÀÏ¿¡ ´ëÇؼ­ ¸í½ÃÀûÀ¸·Î È£ÃâµÇ¾úÀ» ¶§).
CFLAGS
C ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
CXXFLAGS
C++ ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
COFLAGS
RCS co ÇÁ·Î±×·¥¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
CPPFLAGS
C ¼±Çà󸮱â¿Í ÀÌ°ÍÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥(C ±×¸®°í Æ÷Æ®¶õ ÇÁ·Î±×·¥)¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
FFLAGS
Æ÷Æ®¶õ ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
GFLAGS
SCCS get ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
LDFLAGS
¸µÄ¿ `ld' ¸¦ È£ÃâÇÒ °ÍÀ¸·Î ÃßÁ¤µÇ´Â ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
LFLAGS
Lex ¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
PFLAGS
ÆĽºÄ® ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
RFLAGS
Ratfor ÇÁ·Î±×·¥µé¿¡ ´ëÇؼ­ Æ÷Æ®¶õ ÄÄÆÄÀÏ·¯¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐÀÇ Ç÷¡±×.
YFLAGS
Yacc ¿¡°Ô ÁÖ¾îÁö´Â ¿©ºÐ¿¡ Ç÷¡±×.

¹¬½ÃÀû ±ÔÄ¢ÀÇ ¿¬¼â(Chains of Implicit Rules)

¶§¶§·Î ¾î¶² ÆÄÀÏÀº ¹¬½ÃÀû ±ÔÄ¢µéÀ» ¼øÂ÷ÀûÀ¸·Î Àû¿ëÇؼ­ ¸¸µé¾îÁú ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ `n.o' ¶ó´Â ÆÄÀÏÀº ¸Ç¸ÕÀú Yacc ¸¦ ½ÇÇàÇÏ°í ±× ´ÙÀ½ cc¸¦ ½ÇÇàÇؼ­, `n.y'·ÎºÎÅÍ ¸¸µé¾îÁú ¼ö ÀÖ´Ù. ÀÌ·± ½ÃÄö½º´Â ¿¬¼â(chain) ¶ó°í ºÒ¸°´Ù.

`n.c' ÀÌ Á¸ÀçÇÑ´Ù¸é, ¶Ç´Â makefile ¿¡¼­ ¾ð±ÞµÇ¾ú´Ù¸é, ¾î¶² Ư¼öÇÑ °Ë»öµµ ÇÊ¿äÇÏÁö ¾Ê´Ù; make´Â `n.c' ·ÎºÎÅÍ C ÄÄÆÄÀÏÀ» ÅëÇؼ­ ¿ÀºêÁ§Æ® ÆÄÀÏÀÌ ¸¸µé¾îÁú ¼ö ÀÖ´Ù´Â °ÍÀ» ¾È´Ù; ³ªÁß¿¡ `n.c' ¸¦ ¸¸µå´Â ¹æ¹ýÀ» »ý°¢ÇÒ ¶§, Yacc ¸¦ ½ÇÇàÇϱâ À§ÇÑ ±ÔÄ¢ÀÌ »ç¿ëµÈ´Ù. °á±¹ µÎ `n.c' °ú `n.o' ÀÌ °»½ÅµÈ´Ù.

±×·¯³ª `n.c' ÀÌ Á¸ÀçÇÏÁö ¾Ê°í ¾ð±ÞµÇÁöµµ ¾Ê¾Ò´ÙÇÏ´õ¶óµµ, make´Â ±×°ÍÀÌ `n.o' °ú `n.y' »çÀÌ¿¡¼­ ²ú±ä °í¸®¶ó´Â °ÍÀ» ¾È´Ù. ÀÌ·± °æ¿ì `n.c' ´Â Áß°£ ÆÄÀÏ(intermediate file) À̶ó°í ºÒ¸°´Ù. ÀÏ´Ü make°¡ Áß°£ ÆÄÀÏÀ» »ç¿ëÇϱâ·Î °áÁ¤ÇÏ¿´´Ù¸é ÀÌ°ÍÀº ¸¶Ä¡ makefile¾È¿¡¼­ ¾ð±ÞµÈ °Íó·³, ±×°ÍÀ» »ý¼ºÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢°ú ÇÔ²² µ¥ÀÌÅͺ£À̽º¿¡ ³Ö¾îÁö°Ô µÈ´Ù.

Áß°£ ÆÄÀϵéÀº ¸ðµç ´Ù¸¥ ÆÄÀϵéó·³ ±×µéÀÇ ±ÔÄ¢À» »ç¿ëÇؼ­ ´Ù½Ã ¸¸µé¾îÁø´Ù. ±×·¯³ª Áß°£ ÆÄÀϵéÀº ´ÙÀ½°ú °°Àº µÎ°¡Áö ¹æ½ÄÀ¸·Î ´Ù¸£°Ô Ãë±ÞµÈ´Ù.

ù¹ø° ´Ù¸¥Á¡Àº, Áß°£ ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§ ÀϾ´Â °ÍÀÌ´Ù. ÀÏ¹Ý Æθ® b °¡ Á¸ÀçÇÏÁö ¾Ê°í make °¡ b ¿¡ Á¾¼ÓÀûÀΠŸ°ÙÀ» »ý°¢ÇÑ´Ù¸é ÀÌ°ÍÀº Ç×»ó b¸¦ »ý¼ºÇÑ ´ÙÀ½ b·ÎºÎÅÍ ±× Ÿ°ÙÀ» °»½ÅÇÑ´Ù. ±×·¯³ª b°¡ Áß°£ ÆÄÀÏÀ̶ó¸é make´Â ±×´ë·Î µÑ ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀº b ¶Ç´Â ±Ã±ØÀûÀΠŸ°ÙÀ», bÀÇ ¾î¶² Á¾¼Ó¹°µµ Ÿ°Ùº¸´Ù ´õ »õ·Î¿î °ÍÀÌ ¾Æ´Ï°Å³ª ±× Ÿ°ÙÀ» °»½ÅÇÒ ¾î¶² ´Ù¸¥ ÀÌÀ¯°¡ ¾ø´Ù¸é, °»½ÅÇÏ·Á°í ÇÏÁö ¾Ê´Â´Ù.

µÎ¹ø° ´Ù¸¥Á¡Àº, make°¡ ¾î¶² ´Ù¸¥ °ÍÀ» °»½ÅÇϱâ À§Çؼ­ b¸¦ »ý¼ºÇÑ´Ù¸é, ÀÌ°ÍÀÌ ´õÀÌ»ó ÇÊ¿ä¾øÀ» ¶§ b¸¦ Áö¿î´Ù´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î make ÀÌÀü¿¡ Á¸ÀçÇÏÁö ¾Ê´ø Áß°£ ÆÄÀÏÀº make ÀÌÈÄ¿¡µµ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. make´Â ¾î¶² ÆÄÀÏÀÌ »èÁ¦µÇ°í Àִ°¡¸¦ º¸¿©ÁÖ´Â `rm -f' ¸í·ÉÀ» ÀμâÇÔÀ¸·Î½á ±× »èÁ¦ »ç½ÇÀ» ¿©·¯ºÐ¿¡°Ô º¸°íÇÑ´Ù.

ÀϹÝÀûÀ¸·Î ¾î¶² ÆÄÀÏÀº ÀÌ°ÍÀÌ makefile¿¡¼­ Ÿ°ÙÀ̳ª Á¾¼Ó¹°·Î ¾ð±ÞµÈ´Ù¸é Áß°£ ÆÄÀÏÀÌ µÉ ¼ö ¾ø´Ù. ±×·¯³ª Ư¼ö Ÿ°Ù .INTERMEDIATE ÀÇ Á¾¼Ó¹° ¸®½ºÆ®¿¡ ³Ö¾î¼­ ¾î¶² ÆÄÀÏÀ» ¸í½ÃÀûÀ¸·Î Áß°£ ÆÄÀÏ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ±× ÆÄÀÏÀÌ ¾î¶² ´Ù¸¥ ½ÄÀ¸·Î ¾ð±ÞµÇ¾ú´Ù ÇÏ´õ¶óµµ È¿·ÂÀ» ¹ßÈÖÇÑ´Ù.

Áß°£ ÆÄÀÏÀÇ ÀÚµ¿ »èÁ¦¸¦ ±× ÆÄÀÏÀ» ÀÌÂ÷(secondary) ÆÄÀÏ·Î ÁöÁ¤ÇÔÀ¸·Î½á ¸·À» ¼ö ÀÖ´Ù. ÀÌ·¸°Ô Çϱâ À§Çؼ­ ÀÌ°ÍÀ» Ư¼ö Ÿ°Ù .SECONDARY ÀÇ Á¾¼Ó¹° ¸®½ºÆ®¿¡ ³ÖÀ¸¸é µÈ´Ù. ¾î¶² ÆÄÀÏÀÌ ÀÌÂ÷À̶ó¸é make´Â ±× ÆÄÀÏÀÌ »çÀü¿¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù´Â ÀÌÀ¯ Çϳª¸¸À¸·Î »ý¼ºÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. ±×·¯³ª make ´Â ±× ÆÄÀÏÀ» ÀÚµ¿À¸·Î Áö¿ìÁö ¾Ê´Â´Ù. ¾î¶² ÆÄÀÏÀ» ÀÌÂ÷·Î ÁöÁ¤ÇÏ´Â °ÍÀº ±×°ÍÀ» ¶ÇÇÑ Áß°£ ÆÄÀÏ·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.

¹¬½ÃÀû ±ÔÄ¢(`%.o'¿Í °°Àº) ÀÇ Å¸°Ù ÆÐÅÏÀ» Ư¼ö Ÿ°Ù .PRECIOUS ÀÇ Á¾¼Ó¹°·Î ÁöÁ¤Çؼ­ Ÿ°Ù ÆÐÅÏÀÌ ±× ÆÄÀÏÀÇ À̸§°ú ÀÏÄ¡ÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢µé¿¡ ÀÇÇؼ­ ¸¸µé¾îÁø Áß°£ ÆÄÀϵéÀ» º¸Á¸ÇÒ ¼ö ÀÖ´Ù. section make¸¦ ÀÎÅÍ·´Æ® ¶Ç´Â Á×À̱â(Interrupting or Killing make) ÂüÁ¶.

ÇϳªÀÇ ¿¬¼â°¡ µÎ°³º¸´Ù ¸¹Àº ¹¬½ÃÀû ±ÔÄ¢µéÀ» °¡Áö°í ÀÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ RCS, Yacc, ±×¸®°í cc ¸¦ ½ÇÇàÇؼ­ `RCS/foo.y,v' ·ÎºÎÅÍ `foo' ¸¦ ¸¸µå´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ¿©±â¼­ µÎ ÆÄÀÏ `foo.y' °ú `foo.c' ÀÌ ¸¶Áö¸·¿¡ Áö¿öÁö´Â Áß°£ ÆÄÀϵåÀÌ´Ù.

¾î¶² ¹¬½ÃÀû ±ÔÄ¢µµ ¿¬¼â¿¡¼­ µÎ¹ø ÀÌ»ó ³ªÅ¸³¯ ¼ö ¾ø´Ù. ÀÌ°ÍÀº make °¡ ¸µÄ¿¸¦ µÎ¹ø ½ÇÇàÇؼ­ `foo.o.o' ·ÎºÎÅÍ `foo'¸¦ ¸¸µå´Â °Í°ú °°Àº ÀÌ»óÇÑ ÀÏÀ» »ý°¢ÇÏÁö ¾ÊÀ» °ÍÀ̶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ·± Á¦¾àÀº ¹¬½ÃÀû ±ÔÄ¢ ¿¬¼â¸¦ ãÀ¸¸é¼­ ¹«ÇÑ ·çÇÁ¿¡ ºüÁö´Â °ÍÀ» ¸·´Â ¶Ç´Ù¸¥ ÀåÁ¡À» °¡Áø´Ù.

±×·¸Ä¡ ¾Ê´Ù¸é ±ÔÄ¢ ¿¬¼âµé¿¡ ÀÇÇؼ­ 󸮵É, ¾î¶² °æ¿ìµéÀ» ÃÖÀûÈ­ÇÏ´Â ¸î°¡Áö Ư¼ö ¹¬½ÃÀû ±ÔÄ¢µéÀÌ ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ `foo'¸¦ `foo.c' ·ÎºÎÅÍ ¸¸µå´Â °ÍÀº file{foo.o} ¸¦ Áß°£ ÆÄÀÏ·Î »ç¿ëÇؼ­, ºÐ¸®µÈ ¿¬¼â ±ÔÄ¢µé·Î ÄÄÆÄÀÏµÇ°í ¸µÅ©µÊÀ¸·Î½á ó¸®µÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ÀÌ·± °æ¿ì ½ÇÁ¦·Î ÀϾ´Â °ÍÀº ´ÜÀÏ cc ¸í·ÉÀ¸·Î ÄÄÆÄÀÏ°ú ¸µÅ©¸¦ °°ÀÌ ¼öÇàÇϴ Ư¼öÇÑ ±ÔÄ¢ ÇϳªÀÌ´Ù. ÀÌ·± ÃÖÀûÈ­µÈ ±ÔÄ¢Àº ±ÔÄ¢µéÀÇ ¼ø¼­¿¡¼­ Á» ´õ ¸ÕÀú ¿À±â ¶§¹®¿¡ ½ºÅÜ-¹ÙÀÌ-½ºÅÜ ¿¬¼âº¸´Ù ´õ ¿ì¼± Àû¿ëµÈ´Ù.

ÆÐÅÏ ±ÔÄ¢À» Á¤ÀÇÇÏ°í ÀçÁ¤Çϱâ(Defining and Redefining Pattern Rules)

¿©·¯ºÐÀº ÆÐÅÏ ±ÔÄ¢(pattern rule) À» ÀÛ¼ºÇؼ­ ¹¬½ÃÀû ±ÔÄ¢À» Á¤ÀÇÇÑ´Ù. ÆÐÅÏ ±ÔÄ¢Àº ÀÏ¹Ý ±ÔÄ¢°ú, ÀÌ°ÍÀÇ Å¸°ÙÀÌ `%' (±×µéÁß Á¤È®È÷ ÇÑ°³) ¹®ÀÚ¸¦ °¡Áö°í ÀÖ´Ù´Â Á¡À» Á¦¿ÜÇÏ°í´Â, µ¿ÀÏÇÏ´Ù. ÀÌ Å¸°ÙÀº ÆÄÀÏ À̸§µé°ú ÀÏÄ¡ÇÏ´Â ÆÐÅÏÀ¸·Î »ý°¢µÈ´Ù; `%'´Â ºó ¼­ºê¹®ÀÚ¿­ÀÌ ¾Æ´Ï¶ó¸é ¹«¾ù°úµµ ÀÏÄ¡ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ¹Ý¸é¿¡ ´Ù¸¥ ¹®ÀÚµéÀº ±×µé Àڽŵé°ú¸¸ ÀÏÄ¡ÇÑ´Ù. ±×µéÀÌ À̸§µéÀÌ Å¸°Ù À̸§°ú °ü·ÃµÈ ¹æ¹ýÀ» º¸¿©ÁÖ±â À§Çؼ­ Á¾¼Ó¹°µéÀº `%'¸¦ »ç¿ëÇÑ´Ù.

±×·¡¼­ `%.o : %.c' ¶ó´Â ÆÐÅÏ ±ÔÄ¢Àº ÆÄÀÏ `stem.c' ·ÎºÎÅÍ `stem.o' ¶ó´Â ÆÄÀÏÀ» ¸¸µå´Â ¹æ¹ýÀ» ¸»ÇÑ´Ù.

`%' À» ÆÐÅÏ ±ÔÄ¢µé¿¡¼­ »ç¿ëÇÑ È®ÀåÀÌ, makefileÀÌ ÀÐÈú ¶§ ¹ß»ýÇÏ´Â ´Ù¸¥ º¯¼ö³ª ÇÔ¼ö È®Àå ÈÄ¿¡ ¹ß»ýµÇ´Â °Í¿¡ ÁÖÀÇÇÏÀÚ. See section º¯¼ö »ç¿ë ¹æ¹ý(How to Use Variables), ±×¸®°í section ÅؽºÆ® º¯È¯À» À§ÇÑ ÇÔ¼ö(Functions for Transforming Text).

ÆÐÅÏ ±ÔÄ¢¿¡ ´ëÇÑ ¼Ò°³(Introduction to Pattern Rules)

ÆÐÅÏ ±ÔÄ¢Àº Ÿ°Ù ¾È¿¡ `%' ¹®ÀÚ (Á¤È®È÷ ±×µé Áß Çϳª) ¸¦ ´ã°í ÀÖ´Ù; ±×·¸Áö ¾ÊÀ¸¸é ÀÌ°ÍÀº ÀÏ¹Ý ±ÔÄ¢°ú ¿ÏÀüÈ÷ ¶È°°ÀÌ º¸ÀÏ °ÍÀÌ´Ù. Ÿ°ÙÀº ÆÄÀÏÀ̸§µé°ú ÀÏÄ¡ÇÏ´Â ÆÐÅÏÀÌ´Ù; `%' ´Â ÀÓÀÇÀÇ ºó °ÍÀÌ ¾Æ´Ñ ºÎºÐ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÏ°í ´Ù¸¥ ¹®ÀÚµéÀº ±×µé Àڽŵé°ú¸¸ ÀÏÄ¡ÇÑ´Ù.

¿¹¸¦ µé¾î¼­, ÆÐÅÏÀ¸·Î½á `%.c' ´Â `.c'·Î ³¡³ª´Â ÀÓÀÇÀÇ ÆÄÀÏ À̸§°ú ÀÏÄ¡ÇÑ´Ù. ÆÐÅÏÀ¸·Î½á `s.%.c' ´Â `s.' ·Î ½ÃÀÛÇÏ°í `.c' ·Î ³¡³ª¸ç Àû¾îµµ ´Ù¼¸°³ÀÇ ¹®ÀÚ ÀÌ»óÀ¸·Î ÀÌ·ç¾îÁø ÀÓÀÇÀÇ ÆÄÀÏ À̸§°ú ÀÏÄ¡ÇÑ´Ù. (`%' ¿Í ÀÏÄ¡ÇÏ´Â ¹®ÀÚ°¡ Àû¾îµµ Çϳª ÀÖ¾î¾ß ÇÑ´Ù.) `%' ¿Í ÀÏÄ¡ÇÏ´Â ºÎºÐ¹®ÀÚ¿­Àº ÁÙ±â(stem) À̶ó°í ºÒ¸°´Ù.

ÆÐÅÏ ±ÔÄ¢ÀÇ Á¾¼Ó¹° ¾È¿¡ ÀÖ´Â `%' ´Â Ÿ°Ù¿¡¼­ `%' ¿Í ÀÏÄ¡ÇÑ °Í°ú µ¿ÀÏÇÑ ÁÙ±â(stem) À» ³ªÅ¸³½´Ù. ÆÐÅÏ ±ÔÄ¢ÀÌ Àû¿ëµÇ±â À§Çؼ­ ±×°ÍÀÇ Å¸°Ù ÆÐÅÏÀº ±× ÆÄÀÏ À̸§°ú ¹Ýµå½Ã ÀÏÄ¡ÇØ¾ß ÇÏ¸ç ±×°ÍÀÇ Á¾¼Ó¹° ÆÐÅÏÀº ¹Ýµå½Ã Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖ´Â ÆÄÀϵéÀÇ À̸§À» °®°í ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·± ÆÄÀϵéÀº ±× Ÿ°ÙÀÇ Á¾¼Ó¹°µéÀÌ µÈ´Ù.

±×·¡¼­ ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ ±ÔÄ¢Àº

%.o : %.c ; command...

`n.o' ¸¦, `n.c' ÆÄÀÏÀÌ Á¸ÀçÇϰųª ¸¸µé¾îÁú ¼ö ÀÖ´Ù¸é Á¾¼Ó¹° `n.c' ÆÄÀÏÀ» °¡Áö°í ¸¸µå´Â ¹æ¹ýÀ» ÁöÁ¤ÇÑ´Ù.

`%' ¸¦ »ç¿ëÇÏÁö ¾Ê´Â Á¾¼Ó¹°µéÀÌ ÀÖÀ» ¼ö ÀÖ´Ù; ±×·± Á¾¼Ó¹°Àº ÀÌ·± ÆÐÅÏ ±ÔÄ¢¿¡ ÀÇÇؼ­ ¸¸µé¾îÁø ¸ðµç ÆÄÀϵ鿡 ÷ºÎµÈ´Ù. ÀÌ·± º¯ÇÏÁö ¾Ê´Â Á¾¼Ó¹°µéÀº Á¾Á¾ À¯¿ëÇÏ´Ù.

ÆÐÅÏ ±ÔÄ¢Àº `%' ¸¦ ´ã°í ÀÖ´Â Á¾¼Ó¹°µéÀ» ¹Ýµå½Ã °¡Áú ÇÊ¿ä°¡ ¾ø´Ù. ¶Ç´Â ½ÇÁ¦ ¾Æ¹«·± Á¾¼Ó¹°À» ¾È°¡Á®µµ µÈ´Ù. ±×·± ±ÔÄ¢Àº È¿À²ÀûÀ¸·Î ÀÏ¹Ý ¿ÍÀϵå Ä«µå°¡ µÈ´Ù. ÀÌ°ÍÀº Ÿ°Ù ÆÐÅÏ°ú ÀÏÄ¡ÇÏ´Â ÀÓÀÇÀÇ ÆÄÀÏÀ» ¸¸µå´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. See section ÃÖÈÄÀÇ µðÆúÆ® ±ÔÄ¢ Á¤ÀÇ(Defining Last-Resort Default Rules).

ÆÐÅÏ ±ÔÄ¢µéÀº ÇÑ°¡Áö Ÿ°Ù ÀÌ»ó °¡Áú ¼ö ÀÖ´Ù. ÀÏ¹Ý ±ÔÄ¢µé°ú´Â ´Ù¸£°Ô ÀÌ·± °ÍÀº µ¿ÀÏÇÑ Á¾¼Ó¹°µé°ú ¸í·ÉµéÀ» °¡Áø ´Ù¸¥ ¸¹Àº ±ÔÄ¢µé°ú ´Ù¸£°Ô ÀÛµ¿ÇÑ´Ù. ¾î¶² ÆÐÅÏ ±ÔÄ¢ÀÌ ´Ù¼öÀÇ Å¸°ÙµéÀ» °¡Áø´Ù¸é, make ´Â ±× ±ÔÄ¢ÀÇ ¸í·ÉµéÀÌ ±× Ÿ°Ùµé ¸ðµÎ¸¦ ¸¸µå´Â Ã¥ÀÓÀÌ ÀÖ´Ù°í ÀÌÇØÇÑ´Ù. ¸íµéµéÀº Ÿ°Ùµé ÀüºÎ¸¦ ¸¸µé±â À§Çؼ­ ´Ü Çѹø¸¸ ½ÇÇàµÈ´Ù. Ÿ°Ù°ú ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢À» °Ë»öÇÒ ¶§, ±ÔÄ¢À» ÇÊ¿ä·Î Çϴ Ÿ°Ù°ú ÀÏÄ¡ÇÏ´Â °Í(±ÔÄ¢)°ú ´Ù¸¥ ±ÔÄ¢ÀÇ Å¸°Ù ÆÐÅϵéÀÌ ÈçÈ÷ ÀÖ´Ù: make ´Â ÇöÀç ¹®Á¦°¡ µÇ´Â ÆÄÀÏ¿¡ ¸í·Éµé°ú Á¾¼Ó¹°µéÀ» ÁÖ´Â °Í¿¡ ´ëÇؼ­¸¸ ½Å°æÀ» ¾´´Ù. ±×·¯³ª ÀÌ ÆÄÀÏÀÇ ¸í·ÉµéÀÌ ½ÇÇàÁßÀÏ ¶§ ´Ù¸¥ Ÿ°ÙµéÀº ±×µé ÀÚ½ÅÀÌ °»½ÅµÈ °Íó·³ ¸¶Å·µÈ´Ù.

ÆÐÅÏ ±ÔÄ¢µéÀÌ makefile ¿¡¼­ ³ªÅ¸³ª´Â ¼ø¼­´Â ¾ÆÁÖ Áß¿äÇÏ´Ù. ¿Ö³Ä¸é ÀÌ°ÍÀÌ ¹Ù·Î ±×µéÀÌ »ý°¢µÇ¾îÁö´Â ¼ø¼­À̱⠶§¹®ÀÌ´Ù. µ¿ÀÏÇÏ°Ô Àû¿ë°¡´ÉÇÑ ±ÔÄ¢µé Áß¿¡¼­ ´ÜÁö ¸ÇóÀ½ ã¾ÆÁø °Í¸¸ÀÌ »ç¿ëµÈ´Ù. ¿©·¯ºÐÀÌ ÀÛ¼ºÇÑ ±ÔÄ¢µéÀº ³»ÀåµÈ ±ÔÄ¢µéº¸´Ù ´õ ¿ì¼±ÇÑ´Ù. ±×·¯³ª Á¾¼Ó¹°µéÀÌ ½ÇÁ¦·Î Á¸ÀçÇϰųª ¾ð±ÞµÈ ±ÔÄ¢Àº Ç×»ó, ´Ù¸¥ ¹¬½ÃÀû ±ÔÄ¢µé¿¡ ÀÇÇؼ­ ¹Ýµå½Ã ¸¸µé¾îÁ®¾ß ÇÏ´Â Á¾¼Ó¹°µéÀ» °¡Áø ±ÔÄ¢º¸´Ù ¿ì¼±ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇÏÀÚ.

ÆÐÅÏ ±ÔÄ¢ ¿¹Á¦(Pattern Rule Examples)

´ÙÀ½Àº make¿¡ ÀÇÇؼ­ ½ÇÁ¦·Î ¹Ì¸® Á¤ÀÇµÈ ÆÐÅÏ ±ÔÄ¢µéÀÇ ¸î°¡Áö ¿¹Á¦µéÀÌ´Ù. ¸ÕÀú `.c' ÆÄÀϵéÀ» `.o' ·Î ÄÄÆÄÀÏÇÏ´Â ±ÔÄ¢Àº:

%.o : %.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

ÀÌ°ÍÀº `x.c' À¸·ÎºÎÅÍ `x.o' ÆÄÀÏÀ» ¸¸µé¼ö ÀÖ´Â ±ÔÄ¢À» Á¤ÀÇÇÑ´Ù. ¸í·ÉÀº ±ÔÄ¢ÀÌ Àû¿ëµÉ ¶§¸¶´Ù Ÿ°Ù ÆÄÀÏ À̸§µé°ú ¼Ò½º ÆÄÀÏ À̸§µéÀ» ´ëÀÔÇϱâ À§ÇÑ ÀÚµ¿ º¯¼öµé `$@' °ú `$<' ¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. (see section ÀÚµ¿ º¯¼öµé(Automatic Variables)).

´ÙÀ½Àº µÎ¹ø° ³»Àå ±ÔÄ¢ÀÌ´Ù:

% :: RCS/%,v
        $(CO) $(COFLAGS) $<

ÀÌ°ÍÀº ¼­ºêµð·ºÅ丮 `RCS' ¿¡¼­ ´ëÀÀÇÏ´Â ÆÄÀÏ `x,v' ·ÎºÎÅÍ `x' ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Â ±ÔÄ¢À» Á¤ÀÇÇÑ´Ù. Ÿ°ÙÀÌ `%' À̱⠶§¹®¿¡ ÀÌ ±ÔÄ¢Àº, ÀûÀýÇÑ Á¾¼Ó ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é, ÀÓÀÇÀÇ ÆÄÀÏ ¹«¾ù¿¡³ª ¿ëµÉ °ÍÀÌ´Ù. ´õºí ÄÝ·Ð Àº ÀÌ ±ÔÄ¢À» terminal ·Î ¸¸µç´Ù. terminal À̶õ ±×°ÍÀÇ Á¾¼Ó¹°ÀÌ Áß°£ ÆÄÀÏÀÌ ¾Æ´Ï¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. (see section ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢(Match-Anything Pattern Rules)).

´ÙÀ½ ÆÐÅÏ ±ÔÄ¢Àº ´ÙÀ½°ú °°Àº µÎ Ÿ°ÙµéÀ» °¡Áø´Ù:

%.tab.c %.tab.h: %.y
        bison -d $<

ÀÌ°ÍÀº make ¿¡°Ô `bison -d x.y' ¸í·ÉÀÌ `x.tab.c' °ú `x.tab.h' µÑ´Ù make Ç϶ó°í ¸»ÇÏ´Â °ÍÀÌ´Ù. `foo' °¡ `parse.tab.o' °ú `scan.o' ¿¡ Á¾¼ÓÀûÀÌ°í `scan.o' ÆÄÀÏÀÌ `parse.tab.h' ¿¡ Á¾¼ÓÀûÀ̸é, `parse.y' ÆÄÀÏÀÌ º¯°æµÉ ¶§, `bison -d parse.y' ÀÌ ´Ü ¤¿¤¤¹ø ½ÇÇàµÉ °ÍÀÌ°í µÎ ÆÄÀÏ `parse.tab.o', `scan.o' ÀÇ Á¾¼Ó¼ºµéÀÌ ¸¸Á·µÉ °ÍÀÌ´Ù. (¾Æ¸¶ `parse.tab.o' ÆÄÀÏÀÌ `parse.tab.c' ·ÎºÎÅÍ ±×¸®°í `scan.o' ÆÄÀÏÀÌ `scan.c' ·ÎºÎÅÍ ÀçÄÄÆÄÀÏ µÉ °ÍÀÌ°í `foo' ÆÄÀÏÀº `parse.tab.o', `scan.o', ±×¸®°í ´Ù¸¥ Á¾¼Ó¹°µé·Î ¸µÅ©µÉ °ÍÀ̸ç ÀÌ°ÍÀº ±×¸®°í ³ª¼­ ÇØÇÇÇÏ°Ô ½ÇÇàµÉ °ÍÀÌ´Ù.)

ÀÚµ¿ º¯¼öµé(Automatic Variables)

`.c' ÆÄÀÏÀ» `.o' ÆÄÀÏ·Î ÄÄÆÄÀÏÇÏ´Â ÆÐÅÏ ±ÔÄ¢À» ÀÛ¼ºÇÏ°í ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ: ±×·¸´Ù¸é ¾î¶»°Ô `cc' ¸í·ÉÀÌ ÀûÀýÇÑ ¼Ò½º ÆÄÀÏ¿¡ ´ëÇؼ­ ÀÛµ¿Çϵµ·Ï ÀÛ¼ºÇÒ °ÍÀΰ¡? ±× ¼Ò½º ÆÄÀÏ À̸§À» ¸í·É¿¡ ¾µ ¼ö ¾ø´Ù. ¿Ö³Ä¸é ±× À̸§Àº ¹¬½ÃÀû ±ÔÄ¢ÀÌ Àû¿ëµÇ´Â ¶§¸¶´Ù ´Ù¸¦ °ÍÀ̱⠶§¹®ÀÌ´Ù.

ÇؾßÇÒ ÀÏÀº makeÀÇ Æ¯¼ö ±â´É, ÀÚµ¿ º¯¼ö(automatic variables) ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ·± º¯¼öµéÀº ½ÇÇàµÇ´Â °¢ ±ÔÄ¢¿¡ ´ëÇؼ­ ¸Å¹ø »õ·Ó°Ô, ±ÔÄ¢ÀÇ Á¾¼Ó¹°µé°ú Ÿ°Ù¿¡ ±â¹ÝÇؼ­ ´Ù½Ã °è»êµÇ´Â °ªÀ» °¡Áø´Ù. ÀÌ ¿¹¿¡¼­ `$@' ¸¦ ¿ÀºêÁ§Æ® ÆÄÀÏ À̸§¿¡ ´ëÇؼ­ ±×¸®°í `$<' ¸¦ ¼Ò½º ÆÄÀÏ À̸§¿¡ ´ëÇؼ­ »ç¿ëÇÏ¸é µÉ °ÍÀÌ´Ù.

´ÙÀ½Àº ÀÚµ¿ º¯¼öµéÀ» ¸ð¾Æº» Å×À̺íÀÌ´Ù:

$@
±ÔÄ¢¿¡ Àִ Ÿ°ÙÀÇ ÆÄÀÏ À̸§. Ÿ°ÙÀÌ ¾ÆÄ«ÀÌºê ¸â¹öÀ̸é `$@'´Â ¾ÆÄ«À̺ê ÆÄÀÏÀÇ À̸§ÀÌ´Ù. ¿©·¯°³ÀÇ Å¸°Ùµé(see section ÆÐÅÏ ±ÔÄ¢¿¡ ´ëÇÑ ¼Ò°³(Introduction to Pattern Rules))À» °¡Áö°í ÀÖ´Â ÆÐÅÏ ±ÔÄ¢¿¡¼­ `$@'´Â ±ÔÄ¢ÀÇ ¸í·ÉÀÌ ½ÇÇàµÇµµ·Ï ¸¸µç Ÿ°ÙÀÌ¸é ¹«¾ùÀ̵ç ÀÌ Å¸°ÙÀÇ À̸§ÀÌ µÈ´Ù.
$%
Ÿ°ÙÀÌ ¾ÆÄ«ÀÌºê ¸â¹ö(See section ¾ÆÄ«À̺ê ÆÄÀÏÀ» °»½ÅÇϱâ À§Çؼ­ make »ç¿ëÇϱâ(Using make to Update Archive Files))ÀÏ ¶§, Ÿ°Ù ¸â¹ö À̸§. ¿¹¸¦ µé¾î¼­ Ÿ°ÙÀÌ `foo.a(bar.o)'À̸é `$%'´Â `bar.o'ÀÌ°í `$@'´Â `foo.a'ÀÌ´Ù. Ÿ°ÙÀÌ ¾ÆÄ«ÀÌºê ¸â¹ö°¡ ¾Æ´Ï¸é `$%'´Â ºó °ÍÀÌ µÈ´Ù.
$<
ù¹ø° Á¾¼Ó¹°ÀÇ À̸§. Ÿ°ÙÀÌ ¹¬½ÃÀû ±ÔÄ¢À¸·ÎºÎÅÍ ±×ÀÇ ¸í·ÉµéÀ» ¾ò¾ú´Ù¸é ÀÌ°ÍÀº ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇؼ­ Ãß°¡µÈ ù¹ø° Á¾¼Ó¹°ÀÌ µÉ °ÍÀÌ´Ù (see section ¹¬½ÃÀû ±ÔÄ¢(Using Implicit Rules)).
$?
Ÿ°Ùº¸´Ù ´õ »õ·Î¿î ¸ðµç Á¾¼Ó¹°µéÀÇ À̸§µé. ÀÌµé »çÀÌ¿¡´Â ½ºÆäÀ̽ºµéÀÌ µé¾î°£´Ù. ¾ÆÄ«ÀÌºê ¸â¹öµéÀÎ Á¾¼Ó¹°µé¿¡ ´ëÇؼ­ À̸§ÀÌ ÀÖ´Â ¸â¹ö¸¸ÀÌ »ç¿ëµÈ´Ù (see section ¾ÆÄ«À̺ê ÆÄÀÏÀ» °»½ÅÇϱâ À§Çؼ­ make »ç¿ëÇϱâ(Using make to Update Archive Files)).
$^
¸ðµç Á¾¼Ó¹°µéÀÇ À̸§. ÀÌµé »çÀÌ¿¡´Â ½ºÆäÀ̽ºµéÀÌ µé¾î°£´Ù. ¾ÆÄ«ÀÌºê ¸â¹öÀÎ Á¾¼Ó¹°µé¿¡ ´ëÇؼ­ À̸§ÀÖ´Â(ÁöÁ¤µÈ?) ¸â¹ö¸¸ÀÌ »ç¿ëµÈ´Ù (see section ¾ÆÄ«À̺ê ÆÄÀÏÀ» °»½ÅÇϱâ À§Çؼ­ make »ç¿ëÇϱâ(Using make to Update Archive Files)). Ÿ°ÙÀº ÀÌ°ÍÀÌ ÀÇÁ¸ÇÏ´Â ´Ù¸¥ °¢ ÆÄÀϵ鿡 ´ëÇؼ­ °¢ ÆÄÀÏÀÌ Á¾¼Ó¹° ¸®½ºÆ®¿¡¼­ ¸î¹øÀ̳ª ³ª¿Ô´Â°¡¿¡ »ó°ü¾øÀÌ, µü Çѹø¸¸ »ç¿ëÇÑ´Ù. ±×·¡¼­ ¾î¶² Ÿ°ÙÀ» À§Çؼ­ Çѹø ÀÌ»ó Á¾¼Ó¹°À» »ç¿ëÇÑ´Ù¸é $^ ÀÇ °ªÀº ±× À̸§À» µü Çѹø ´ã°í ÀÖ´Â ÇüÅ°¡ µÈ´Ù.
$+
ÀÌ°ÍÀº `$^' ¿Í ºñ½ÁÇÏ´Ù. ±×·¯³ª Á¾¼Ó¹°µéÀÌ makefile ¿¡¼­ ¸®½ºÆ®µÈ ¼ø¼­¿Í ³ªÅ¸³­ ´ë·Î Áߺ¹µÇ¾ú´Ù°í Çصµ Çѹø ÀÌ»ó ¸®½ºÆ®µÈ´Ù. ÀÌ°ÍÀº Ưº°ÇÑ ¼ø¼­·Î ¶óÀ̺귯¸® ÆÄÀÏ À̸§µéÀ» ¹Ýº¹ÇÏ´Â °ÍÀÌ Àǹ̰¡ ÀÖ´Â ¸µÅ© ¸í·Éµé ¾È¿¡¼­ ÁÖ·Î À¯¿ëÇÏ´Ù.
$*
¹¬½ÃÀû ±ÔÄ¢ÀÌ ÀÏÄ¡ÇÏ´Â (see section ÆÐÅÏ ºñ±³ ¹æ¹ý(How Patterns Match)) ´ë»ó ÁÙ±â(stem). Ÿ°ÙÀÌ `dir/a.foo.b' ÀÌ°í Ÿ°Ù ÆÐÅÏÀÌ `a.%.b' À̶ó¸é ÁÙ±â´Â `dir/foo' ÀÌ´Ù. ÁÙ±â´Â °ü·ÃµÈ ÆÄÀϵéÀÇ À̸§À» ¸¸µé¶§ À¯¿ëÇÏ´Ù. Á¤Àû ÆÐÅÏ ±ÔÄ¢¿¡¼­ ÁÙ±â´Â Ÿ°Ù ÆÐÅÏ¿¡¼­ `%' °ú ÀÏÄ¡ÇÑ, ÆÄÀÏ À̸§ÀÇ ÀϺκÐÀ» ¸»ÇÑ´Ù. ¸í½ÃÀû ±ÔÄ¢¿¡¼­´Â ÁٱⰡ ¾ø´Ù; ±×·¡¼­ `$*' ´Â ±×·±½ÄÀ¸·Î °áÁ¤µÉ ¼ö ¾ø´Ù. ´ë½Å¿¡ Ÿ°Ù À̸§ÀÌ ÀÎ½ÄµÈ Á¢¹Ì»ç·Î ³¡³­´Ù¸é (see section ±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules)), `$*' ´Â Ÿ°Ù À̸§ »©±â Á¢¹Ì»ç·Î ¼³Á¤µÈ´Ù. ¿¹¸¦ µé¾î¼­, Ÿ°Ù À̸§ÀÌ `foo.c' À̶ó¸é, `$*' ´Â `foo' ·Î ¼³Á¤µÈ´Ù, ¿Ö³Ä¸é `.c' °¡ Á¢¹Ì»çÀ̱⠶§¹®ÀÌ´Ù. GNU make ´Â ´Ù¸¥ make ±¸Çö¹°°úÀÇ È£È¯¼ºÀ» À§Çؼ­¸¸ ÀÌ·± ±«±â½º·± ÀÏÀ» ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ¹¬½ÃÀû ±ÔÄ¢µéÀ̳ª Á¤Àû ÆÐÅÏ ±ÔÄ¢µéÀ» Á¦¿ÜÇÏ°í´Â `$*' ¸¦ ¾²Áö ¾Êµµ·Ï ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¸í½ÃÀû ±ÔÄ¢ ¾ÈÀÇ Å¸°Ù À̸§ÀÌ ÀÎ½ÄµÈ Á¢¹Ì»ç·Î ³¡³ªÁö ¾Ê´Â´Ù¸é `$*' ´Â ±× ±ÔÄ¢¿¡ ´ëÇؼ­ ºó ¹®ÀÚ¿­·Î ¼³Á¤µÈ´Ù.

`$?' ´Â º¯°æÇÑ Á¾¼Ó¹°µé¿¡ ´ëÇؼ­¸¸ ÀÛ¾÷À» ÇÏ°íÀÚ ÇÒ ¶§, ¸í½ÃÀû ±ÔÄ¢µé ¾È¿¡¼­µµ À¯¿ëÇÏ´Ù. ¿¹¸¦ µé¾î¼­ `lib' ¶ó´Â À̸§ÀÇ ¾ÆÄ«À̺갡 ¸î°³ÀÇ ¿ÀºêÁ§Æ® ÆÄÀϵéÀÇ º¹»ç¹°µéÀ» ´ã°í ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ. ´ÙÀ½ ±ÔÄ¢Àº º¯°æµÈ ¿ÀºêÁ§Æ® ÆÄÀϵ鸸À» ¾ÆÄ«À̺꿡´Ù ³ÖÀ» °ÍÀÌ´Ù:

lib: foo.o bar.o lose.o win.o
        ar r lib $?

À§¿¡¼­ ¸®½ºÆ®µÈ º¯¼öµé(ÀÚµ¿ º¯¼öµé)Áß¿¡¼­, ³×°³´Â ´ÜÀÏ ÆÄÀÏ À̸§µéÀÎ °ªµéÀ» °¡Áö°í µÎ°³´Â ÆÄÀÏ À̸§µéÀÇ ¸®½ºÆ®µéÀÎ °ªµéÀ» °¡Áø´Ù. ÀÌ·± ¿©¼¸°³ º¯¼öµéÀº ÆÄÀÏÀÇ µð·ºÅ丮 À̸§À̳ª µð·ºÅ丮 ³»ÀÇ ÆÄÀÏ À̸§°ú °°Àº °ªÀ» ÃßÃâÇÏ´Â º¯Á¾µéÀ» °¡Áø´Ù. º¯Á¾ º¯¼öµéÀÇ À̸§µéÀº °¢°¢ `D' ³ª `F' ¸¦ ºÙ¿©¼­ ÀÌ·ç¾îÁø´Ù. ÀÌ·± º¯Á¾µéÀº GNU make ¿¡¼­ ¹ÝÂë ±¸´Ú´Ù¸®ÀÌ´Ù. ¿Ö³Ä¸é dir °ú notdir ÇÔ¼öµéÀÌ µ¿ÀÏÇÑ È¿°ú¸¦ ¾ò´Âµ¥ »ç¿ëµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù (see section ÆÄÀÏ À̸§µéÀ» À§ÇÑ ÇÔ¼ö(Functions for File Names)). ±×·¯³ª `F' º¯Á¾µéÀº dir ÇÔ¼öÀÇ °á°ú¿¡¼­´Â Ç×»ó ³ªÅ¸³ª´Â ¸¶Áö¸· ½½·¡½¬¸¦ ¸ðµÎ Á¦°ÅÇÑ´Ù´Â »ç½Ç¿¡ ÁÖ¸ñÇÏÀÚ. ´ÙÀ½Àº º¯Á¾µéÀÇ Å×À̺íÀÌ´Ù:

`$(@D)'
The directory part of the file name of the target, with the trailing slash removed. If the value of `$@' is `dir/foo.o' then `$(@D)' is `dir'. This value is `.' if `$@' does not contain a slash.
`$(@F)'
Ÿ°ÙÀÇ ÆÄÀÏ À̸§¿¡¼­ µð·ºÅ丮 ÆÄÆ®¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ºÎºÐÀ» °¡¸®Å²´Ù. `$@' ÀÇ °ªÀÌ `dir/foo.o' À̶ó¸é `$(@F)' ´Â `foo.o' ÀÌ´Ù. `$(@F)' ´Â `$(notdir $@)' °ú µ¿ÀÏÇÏ´Ù.
`$(*D)'
`$(*F)'
ÁÙ±âÀÇ µð·ºÅ丮 ºÎºÐ°ú µð·ºÅ丮 ÆÄÆ® ¾È¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ºÎºÐÀ» °¡¸®Å²´Ù; ÀÌ ¿¹Á¦ÀÇ °æ¿ì¶ó¸é `dir' °ú `foo' °¡ µÉ °ÍÀÌ´Ù.
`$(%D)'
`$(%F)'
Ÿ°Ù ¾ÆÄ«ÀÌºê ¸â¹ö À̸§ Áß¿¡¼­ µð·ºÅ丮 ÆÄÆ®¿Í µð·ºÅ丮 ÆÄÆ® ¾È¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ºÎºÐÀ» °¡¸®Å²´Ù. ÀÌ°ÍÀº `archive(member)' ÇüÅÂÀÇ ¾ÆÄ«ÀÌºê ¸â¹ö Ÿ°Ùµé¿¡ ´ëÇؼ­¸¸ Àǹ̰¡ ÀÖ°í member °¡ µð·ºÅ丮 À̸§À» °®°í ÀÖÀ» ¶§¸¸ À¯¿ëÇÏ´Ù. (See section Ÿ°ÙÀ¸·Î½á ¾ÆÄ«ÀÌºê ¸â¹ö(Archive Members as Targets0.)
`$(<D)'
`$(<F)'
ù¹ø° Á¾¼Ó¹°ÀÇ µð·ºÅ丮 ÆÄÆ®¿Í µð·ºÅ丮 ÆÄÆ® ¾È¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ºÎºÐÀ» °¡¸®Å²´Ù.
`$(^D)'
`$(^F)'
¸ðµç Á¾¼Ó¹°µéÀÇ µð·ºÅ丮 ºÎºÐµé°ú µð·ºÅ丮¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ºÎºÐµéÀ» °¡¸®Å²´Ù.
`$(?D)'
`$(?F)'
Ÿ°Ùº¸´Ù ´õ »õ·Î¿î ¸ðµç Á¾¼Ó¹°µéÀÇ µð·ºÅ丮 ºÎºÐµé°ú µð·ºÅ丮 ³» ÆÄÀÏµé ºÎºÐÀ» °¡¸®Å²´Ù.

ÀÌ·± ÀÚµ¿ º¯¼öµé¿¡ ´ëÇؼ­ ¾ê±âÇÒ ¶§ Ưº°ÇÑ ½ºÅ¸ÀÏÀÇ °ü·Ê¸¦ »ç¿ëÇÑ´Ù´Â °Í¿¡ ÁÖ¸ñÇÏÀÚ; objects ¿Í CFLAGS ¿Í °°Àº ÀÏ¹Ý º¯¼öµé¿¡ ´ëÇؼ­ ÀÛ¼ºÇÒ ¶§ "º¯¼ö <" °¡ ¾Æ´Ï¶ó "`$<'ÀÇ °ª" ¶ó°í ¾´´Ù. ÀÌ·± °ü·Ê°¡ ÀÌ·± Ưº°ÇÑ °æ¿ì¿¡ Á» ´õ ÀÚ¿¬½º·´°Ô º¸ÀÎ´Ù°í »ý°¢ÇÑ´Ù. ÀÌ°ÍÀÌ ¾ÆÁÖ ±íÀº Á߿伺À» °¡Áø´Ù°í ÃßÃøÇÏÁö ¸»ÀÚ; `$<' ´Â `$(CFLAGS)' °¡ CFLAGS¶ó´Â À̸§ÀÇ º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °Íó·³, < ¶ó´Â º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ´Ù. `$<' ÀÚ¸®¿¡ `$(<)' ¶ó´Â º¯¼ö¸¦ ¾µ¼öµµ ÀÖ´Ù.

ÆÐÅÏ ºñ±³ ¹æ¹ý(How Patterns Match)

Ÿ°Ù ÆÐÅÏÀº µÑ Áß¿¡ ¶Ç´Â µÑ´Ù ºó °ÍÀÏ ¼ö ÀÖ´Â, Á¢µÎ»ç¿Í Á¢¹Ì»ç »çÀÌ¿¡ ÇϳªÀÇ `%' ¸¦ °¡Áø °ÍÀÌ´Ù. ¾î¶² ÆÄÀÏ À̸§ÀÌ Áߺ¹¾øÀÌ, Á¢µÎ»ç·Î ½ÃÀÛÇÏ°í Á¢¹Ì¾î·Î ³¡³ª¸é ÆÐÅÏÀÌ ÀÏÄ¡ÇÏ´Â °ÍÀÌ´Ù. Á¢µÎ»ç¿Í Á¢¹Ì»ç »çÀÌÀÇ ÅؽºÆ®´Â ÁÙ±â(stem) À̶ó°í ºÒ¸°´Ù. ±×·¡¼­ ÆÐÅÏ `%.o' °¡ `test.o' ¿Í ÀÏÄ¡Çϸé ÁÙ±â´Â `test' ÀÎ °ÍÀÌ´Ù. ÆÐÅÏ ±ÔÄ¢ Á¾¼Ó¹°µéÀº `%' ¹®ÀÚ¿¡ ÁÙ±âµéÀ» ´ëÀÔÇؼ­ ¸¸µé¾îÁø ½ÇÁ¦ ÆÄÀÏ À̸§µéÀÌ´Ù. ±×·¡¼­ µ¿ÀÏÇÑ ¿¹Á¦¿¡¼­ Á¾¼Ó¹°µé ÁßÀÇ Çϳª°¡ `%.c' ·Î ÀÛ¼ºµÇ¸é ÀÌ°ÍÀº `test.c' ·Î È®ÀåµÈ´Ù.

Ÿ°Ù ÆÐÅÏÀÌ ½½·¡½¬¸¦ °®Áö ¾ÊÀ¸¸é(±×¸®°í º¸Åë ÀÌ°ÍÀº ±×·¸Áö ¾Ê´Ù), ÆÄÀÏ À̸§¿¡¼­ µð·ºÅ丮 À̸§µéÀº ±× ÆÄÀÏ À̸§¿¡¼­, Ÿ°Ù Á¢µÎ»ç¿Í Á¢¹Ì»ç¿Í ºñ±³µÇ±âÀü¿¡, Á¦°ÅµÈ´Ù. ÆÄÀÏ À̸§À» Ÿ°Ù ÆÐÅÏ°ú ºñ±³ÇÑ ÈÄ µð·ºÅ丮 À̸§µéÀº, ÀÌµé ¸¶Áö¸·¿¡ ÀÖ´Â ½½·¡½¬¿Í ÇÔ²², ÆÐÅÏ ±ÔÄ¢ÀÇ Á¾¼Ó¹° ÆÐÅϵé°ú ±× ÆÄÀÏ À̸§À¸·ÎºÎÅÍ ¸¸µé¾îÁö´Â Á¾¼Ó¹° ÆÄÀÏ¿¡ ´õÇØÁø´Ù. µð·ºÅ丮µéÀº »ç¿ëÇÒ ¹¬½ÃÀû ±ÔÄ¢À» ãÀ» ¸ñÀûÀ¸·Î¸¸ ¹«½ÃµÈ´Ù. ±×·¯³ª ±× ±ÔÄ¢ÀÇ Àû¿ë¿¡¼­´Â ¹«½ÃµÇÁö ¾Ê´Â´Ù. ±×·¡¼­ `e%t' ´Â `src/eat' °ú ÀÏÄ¡ÇÏ´Â °ÍÀÌ°í ¿©±â¼­ `src/a' ÀÌ ÁÙ±âÀÌ´Ù. Á¾¼Ó¹°µéÀÌ ÆÄÀÏ À̸§µéÀÌ µÇ¸é ÁÙ±â·ÎºÎÅÍ µð·ºÅ丮µéÀÌ ±× ¾Õ¿¡ µ¡ºÙ¿©Áø´Ù. À̶§ ÁÙ±âÀÇ ³ª¸ÓÁö°¡ `%' ¿¡ ´ëÀԵȴÙ. Á¾¼Ó¹° ÆÐÅÏ `c%r' ¸¦ °¡Áö°í ÁÙ±â `src/a' ´Â ÆÄÀÏ À̸§ `src/car' ¸¦ Á¦°øÇÑ´Ù.

ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢(Match-Anything Pattern Rules)

ÆÐÅÏ ±ÔÄ¢ÀÇ Å¸°ÙÀÌ ´ÜÁö `%' À̶ó¸é ÀÌ°ÍÀº ÆÄÀÏ À̸§ÀÌ ¹«¾ùÀ̵ç ÀÌ°Í°ú ÀÏÄ¡ÇÏ´Â °ÍÀÌ´Ù. ¿ì¸®´Â ÀÌ·± ±ÔÄ¢À» ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â(match-anything) ±ÔÄ¢À̶ó°í ºÎ¸¥´Ù. À̵éÀº ¾ÆÁÖ À¯¿ëÇÏÁö¸¸ make °¡ ±×µéÀ» »ý°¢ÇÏ´Â ½Ã°£ÀÌ ¸¹ÀÌ µç´Ù. ¿Ö³Ä¸é ÀÌ°ÍÀº Ÿ°ÙÀ¸·Î³ª Á¾¼Ó¹°·Î½á ¸®½ºÆ®µÈ °¢ ÆÄÀÏ À̸§µé¿¡ ´ëÇؼ­ ¸ðµç ±×·± ±ÔÄ¢À» »ý°¢ÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù.

makefile ÀÌ `foo.c' ¸¦ ¾ð±ÞÇß´Ù°í ÇÏÀÚ. ÀÌ Å¸°Ù¿¡ ´ëÇؼ­ make ´Â ¿ÀºêÁ§Æ® ÆÄÀÏ `foo.c.o' ¸¦ ¸µÅ©ÇÔÀ¸·Î½á, ¶Ç´Â `foo.c.c' ·ÎºÎÅÍ Çѹø¿¡ C ÄÄÆÄÀÏÇÏ°í-¸µÅ©ÇÔÀ¸·Î½á, ¶Ç´Â `foo.c.p' ·ÎºÎÅÍ ÆĽºÄ® ÄÄÆÄÀÏÇÏ°í-¸µÅ©ÇÔÀ¸·Î½á, ±×¸®°í ±âŸ µîµî ¸¹Àº ´Ù¸¥ °¡´É¼ºµéÀ»¿¡ ÀÇÇؼ­ `foo.c' ¸¦ ¸¸µé·Á°í »ý°¢Çؾ߸¸ ÇÒ °ÍÀÌ´Ù.

ÀÌ·± °¡´É¼ºµéÀÌ, `foo.c' ÀÌ C ¼Ò½º ÆÄÀÏÀÌ°í ½ÇÇà ÆÄÀÏÀÌ ¾Æ´Ï±â ¶§¹®¿¡, ´Ù¼Ò ±«»ó¸ÁÄ¢ÇÏ´Ù´Â °ÍÀ» ¿ì¸®´Â ¾È´Ù. make °¡ ÀÌ·± °¡´É¼ºµéÀ» »ý°¢ÇÏÁö ¾Ê´Â´Ù¸é, `foo.c.o' °ú `foo.c.p' °ú °°Àº ÆÄÀϵéÀÌ Á¸ÀçÇÏÁö ¾ÊÀ»°ÍÀ̱⠶§¹®¿¡ ±×·± °¡´É¼ºµéÀ» ±Ã±ØÀûÀ¸·Î °ÅºÎÇÒ °ÍÀÌ´Ù. ±×·¯³ª ÀÌ·± °¡´É¼ºµéÀº ³Ê¹« ¸¹±â ¶§¹®¿¡ ±×°ÍµéÀ» »ý°¢ÇØ¾ß ÇÑ´Ù¸é make ´Â ¾ÆÁÖ ´À¸®°Ô ÀÛµ¿ÇÒ °ÍÀÌ´Ù.

¼Óµµ¸¦ ´õ ³ôÀ̱â À§Çؼ­ make °¡ ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢µéÀ» »ý°¢ÇÒ ¶§ ´Ù¾çÇÑ Á¦¾àÀ» µÐ´Ù. Àû¿ëµÉ ¼ö ÀÖ´Â Á¦¾àÀº µÎ°³ ÀÖ´Ù. ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» Á¤ÀÇÇÒ ¶§¸¶´Ù, ±×·± ±ÔÄ¢¿¡ ´ëÇؼ­ Çϳª ¶Ç´Â ´Ù¸¥ Çϳª¸¦ ¹Ýµå½Ã ¼±ÅÃÇؾ߸¸ ÇÑ´Ù.

ÇÑ°¡Áö ¼±ÅÃÀº ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» ´õºí ÄÝ·ÐÀ¸·Î Á¤ÀÇÇÔÀ¸·Î½á terminal ·Î ¸¶Å·ÇÏ´Â °ÍÀÌ´Ù. ±ÔÄ¢ÀÌ terminal À̸é ÀÌ°ÍÀº, ±×°ÍÀÇ Á¾¼Ó¹°µéÀÌ ½ÇÁ¦·Î Á¸ÀçÇÏÁö ¾Ê´Â ÇÑ Àû¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¥ ¹¬½ÃÀû ±ÔÄ¢µé·Î ¸¸µé¾îÁú ¼ö ÀÖ´Â Á¾¼Ó¹°µéÀº ÁÁÀº °ÍÀÌ ¾Æ´Ï´Ù. ´Ù¸¥ ¸»·Î Çϸé terminal ±ÔÄ¢À» ³Ñ¾î¼­ ´õÀÌ»óÀÇ ¿¬¼â ÀÛ¿ëÀÌ ÀϾÁö ¾Ê´Â´Ù.

¿¹¸¦ µé¾î¼­ RCS ¿Í SCCS ÆÄÀϵé·ÎºÎÅÍ ¼Ò½ºµéÀ» ÃßÃâÇÏ´Â ³»ÀåµÈ ¹¬½ÃÀû ±ÔÄ¢µéÀº terminal ÀÌ´Ù; °á°úÀûÀ¸·Î ÆÄÀÏ `foo.c,v' ÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é make ´Â `foo.c,v.o' ³ª `RCS/SCCS/s.foo.c,v' ·ÎºÎÅÍ Áß°£ ÆÄÀÏ·Î½á ±×°ÍÀ» ¸¶µé·Á°í »ý°¢Á¶Â÷ ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. RCS ¿Í SCCS ÆÄÀϵéÀº ÀϹÝÀûÀ¸·Î ÃÖÁ¾ ¼Ò½º ÆÄÀϵéÀÌ´Ù. À̵éÀº ´Ù¸¥ ÆÄÀϵé·ÎºÎÅÍ ´Ù½Ã ¸¸µé¾îÁö¸é ¾ÈµÈ´Ù; ±×·¯¹Ç·Î make´Â ±×°ÍµéÀ» ´Ù½Ã ¸¸µå´Â ¹æ¹ýµéÀ» ãÁö ¾ÊÀ½À¸·Î½á ½Ã°£À» Àý¾àÇÒ ¼ö ÀÖ´Ù.

ÀÓÀÇÀÇ°Í°ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» terminal ·Î ¸¶Å·ÇÏÁö ¾ÊÀ¸¸é, ÀÌ°ÍÀº ºñ-terminal. ºñ-terminal ÀÓÀÇÀÇ°Í°ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢Àº ƯÁ¤ÇÑ µ¥ÀÌÅÍ Å¸ÀÔÀ» °¡¸®Å°´Â ÆÄÀÏ À̸§¿¡ Àû¿ëµÉ ¼ö ¾ø´Ù. ¾î¶² ÆÄÀÏ À̸§Àº, ºñ-ÀÓÀÇÀÇ°Í°ú ÀÏÄ¡ÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢ Ÿ°ÙÀÌ ±×°Í°ú ÀÏÄ¡ÇÒ °æ¿ì, ƯÁ¤ µ¥ÀÌÅÍ Å¸ÀÔÀ» °¡¸®Å²´Ù.

¿¹¸¦ µé¾î¼­ `foo.c' ´Â ÆÐÅÏ ±ÔÄ¢ `%.c : %.y' (Yacc ¸¦ ½ÇÇàÇÏ´Â ±ÔÄ¢) ¿¡ ´ëÇÑ Å¸°Ù°ú ÀÏÄ¡ÇÑ´Ù. ÀÌ ±ÔÄ¢ÀÌ ½ÇÁ¦·Î Àû¿ë°¡´ÉÇÑ°¡ ¾Æ´Ñ°¡¿¡ (ÆÄÀÏ `foo.y' ÀÌ Á¸ÀçÇÒ¶§¸¸ ¹ß»ýÇÑ´Ù) ´ëÇؼ­ »ý°¢ÇÒ ÇÊ¿ä ¾øÀÌ, ±×°ÍÀÌ Å¸°ÙÀÌ ÀÏÄ¡ÇÑ´Ù´Â »ç½Ç·Î½á ÆÄÀÏ `foo.c' ¿¡ ´ëÇÑ ºñ-terminal ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢µé ÁßÀÇ ¾Æ¹«°Å³ª¸¦ »ý°¢ÇÏ´Â °ÍÀ» ¸·±â¿¡´Â ÃæºÐÇÏ´Ù. ±×·¡¼­ make´Â `foo.c' ¸¦ `foo.c.o', `foo.c.c', `foo.c.p', µîÀ¸·ÎºÎÅÍ ½ÇÇà ÆÄÀÏ·Î½á ¸¸µé¾îº¼·Á´Â ½Ãµµ¸¦ »ý°¢Á¶Â÷ ¾Ê´Â´Ù.

ºñ-terminal ÀÓÀÇÀÇ°Í°ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢µéÀÌ Æ¯Á¤ÇÑ µ¥ÀÌÅÍ Å¸ÀÔµé(½ÇÇà ÆÄÀÏ°ú °°Àº)À» ´ã°í ÀÖ´Â ÆÄÀϵé°úÀ» ¸¸µå´Â µ¥ »ç¿ëµÈ´Ù´Â °Í°ú, ÀÎ½ÄµÈ Á¢¹Ì»ç¸¦ °¡Áö´Â ÆÄÀÏ À̸§µéÀÌ ¾î¶² ´Ù¸¥ ƯÁ¤ÇÑ µ¥ÀÌÅÍ Å¸ÀÔ(C ¼Ò½º ÆÄÀÏ°ú °°Àº)À» °¡¸®Å²´Ù´Â °ÍÀÌ ÀÌ·± Á¦¾àÀÇ µ¿±âÀÌ´Ù.

Ư¼öÇÑ ³»ÀåµÈ ´õ¹Ì ÆÐÅÏ ±ÔÄ¢µéÀº ƯÁ¤ ÆÄÀÏ À̸§µéÀ» ÀνÄÇؼ­ ºñ-terminal ÀÓÀÇÀÇ°Í°ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢µéÀÌ »ý°¢µÇÁö ¾Êµµ·Ï Çϱâ À§Çؼ­¸¸ Á¦°øµÈ´Ù. ÀÌ·± ´õ¹Ì ±ÔÄ¢µéÀº Á¾¼Ó¹°µé°ú ¸í·ÉµéÀ» °¡ÁöÁö ¾Ê°í ¸ðµç ´Ù¸¥ ¸ñÀûµé¿¡ ´ëÇؼ­ ¹«½ÃµÈ´Ù. ¿¹¸¦ µé¾î¼­ ´ÙÀ½°ú °°Àº ³»ÀåµÈ ¹¬½ÃÀû ±ÔÄ¢Àº

%.p :

`foo.p' °ú °°Àº ÆĽºÄ® ¼Ò½º ÆÄÀϵéÀÌ Æ¯Á¤ÇÑ Å¸°Ù ÆÐÅÏ°ú ÀÏÄ¡ÇϹǷΠ`foo.p.o' ³ª `foo.p.c' ¸¦ ã´À¶ó°í ½Ã°£À» ÇãºñÇÏÁö ¸øÇϵµ·Ï Çϱâ À§Çؼ­ Á¸ÀçÇÑ´Ù.

`%.p' ¸¦ À§ÇÑ °Í°ú °°Àº ´õ¹Ì ÆÐÅÏ ±ÔÄ¢µéÀº Á¢¹Ì»ç ±ÔÄ¢µé¿¡¼­ÀÇ »ç¿ëÀ» À§Çؼ­ À¯È¿ÇÏ°Ô ³ª¿­µÈ ¸ðµç Á¢¹Ì»çµé¿¡ ´ëÇؼ­ ¸¸µé¾îÁø´Ù (see section ±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules)).

¹¬½ÃÀû ±ÔÄ¢ Ãë¼Ò½ÃÅ°±â(Canceling Implicit Rules)

³»Àå ¹¬½ÃÀû ±ÔÄ¢(¶Ç´Â »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ °Í)À» µ¿ÀÏÇÑ Å¸°Ù°ú Á¾¼Ó¹°µéÀ» °¡ÁöÁö¸¸ ¸í·ÉµéÀÌ ´Ù¸¥ »õ·Î¿î ÆÐÅÏ ±ÔÄ¢À» Á¤ÀÇÇÔÀ¸·Î½á ¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î ±ÔÄ¢ÀÌ Á¤ÀÇµÉ ¶§ ³»Àå ±ÔÄ¢ÀÌ ´ëüµÈ´Ù. »õ·Î¿î ±ÔÄ¢ÀÌ Â÷ÁöÇÏ´Â ¹¬½ÃÀû ±ÔÄ¢µé ½ÃÄö½º¿¡¼­ÀÇ À§Ä¡´Â ±× »õ·Î¿î ±ÔÄ¢À» ÀÛ¼ºÇÑ À§Ä¡¿¡ ÀÇÇؼ­ °áÁ¤µÈ´Ù.

³»Àå ¹¬½ÃÀû ±ÔÄ¢°ú µ¿ÀÏÇÑ Å¸°Ù°ú Á¾¼Ó¹°µéÀ» °¡ÁöÁö¸¸ ¸í·ÉµéÀº ¾ø´Â ÆÐÅÏ ±ÔÄ¢À» Á¤ÀÇÇÔÀ¸·Î½á Àú ³»Àå ¹¬½ÃÀû ±ÔÄ¢À» Ãë¼ÒÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­ ´ÙÀ½Àº ¾î¼Àºí·¯¸¦ ½ÇÇàÇÏ´Â ±ÔÄ¢À» Ãë¼ÒÇÒ °ÍÀÌ´Ù:

%.o : %.s

ÃÖÈÄÀÇ µðÆúÆ® ±ÔÄ¢ Á¤ÀÇ(Defining Last-Resort Default Rules)

Á¾¼Ó¹°µéÀ» Çϳªµµ °®Áö ¾Ê´Â Á¦ÀÏ-¸¶Áö¸·(terminal) ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢À» ÀÛ¼ºÇÔÀ¸·Î½á, ¸¶Áö¸·(last-resort) ¹¬½ÃÀû ±ÔÄ¢À» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù (see section ÀÓÀÇÀÇ °Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ ±ÔÄ¢(Match-Anything Pattern Rules)). ÀÌ°ÍÀº ´Ù¸¥ ÆÐÅÏ ±ÔÄ¢°ú ºñ½ÁÇÏ´Ù; ÀÌ°ÍÀº ÀÓÀÇÀÇ Å¸°Ù°úµµ ÀÏÄ¡ÇÒ °ÍÀÌ´Ù´Â °ÍÀÌ ÀÌ°ÍÀÌ Æ¯º°ÇÑ À¯ÀÏÇÑ °ÍÀÌ´Ù. ±×·¡¼­ ±×·± ±ÔÄ¢ÀÇ ¸í·ÉµéÀº, ÀÚ½ÅÀÇ ¸í·ÉµéÀ» °¡ÁöÁö ¾Ê´Â ¸ðµç Ÿ°Ùµé°ú Á¾¼Ó¹°µé¿¡ ´ëÇؼ­ ±×¸®°í ´Ù¸¥ ¹¬½ÃÀû ±ÔÄ¢ÀÌ Àû¿ëµÇÁö ¾Ê´Â °Íµé¿¡ ´ëÇؼ­ »ç¿ëµÈ´Ù.

¿¹¸¦ µé¾î¼­ makefile À» Å×½ºÆ®ÇÒ ¶§ ¼Ò½º ÆÄÀϵéÀÌ ½ÇÁ¦ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Â °ÍÀΰ¡ ½Å°æ¾²Áö ¾Ê°í, ´ë½Å ±×µéÀÌ Á¸ÀçÇϴ°¡ ¾ÈÇϴ°¡¸¸ ½Å°æ¾µ ¼öµµ ÀÖ´Ù. ±×·¸´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÒ ¼öµµ ÀÖ´Ù:

%::
        touch $@

ÀÌ°ÍÀº (Á¾¼Ó¹°·Î½á) ÇÊ¿äÇÑ ¸ðµç ¼Ò½º ÆÄÀϵéÀÌ ÀÚµ¿À¸·Î »ý¼ºµÇµµ·Ï ÇÑ´Ù.

ÀÌ°Í ´ë½Å ÀüÇô ±ÔÄ¢µéÀÌ ¾ø´Â, ½ÉÁö¾î ¸í·ÉµéÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â ±ÔÄ¢ÀÇ, Ÿ°Ùµé¿¡ ´ëÇؼ­ »ç¿ëµÇ´Â ¸í·ÉµéÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô Çϱâ À§Çؼ­ .DEFAULT Ÿ°Ù¿¡ ´ëÇÑ ±ÔÄ¢À» ÀÛ¼ºÇÏ¸é µÈ´Ù. ±×·± ±ÔÄ¢ÀÇ ¸í·ÉµéÀº ¸í½ÃµÈ ±ÔÄ¢ÀÇ Å¸°Ùµé·Î ³ªÅ¸³ªÁö ¾Ê´Â, ¾î¶² ¹¬½ÃÀû ±ÔÄ¢µµ Àû¿ëµÇÁö ¾Ê´Â, Á¾¼Ó¹°µé¿¡ ´ëÇؼ­ »ç¿ëµÈ´Ù. ÀϹÝÀûÀ¸·Î ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é .DEFAULT Àº ¾ø´Ù.

´ÙÀ½°ú °°ÀÌ .DEFAULT ¸¦ ¸í·ÉÀ̳ª Á¾¼Ó¹°µéÀÌ ¾øÀÌ »ç¿ëÇÑ´Ù¸é:

.DEFAULT:

.DEFAULT ¿¡ ´ëÇؼ­ ÀÌÀü¿¡ Á¤ÀÇµÈ ¸í·ÉµéÀÌ »èÁ¦µÈ´Ù. ±×·¯¸é make ´Â .DEFAULT ¸¦ ÀüÇô Á¤ÀÇÇÏÁö ¾ÊÀº °Íó·³ ÀÛµ¿ÇÒ °ÍÀÌ´Ù.

¾î¶² Ÿ°ÙÀÌ ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ÆÐÅÏÀ̳ª .DEFAULT À¸·ÎºÎÅÍ ¸í·ÉµéÀ» ¾ò±â¸¦ ¿øÇÏÁö ¾ÊÁö¸¸, ¶ÇÇÑ ¾î¶² ¸í·Éµµ ±×·± Ÿ°Ù¿¡ ´ëÇؼ­ ½ÇÇàµÇ´Â °ÍÀ» ¿øÇÏÁö ¾Ê´Â´Ù¸é, ÀÌ°Í¿¡°Ô ºó ¸í·ÉµéÀ» ÁÙ ¼ö ÀÖ´Ù (see section ºó ¸í·É »ç¿ëÇϱâ(Using Empty Commands)).

¸¶Áö¹Ì°¡ ±ÔÄ¢À» »ç¿ëÇؼ­ ´Ù¸¥ makefile ÀÇ ÀϺθ¦ ¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖ´Ù. See section ´Ù¸¥ MakefileÀÇ ÀϺθ¦ ¿À¹ö¶óÀ̵ù(Overriding Part of Another Makefile).

±¸´Ú´Ù¸® Á¢¹Ì»ç ±ÔÄ¢(Old-Fashioned Suffix Rules)

Á¢¹Ì»ç ±ÔÄ¢(Suffix rules) À̶õ make ¿¡ ´ëÇؼ­ ¹¬½ÃÀû ±ÔÄ¢µéÀ» Á¤ÀÇÇÏ´Â ¿À·¡µÈ-½ºÅ¸ÀÏÀÇ ¹æ¹ýÀÌ´Ù. Á¢¹Ì»ç ±ÔÄ¢µéÀº ÆÐÅÏ ±ÔÄ¢µéÀÌ Á» ´õ ÀϹÝÀûÀÌ°í Á» ´õ ¸í·áÇϱ⠶§¹®¿¡ »çÀåµÇ¾ú´Ù. ¿À·¡µÈ makefile µé°úÀÇ È£È¯¼ºÀ» À§Çؼ­ GNU make ´Â ÀÌ°ÍÀ» Áö¿øÇÑ´Ù. ±×µéÀº ´ÙÀ½ µÎ°¡Áö Á¾·ù°¡ ÀÖ´Ù: ´õºí-Á¢¹Ì»ç(double-suffix) ¿Í ´ÜÀÏ-Á¢¹Ì»ç(single-suffix).

´õºí-Á¢¹Ì»ç ±ÔÄ¢Àº µÎ°³ÀÇ Á¢¹Ì»çµé·Î Á¤ÀǵȴÙ: Ÿ°Ù Á¢¹Ì»ç¿Í ¼Ò½º Á¢¹Ì»ç. ÀÌ°ÍÀº ÆÄÀÏÀÇ À̸§ÀÌ Å¸°Ù Á¢¹Ì»ç·Î ³¡³ª´Â ¾î¶² ÆÄÀÏ°úµµ ÀÏÄ¡ÇÑ´Ù. ´ëÀÀÇÏ´Â ¹¬½ÃÀû Á¾¼Ó¹°Àº Ÿ°Ù Á¢¹Ì»ç¸¦ ¼Ò½º Á¢¹Ì»ç·Î ¹Ù²ã¼­ ¸¸µé¾îÁø´Ù. Ÿ°Ù°ú ¼Ò½º Á¢¹Ì»çµéÀÌ `.o' ¿Í `.c' ÀÎ µÎ-Á¢¹Ì»ç ±ÔÄ¢ Àº ÆÐÅÏ ±ÔÄ¢ `%.o : %.c' ¿Í µ¿ÀÏÇÏ´Ù.

´ÜÀÏ-Á¢¹Ì»ç ±ÔÄ¢Àº ´ÜÀÏ Á¢¹Ì»ç·Î Á¤ÀǵȴÙ. ÀÌ°ÍÀº ¼Ò½º Á¢¹Ì»çÀÌ´Ù. ´ÜÀÏ-Á¢¹Ì»ç ±ÔÄ¢Àº ÀÓÀÇÀÇ ÆÄÀϵé°ú ÀÏÄ¡ÇÏ°í ´ëÀÀÇÏ´Â ¹¬½ÃÀû Á¾¼Ó¹° À̸§Àº ¼Ò½º Á¢¹Ì»ç¸¦ µ¡ºÙ¿©¼­ ¸¸µé¾îÁø´Ù. ¼Ò½º Á¢¹Ì»è `.c' ÀÎ ´ÜÀÏ-Á¢½Ã»ç ±ÔÄ¢Àº ÆÐÅÏ ±ÔÄ¢ `% : %.c' ¿Í µ¿ÀÏÇÏ´Ù.

Á¢¹Ì»ç ±ÔÄ¢ Á¤ÀǵéÀº °¢ ±ÔÄ¢ÀÇ Å¸°Ù°ú, Á¤ÀÇµÈ (¾Ë·ÁÁø) Á¢¹Ì»ç ¸®½ºÆ®¿Í ºñ±³Çؼ­ ÀνĵȴÙ. make °¡ Ÿ°ÙÀÌ ¾Ë·ÁÁø Á¢¹Ì»çÀÎ ±ÔÄ¢À» º¸¸é ÀÌ ±ÔÄ¢Àº ´ÜÀÏ-Á¢¹Ì»ç ±ÔÄ¢À¸·Î »ý°¢µÈ´Ù. make °¡ Ÿ°ÙÀÌ µÎ°³ÀÇ ¾Ë·ÁÁø Á¢¹Ì»çµéÀÌ ¼­·Î ºÙÀº ÇüÅÂÀÎ ±ÔÄ¢À» º¸¸é ÀÌ ±ÔÄ¢Àº ´õºí-Á¢¹Ì»ç ±ÔÄ¢À¸·Î Ãë±ÞµÈ´Ù.

¿¹¸¦ µé¾î¼­ `.c' ¿Í `.o' ´Â ¾Ë·ÁÁø Á¢¹Ì»ç µðÆúÆ® ¸®½ºÆ®¿¡ µÑ ´Ù ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î Ÿ°ÙÀÌ `.c.o' ÀÎ ±ÔÄ¢À» Á¤ÀÇÇϸé make ´Â ÀÌ°ÍÀ» ¼Ò½º Á¢¹Ì»ç´Â `.c' ÀÌ°í Ÿ°Ù Á¢¹Ì»ç´Â `.o' ÀÎ ´õºí-Á¢¹Ì»ç·Î »ý°¢ÇÑ´Ù. ´ÙÀ½Àº C ¼Ò½º ÆÄÀÏÀ» ÄÄÆÄÀÏÇϱâ À§ÇÑ ±ÔÄ¢À» Á¤ÀÇÇÏ´Â ¿À·¡µÈ-½ºÅ¸ÀÏÀÇ ¹æ¹ýÀÌ´Ù:

.c.o:
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

Á¢¹Ì»ç ±ÔÄ¢µéÀº ±×µé ÀÚ½ÅÀÇ Á¾¼Ó¹°À» ÀüÇô °¡Áú¼ö ¾ø´Ù. ±×µéÀÌ ÀÖ´Ù¸é ±×µéÀº Á¢¹Ì»ç ±ÔÄ¢µé·Î »ý°¢µÇ¾îÁö´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÌ»ó À̸§µéÀ» °¡Áø ÀÏ¹Ý ÆÄÀϵé·Î »ý°¢µÈ´Ù. ±×·¡¼­ ´ÙÀ½ ±ÔÄ¢Àº:

.c.o: foo.h
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

`.c.o' ¸¦ Á¾¼Ó ÆÄÀÏ `foo.h' ·ÎºÎÅÍ ¸¸µå´Â ¹æ¹ýÀ» ¸»ÇÏ´Â °ÍÀÌ µÇ¹ö¸®°í, ÀüÇô ´ÙÀ½°ú °°Àº ÆÐÅÏ ±ÔÄ¢ÀÌ ¾Æ´Ï°Ô µÇ¹ö¸°´Ù:

%.o: %.c foo.h
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

ÀÌ°ÍÀº `.c' ÆÄÀϵé·ÎºÎÅÍ `.o' ÆÄÀϵéÀ» ¸¸µå´Â ¹æ¹ý°ú `foo.h' ¿¡ ÀÇÁ¸ÇÏ´Â ÀÌ ÆÐÅÏ ±ÔÄ¢À» »ç¿ëÇؼ­ ¸ðµç `.o' ÆÄÀϵéÀ» ¸¸µå´Â ¹æ¹ýÀ» ¸»ÇÏ´Â °ÍÀÌ´Ù.

¾î¶² ¸í·Éµµ ¾ø´Â Á¢¹Ì»ç ±ÔÄ¢µéµµ ¶ÇÇÑ Àǹ̰¡ ¾ø´Ù. ±×µéÀº ¸í·ÉµéÀ» °¡ÁöÁö ¾Ê´Â ÆÐÅÏ ±ÔÄ¢µéÀÌ ±×·¯´Â °Íó·³, ÀÌÀü ±ÔÄ¢µéÀ» Áö¿ìÁö ¾Ê´Â´Ù (see section ¹¬½ÃÀû ±ÔÄ¢ Ãë¼Ò½ÃÅ°±â(Canceling Implicit Rules)). ±×µéÀº µ¥ÀÌÅͺ£À̽º¿¡ Ÿ°ÙÀ¸·Î ´Ü¼øÈ÷ Á¢¹Ì»ç³ª ÇÕÃÄÄ£ ÇѽÖÀÇ Á¢¹Ì»çµéÀ» ³Ö´Â´Ù.

¾Ë·ÁÁø Á¢¹Ì»çµéÀº ´Ü¼øÇÏ°Ô Æ¯¼öÇÑ Å¸°Ù .SUFFIXES ÀÇ Á¾¼Ó¹°µéÀÇ À̸§ÀÌ´Ù. »ç¿ëÀÚ ÀÚ½ÅÀÇ Á¢¹Ì»çµéÀ», ´ÙÀ½°ú °°ÀÌ ´õ ¸¹Àº Á¾¼Ó¹°µéÀ» ´õÇÏ´Â .SUFFIXES ±ÔÄ¢À» ÀÛ¼ºÇÔÀ¸·Î½á, Ãß°¡ÇÒ ¼ö ÀÖ´Ù:

.SUFFIXES: .hack .win

ÀÌ°ÍÀº `.hack' °ú `.win' À» Á¢¹Ì»ç ¸®½ºÆ® ¸¶Áö¸·¿¡ ´õÇÑ´Ù.

±×°Íµé¿¡´Ù ´õÇÏ´Â °Í ´ë½Å¿¡ ¾Ë·ÁÁø µðÆúÆ® Á¢¹Ì»çµéÀ» Á¦°ÅÇÏ°íÀÚ ÇÑ´Ù¸é Á¾¼Ó¹°µéÀÌ ÀüÇô ¾ø´Â .SUFFIXES ¸¦ ÀÛ¼ºÇÏ¸é µÈ´Ù. Ư¼öÇÑ ¼·¸®¿¡ ÀÇÇؼ­ ÀÌ°ÍÀº .SUFFIXESÀÇ ¸ðµç Á¸ÀçÇÏ´Â Á¾¼Ó¹°µéÀ» Á¦°ÅÇÑ´Ù. ±×¸®°í ³­ÈÄ »ç¿ëÀÚ°¡ ¿øÇÏ´Â Á¢¹Ì»çµéÀ» ´õÇϱâ À§Çؼ­ ´Ù¸¥ ±ÔÄ¢À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼­,

.SUFFIXES:            # Delete the default suffixes
.SUFFIXES: .c .o .h   # Define our suffix list

`-r' ¶Ç´Â `--no-builtin-rules' Ç÷¡±×´Â µðÆúÆ® Á¢¹Ì»ç ¸®½ºÆ®¸¦ ºó °ÍÀ¸·Î ¸¸µç´Ù.

º¯¼ö SUFFIXES ´Â make °¡ ÀÓÀÇÀÇ makefile µéÀ» Àбâ Àü¿¡, Á¢¹Ì»ç µðÆúÆ® ¸®½ºÆ®µéÀÌ Á¤ÀǵȴÙ. Ư¼ö Ÿ°Ù .SUFFIXES ¿¡ ´ëÇÑ ±ÔÄ¢À¸·Î Á¢¹Ì»çµé ¸®½ºÆ®¸¦ º¯°æÇÒ ¼ö ÀÖÁö¸¸ ±×°ÍÀº ÀÌ º¯¼ö´Â ¹Ù²Ü ¼ö ¾ø´Ù.

¹¬½ÃÀû ±ÔÄ¢ °Ë»ö ¾Ë°í¸®Áò(Implicit Rule Search Algorithm)

´ÙÀ½Àº make °¡ ¾î¶² Ÿ°Ù t ¿¡ ´ëÇؼ­ ¹¬½ÃÀû ±ÔÄ¢À» °Ë»öÇϴµ¥ »ç¿ëÇÏ´Â °úÁ¤ÀÌ´Ù. ÀÌ °úÁ¤Àº ¸í·ÉµéÀÌ ¾ø´Â °¢ ´õºí-ÄÝ·Ð ±ÔÄ¢¿¡ ´ëÇؼ­, ¸í·ÉÀÌ ¾ø´Â ÀÏ¹Ý ±ÔÄ¢µéÀÇ °¢ Ÿ°Ù¿¡ ´ëÇؼ­, ±×¸®°í ¾î¶² ±ÔÄ¢¿¡µµ Ÿ°ÙÀÌ ¾Æ´Ñ °¢ Á¾¼Ó¹°¿¡ ´ëÇؼ­, ¼öÇàµÈ´Ù. ÀÌ°ÍÀº ¶ÇÇÑ, ±ÔÄ¢µéÀÇ ¿¬¼â¸¦ ãÀ¸¸é¼­ ¹¬½ÃÀû ±ÔÄ¢µé·ÎºÎÅÍ ¿À´Â Á¾¼Ó¹°µé¿¡ ´ëÇؼ­, Àç±ÍÀûÀ¸·Î ¼öÇàµÈ´Ù.

Á¢¹Ì»ç ±ÔÄ¢µéÀº ÀÌ ¾Ë°í¸®Áò¿¡¼­ ¾ð±ÞµÇÁö ¾Ê´Â´Ù. ¿Ö³Ä¸é Á¢¹Ì»ç ±ÔÄ¢µéÀº makefile ÀÌ ÀÏ´Ü ÀÐÈ÷¸é µ¿ÀÏÇÑ ÆÐÅÏ ±ÔÄ¢µé·Î º¯È¯µÇ±â ¶§¹®ÀÌ´Ù.

`archive(member)' ÇüÅÂÀÇ ¾ÆÄ«ÀÌºê ¸â¹ö Ÿ°Ù¿¡ ´ëÇؼ­ ´ÙÀ½ ¾Ë°í¸®ÁòÀÌ µÎ¹ø ½ÇÇàµÈ´Ù. ù¹ø°´Â Àüü Ÿ°Ù À̸§ t ¸¦ »ç¿ëÇÏ°í µÎ¹ø°´Â ù¹ø°°¡ ¾î¶² ±ÔÄ¢µµ ãÁö ¸øÇÑ´Ù¸é t Ÿ°ÙÀ¸·Î½á `(member)' ¸¦ »ç¿ëÇÑ´Ù.

  1. t ¸¦ µð·ºÅ丮 ºÎºÐ(d ¶ó°í ºÎ¸£ÀÚ)°ú ±×¸®°í ³ª¸ÓÁö(n À̶ó°í ºÎ¸£ÀÚ)·Î ºÐÇÒÇÑ´Ù. ¿¹¸¦ µé¾î¼­ t °¡ `src/foo.o' À̶ó¸é d ´Â `src/' ÀÌ°í n Àº `foo.o' ÀÌ´Ù.
  2. ¸ðµç ÆÐÅÏ ±ÔÄ¢µé ¸®½ºÆ®°¡, Ÿ°ÙÀÌ t ³ª n °ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢ÀÌ µÇµµ·Ï ¸¸µç´Ù. Ÿ°Ù ÆÐÅÏÀÌ ½½·¡½¬¸¦ °¡Áö¸é ÀÌ°ÍÀº t ¿Í ºñ±³µÈ´Ù; ±×·¸Áö ¾ÊÀ¸¸é n °ú ºñ±³µÈ´Ù.
  3. ÀÌ ¸®½ºÆ®¿¡ ÀÖ´Â ÀÓÀÇÀÇ ±ÔÄ¢ÀÌ ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢ÀÌ ¾Æ´Ï¶ó¸é ¸ðµç ºñ-terminal ÀÓÀÇÀÇ°Í°úµµ ÀÏÄ¡ÇÏ´Â ±ÔÄ¢µéÀ» ÀÌ ¸®½ºÆ®¿¡¼­ Á¦°ÅÇÑ´Ù.
  4. ¸®½ºÆ®¿¡¼­ ¸í·ÉµéÀÌ ¾ø´Â ¸ðµç ±ÔÄ¢µéÀ» Á¦°ÅÇÑ´Ù.
  5. ¸®½ºÆ®¿¡ ÀÖ´Â °¢ ÆÐÅÏ ±ÔÄ¢¿¡ ´ëÇؼ­:
    1. ÁÙ±â s ¸¦ ã´Â´Ù. ÀÌ°ÍÀº Ÿ°Ù ÆÐÅÏ¿¡¼­ `%' ¿Í ÀÏÄ¡ÇÏ´Â t ³ª n ÀÇ ºó °ÍÀÌ ¾Æ´Ñ ºÎºÐÀÌ´Ù.
    2. s ¸¦ `%' ¿¡ ´ëÇؼ­ ´ëÀÔÇÔÀ¸·Î½á Á¾¼Ó¹°µé À̸§À» °è»êÇÑ´Ù; Ÿ°Ù ÆÐÅÏÀÌ ½½·¡½¬¸¦ °¡ÁöÁö ¾Ê´Â´Ù¸é d ¸¦ °¢ Á¾¼Ó¹° À̸§ ¾Õ¿¡´Ù µ¡ºÙÀδÙ.
    3. ¸ðµç Á¾¼Ó¹°µéÀÌ Á¸ÀçÇϰųª Á¸ÀçÇØ¾ß ÇÏ´ÂÁö °Ë»çÇÑ´Ù. (¾î¶² ÆÄÀÏ À̸§ÀÌ makefile ¿¡¼­ Ÿ°ÙÀ¸·Î½á ¶Ç´Â ¸í½ÃÀûÀÎ Á¾¼Ó¹°·Î½á ¾ð±ÞµÇ¾ú´Ù¸é ¿ì¸®´Â ±×°ÍÀÌ ¹Ýµå½Ã Á¸ÀçÇØ¾ß ÇÏ´Â °ÍÀ¸·Î ¸»ÇÑ´Ù.) ¸ðµç Á¾¼Ó¹°µéÀÌ Á¸ÀçÇϰųª Á¸ÀçÇØ¾ß ÇÑ´Ù¸é, ¶Ç´Â Á¾¼Ó¹°µéÀÌ ÀüÇô ¾ø´Ù¸é, ÀÌ ±ÔÄ¢ÀÌ Àû¿ëµÈ´Ù.
  6. ¾î¶² ÆÐÅÏ ±ÔÄ¢µµ Áö±Ý±îÁö ãÁö ¸øÇß´Ù¸é ´õ ¾î·Æ°Ô ½ÃµµÇÑ´Ù. ÀÌ ¸®½ºÆ®¿¡ ÀÖ´Â °¢ ÆÐÅÏ ±ÔÄ¢¿¡ ´ëÇؼ­:
    1. ±ÔÄ¢ÀÌ terminal À̶ó¸é ÀÌ°ÍÀ» ¹«½ÃÇÏ°í ´ÙÀ½ ±ÔÄ¢À¸·Î °£´Ù.
    2. ÀÌÀü°ú °°ÀÌ Á¾¼Ó¹°µé À̸§À» °è»êÇÑ´Ù.
    3. ¸ðµç Á¾¼Ó¹°µéÀÌ Á¸ÀçÇϰųª Á¸ÀçÇØ¾ß ÇÏ´ÂÁö °Ë»çÇÑ´Ù.
    4. Á¸ÀçÇÏÁö ¾Ê´Â °¢ Á¾¼Ó¹°¿¡ ´ëÇؼ­ ´ÙÀ½ ¾Ë°í¸®ÁòÀ» Àç±ÍÀûÀ¸·Î ½ÇÇàÇؼ­, Á¾¼Ó¹°ÀÌ ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇؼ­ ã¾ÆÁú ¼ö Àִ°¡ ¾ø´Â°¡¸¦ º»´Ù.
    5. ¸ðµç Á¾¼Ó¹°µéÀÌ Á¸ÀçÇϰųª, Á¸ÀçÇØ¾ß Çϰųª, ¹¬½ÃÀû ±ÔÄ¢µé¿¡ ÀÇÇؼ­ ¸¸µé¾îÁú ¼ö ÀÖ´Ù¸é, ÀÌ ±ÔÄ¢ÀÌ Àû¿ëµÈ´Ù.
  7. ¾î¶² ¹¬½ÃÀû ±ÔÄ¢µµ Àû¿ëµÇÁö ¾Ê´Â´Ù¸é .DEFAULT ¿¡ ´ëÇÑ ±ÔÄ¢ÀÌ, Á¸ÀçÇÑ´Ù¸é, Àû¿ëµÈ´Ù. ÀÌ·± °æ¿ì t ¿¡°Ô .DEFAULT °¡ °¡Áö´Â µ¿ÀÏÇÑ ¸í·ÉµéÀ» ÁØ´Ù. ±×·¸Áö ¾Ê´Ù¸é t ¿¡ ´ëÇÑ ¸í·ÉµéÀº ¾ø´Â °ÍÀÌ µÈ´Ù.

ÀÏ´Ü Àû¿ëÇÒ ±ÔÄ¢ÀÌ Ã£¾ÆÁö¸é, t ¶Ç´Â n °ú ÀÏÄ¡ÇÏ´Â °Í°ú ´Ù¸¥ ±× ±ÔÄ¢ÀÇ °¢ Ÿ°Ù ÆÐÅÏ¿¡ ´ëÇؼ­, ±× ÆÐÅÏ¿¡ ÀÖ´Â `%' ´Â s ·Î ±³Ã¼µÇ°í °á°ú ÆÄÀÏ À̸§Àº, Ÿ°Ù ÆÄÀÏ t¸¦ ´Ù½Ã ¸¸µé±â À§Çؼ­ ¸í·ÉµéÀÌ ½ÇÇàµÉ ¶§±îÁö, ÀúÀåµÈ´Ù. ÀÌ·± ¸í·ÉµéÀÌ ½ÇÇàµÈ ÈÄ À̵é ÀúÀåµÈ ÆÄÀÏµé °¢°¢Àº µ¥ÀÌÅͺ£À̽º·Î µé¾î°¡°í °»½ÅµÈ °ÍÀ¸·Î ±×¸®°í ±× ÆÄÀÏ t°ú °°Àº °»½Å »óŸ¦ °¡Áö´Â °ÍÀ¸·Î ¸¶Å·µÈ´Ù.

ÆÐÅÏ ±ÔÄ¢ÀÇ ¸í·ÉµéÀÌ t ¿¡ ´ëÇؼ­ ½ÇÇàµÉ ¶§ ÀÚµ¿º¯¼öµéÀÌ Å¸°Ù°ú Á¾¼Ó¹°µé¿¡ ´ëÀÀÇÏ¿© ¼­Á¤µÈ´Ù. See section ÀÚµ¿ º¯¼öµé(Automatic Variables).


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