±ÔÄ¢ÀÇ ¸í·ÉµéÀº Çϳª Çϳª¾¿ ½ÇÇàµÇ´Â ½© ¸í·É ¶óÀεé·Î ÀÌ·ç¾îÁø´Ù. °¢ ¸í·ÉÀº ¹Ýµå½Ã ÅÇ Çϳª·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù. ÇÑ °¡Áö ¿¹¿Ü´Â, ù¹ø° ¸í·ÉÀº ¸ñÀû¹°-Á¾¼Ó¹° ¶óÀο¡ ¼¼¹ÌÄÝ·ÐÀ¸·Î ±¸ºÐµÇ¾î µÚ¿¡ ºÙ¾îÀÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ºó¶óÀεé°ú ÁÖ¼®»ÓÀÎ ¶óÀεéÀº ¸í·É ¶óÀÎµé »çÀÌ »çÀÌ¿¡ ¿Ã ¼ö ÀÖ´Ù; ±×µéÀº ¸ðµÎ ¹«½ÃµÈ´Ù. (±×·¯³ª ÇϳªÀÇ ÅÇÀ¸·Î ½ÃÀÛÇÏ´Â °ÑÀ¸·Î º¸±â¿¡ ºó ¶óÀÎÀº ½ÇÁ¦ ºó ¶óÀÎÀÌ ¾Æ´Ï´Ù¶ó´Â °ÍÀ» ÁÖÀÇÇÏÀÚ! ÀÌ°ÍÀº ºó ¸í·ÉÀÌ´Ù;see section ºó ¸í·É »ç¿ëÇϱâ(Using Empty Commands).)
À¯ÀúµéÀº ¸¹Àº ´Ù¸¥ ½© ¸í·ÉµéÀ» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ makefile¿¡ ÀÖ´Â ¸í·ÉµéÀº, makefileÀÌ ´Ù¸¥ °æ¿ì¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é, Ç×»ó `/bin/sh'¿¡ ÀÇÇؼ Çؼ®µÈ´Ù. See section ¸í·É ½ÇÇà(Command Execution).
»ç¿ëµÇ°í ÀÖ´Â ½©ÀÌ ÁÖ¼®µéÀÌ ¸í·É ¶óÀο¡ ¾²ÀÏ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö¿Í ±×µéÀÌ »ç¿ëÇÏ´Â ¹®¹ýÀÌ ¹«¾ùÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. ½©ÀÌ `/bin/sh'À̶ó¸é `#'Àº ¶óÀÎÀÇ ¸¶Áö¸·À» ´Ã¸®´Â ÁÖ¼®À» ½ÃÀÛÇÑ´Ù. `#'°¡ ¶óÀÎÀÇ ¸Ç ¾Õ¿¡ ¿Ã ÇÊ¿ä´Â ¾ø´Ù. `#' ¾Õ¿¡ ÀÖ´Â ÅؽºÆ®´Â ÁÖ¼®ÀÌ ¾Æ´Ï´Ù.
ÀϹÝÀûÀ¸·Î make
´Â °¢ ¸í·É ¶óÀÎÀ» ±×°ÍÀÌ ½ÇÇàµÇ±â Àü¿¡
µð½ºÇ÷¹ÀÌÇÑ´Ù. ¿ì¸®´Â ÀÌ°ÍÀ», ¿©·¯ºÐÀÌ ±× ¸í·ÉµéÀ» Á÷Á¢ ŸÀÌÇÎÇÏ´Â
¸ð¾çÀ̹ǷÎ, echoing¶ó°í ºÎ¸¥´Ù.
¾î¶² ¶óÀÎÀÌ `@'·Î ½ÃÀÛÇÒ ¶§, ±× ¶óÀÎÀÇ ¿¡ÄÚ´Â ³ªÅ¸³ªÁö ¾Ê´Â´Ù.
`@'´Â ¸í·ÉÀÌ ½©¿¡ Àü´ÞµÇ±â Àü¿¡ ¹ö·ÁÁø´Ù.
ÀüÇüÀûÀ¸·Î ¿©·¯ºÐÀº ÀÌ°ÍÀ», makefileÀ» ÅëÇؼ ÁøÇàµÇ´Â »óȲÀ»
Ç¥½ÃÇϱâ À§Çؼ echo
¿Í °°Àº ¸í·É°ú °°Àº, ¾î¶² °ÍÀ»
Ãâ·ÂÇÏ´Â °ÍÀÌ ±×°ÍÀÇ À¯ÀÏÇÑ ÇÏ´Â ÀÏÀÎ ¸í·É¿¡ ´ëÇؼ »ç¿ëÇÒ °ÍÀÌ´Ù:
@echo About to make distribution files
make
´Â `-n' ¶Ç´Â `--just-print' Ç÷¡±×¸¦ ¹ÞÀ¸¸é
½ÇÇà ¾øÀÌ ¿¡ÄÚ¸¸ ÇÑ´Ù. See section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options). ÀÌ·± °æ¿ì ±×¸®°í ÀÌ·± °æ¿ì¿¡¸¸ `@'À¸·Î
½ÃÀÛÇÏ´Â ¸í·ÉµéÁ¶Â÷µµ Ãâ·ÂµÈ´Ù.
ÀÌ Ç÷¡±×´Â ±×°ÍÀ»À» ½ÇÁ¦·Î ¼öÇàÇÏÁö ¾Ê°í¼, make
°¡
»ý°¢Çϱ⿡ ¾î¶²
¸í·ÉµéÀÌ ÇÊ¿äÇÑ °ÍÀΰ¡¸¦ ã¾Æ³¾ ¶§ À¯¿ëÇÏ´Ù.
make
¿¡ ´ëÇÑ `-s' ¶Ç´Â `--silent' Ç÷¡±×´Â, ¸¶Ä¡ ¸ðµç
¸í·ÉµéÀÌ
`@'À¸·Î ½ÃÀÛÇÏ´Â °Íó·³ ¸ðµç ¿¡ÄÚ¸¦ ±ÝÁö½ÃŲ´Ù.
Á¾¼Ó¹°ÀÌ ¾ø´Â Ư¼ö Ÿ°Ù .SILENT
±ÔÄ¢Àº ÀÌ°Í°ú µ¿ÀÏÇÑ È¿°ú¸¦
°¡Áø´Ù (see section Ư¼ö ³»Àå Ÿ°Ù À̸§(Special Built-in Target Names)).
.SILENT
´Â `@'°¡ Á» ´õ Ç÷º½ÃºíÇϱ⠶§¹®¿¡ ±âº»ÀûÀ¸·Î Àß
¾È¾´´Ù.
Ÿ°ÙÀ» ¾÷µ¥ÀÌÆ®Çϱâ À§Çؼ ¸í·ÉµéÀ» ½ÇÇàÇÒ ¶§, °¢ ¶óÀο¡ ´ëÇÑ »õ·Î¿î
¼ºê½©µéÀ» ¸¸µëÀ¸·Î½á ½ÇÇàµÈ´Ù. (½ÇÁ¦·Î make
´Â °á°ú¿¡ ¿µÇâÀ»
¹ÌÄ¡Áö ¾Ê´Â Áö¸§±æÀ» ÃëÇÒ·±Áöµµ ¸ð¸¥´Ù.)
Please note: ÀÌ°ÍÀº cd
¿Í °°ÀÌ °¢ ÇÁ·Î¼¼½º¿¡°Ô ·ÎÄÃÀÎ
º¯¼öµéÀ» ¼³Á¤ÇÏ´Â ½© ¸í·ÉµéÀº ´ÙÀ½ ¸í·É ¶óÀε鿡 ¿µÇâÀ» ¹ÌÄ¡Áö ¾ÊÀ»
°ÍÀÌ´Ù. (2) cde
¸¦ »ç¿ëÇÏ°í ´ÙÀ½ ¸í·É¿¡ ¿µÇâÀ»
¹ÌÄ¡±â¸¦ ¿øÇÑ´Ù¸é ÀÌ µÎ°³¸¦ ´ÜÀÏ ¶óÀο¡ ³Ö°í ±× °¡¿îµ¥ ¼¼¹ÌÄÝ·ÐÀ»
»ç¿ëÇÏÀÚ. ±×·¯¸é make
´Â ±×µéÀ» ´ÜÀÏ ¸í·ÉÀ¸·Î »ý°¢ÇÏ°í ±×µéÀ» °°ÀÌ
½©¿¡°Ô Àü´ÞÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î¼:
foo : bar/lose cd bar; gobble lose > ../foo
¿©·¯ºÐÀÌ ´ÜÀÏ ½© ¸í·ÉÀ» ¿©·¯ ¶óÀεé·Î ºÐÇÒÇÏ°íÀÚ ÇÑ´Ù¸é ¿©·¯ºÐÀº ¸¶Áö¸· ¼ºê¶óÀθ¸ Á¦¿ÜÇÏ°í ¸ðµç ¶óÀÎÀÇ ¸¶Áö¸·¿¡´Ù ¿ª½½·¡½¬¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ±×·± ¶óÀεéÀÇ ½ÃÄö½º´Â ¿ª½½·¡½¬-°³Çà ½ÃÄö½º¸¦ Á¦°ÅÇÔÀ¸·Î½á, ±×°ÍÀ» ½©¿¡°Ô Àü´ÞÇϱâ Àü¿¡, ´ÜÀÏ ¶óÀÎÀ¸·Î Á¶ÇյȴÙ. ±×·¡¼ ´ÙÀ½Àº ÀÌÀü ¿¹Á¦¿Í µ¿ÀÏÇÑ °ÍÀÌ´Ù:
foo : bar/lose cd bar; \ gobble lose > ../foo
½©·Î »ç¿ëµÈ ÇÁ·Î±×·¥Àº º¯¼ö SHELL
·ÎºÎÅÍ ÃëÇØÁø´Ù. µðÆúÆ®·Î
`/bin/sh'¶ó´Â ÇÁ·Î±×·¥ÀÌ »ç¿ëµÈ´Ù.
MS-DOS¿¡¼ SHELL
ÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é COMSPEC
À̶ó´Â
º¯¼öÀÇ °ª(ÀÌ°ÍÀº Ç×»ó ¼³Á¤µÈ´Ù)ÀÌ ´ë½Å »ç¿ëµÈ´Ù.
º¯¼ö SHELL
¸¦ Makefileµé¿¡¼ ¼³Á¤ÇÏ´Â ¶óÀεéÀ» ó¸®ÇÏ´Â °ÍÀº
MS-DOSÀÇ °æ¿ì ´Ù¸£´Ù. ±âº» ½©, `command.com', Àº ÀÌ»óÇÏ°Ô ±×
±â´ÉÀÌ ¸¹Àº Á¦¾àÀÌ ÀÖ°í ¸¹Àº make
»ç¿ëÀÚµéÀº ´ëü ½©À» ¼³Ä¡ÇÏ´Â
°æÇâÀÌ ÀÖ´Ù. ±×·¯¹Ç·Î MS-DOS¿¡¼ make
´Â º¯¼ö SHELL
ÀÇ
°ªÀ» ½ÃÇèÇÏ°í ±×°ÍÀÇ ÇൿÀ» ±×°ÍÀÌ À¯´Ð½º ½ºÅ¸ÀÏ ½©Àΰ¡ ¾Æ´Ï¸é DOS-
½ºÅ¸ÀÏ ½©Àΰ¡¿¡ µû¶ó¼ º¯°æÇÑ´Ù. ÀÌ°ÍÀº SHELL
ÀÌ
`command.com'À» °¡¸®Å°´õ¶óµµ Ÿ´ç¼º ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù.
`command.com'.
SHELL
ÀÌ À¯´Ð½º-½ºÅ¸ÀÏ ½©À» °¡¸®Å°¸é MS_DOS»óÀÇ make
´Â ±×
½©ÀÌ ½ÇÁ¦·Î ã¾ÆÁú ¼ö ÀÖ´Â °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ Ãß°¡·Î °Ë»çÇÑ´Ù; ±×·¸Áö
¾Ê´Ù¸é ÀÌ°ÍÀº SHELL
À» ¼³Á¤ÇÑ ¶óÀÎÀ» ¹«½ÃÇÑ´Ù. MS-DOS¿¡¼ GNU
make
´Â ´ÙÀ½°ú °°Àº À§Ä¡µé¿¡¼ ½©À» °Ë»öÇÑ´Ù:
SHELL
¿¡ ÀÇÇؼ ÁöÁ¤µÈ Á¤È®ÇÑ À§Ä¡¿¡¼. ¿¹¸¦ µé¾î¼ makefileÀÌ
`SHELL = /bin/sh'¶ó°í ÁöÁ¤Çß´Ù¸é make
´Â ÇöÀç µå¶óÀ̺êÀÇ
`/bin' µð·ºÅ丮¿¡¼ ãÀ» °ÍÀÌ´Ù.
PATH
º¯¼ö¿¡ ÀÖ´Â °¢ µð·ºÅ丮¿¡¼ ¼ø¼´ë·Î °Ë»öÇÑ´Ù.
ÀÌ°ÍÀÌ ½ÃÇèÇÑ ¸ðµç µð·ºÅ丮¿¡¼ make
´Â ù¹ø° ƯÁ¤ÇÑ ÆÄÀÏ(À§ÀÇ
¿¹Á¦¿¡¼´Â `sh')¸¦ ã´Â´Ù. ÀÌ°ÍÀÌ ¾øÀ¸¸é ½ÇÇà ÆÄÀÏÀÓÀ» ³ªÅ¸³»´Â
¾Ë·ÁÁø È®ÀåÀÚµé ÁßÀÇ Çϳª¸¦ °¡Áö´Â ÆÄÀÏÀ» ±× µð·ºÅ丮¿¡¼ ¶ÇÇÑ Ã£À»
°ÍÀÌ´Ù. ¿¹¸¦ µé¾î¼ `.exe',
`.com', `.bat', `.btm', `.sh', ±×¸®°í ³ª¸ÓÁö.
ÀÌ·± ½ÃµµµéÁß¿¡ ¾î¤¨³Ê °ÍÀÌ¶óµµ ¼º°øÇϸé SHELL
ÀÇ °ªÀº ã¾ÆÁø
½©ÀÇ Ç® °æ·Î¸íÀ¸·Î ¼³Á¤µÉ °ÍÀÌ´Ù. ±×·¯³ª À̵éÁß ¾î¶² °Íµµ ã¾ÆÁöÁö
¾ÊÀ¸¸é SHELL
´Â º¯°æµÉ °ÍÀÌ°í ±×·¡¼ ÀÌ°ÍÀ» ¼³Á¤ÇÑ ¶óÀÎÀº
È¿°úÀûÀ¸·Î ¹«½ÃµÉ °ÍÀÌ´Ù. ÀÌ°ÍÀÌ, make
°¡ ½ÇÇàÇÏ´Â ½Ã½ºÅÛ¿¡¼
±×·± ½©ÀÌ ½ÇÁ¦·Î ¼³Ä¡µÇ¾ú´Ù¸é, À¯´Ð½º-½ºÅ¸ÀÏ ½©¿¡ Á¾¼ÓÀûÀ¸·Î
make
°¡ À¯ÀÏÇÏ°Ô Áö¿øÇÏ´Â °ÍÀÌ µÉ °ÍÀÌ´Ù.
ÀÌ·± ½©¿¡ ´ëÇÑ È®ÀåµÈ °Ë»öÀº SHELL
ÀÌ Makefile¿¡¼ ¼³Á¤µÈ °æ¿ì·Î
Á¦Çѵȴٴ °Í¿¡ À¯ÀÇÇÏÀÚ; ÀÌ°ÍÀÌ È¯°æº¯¼ö·Î ¶Ç´Â ¸í·ÉÇà¿¡¼ ÁöÁ¤µÇ¸é
¿©·¯ºÐÀº À¯´Ð½º¿¡¼ ÇÏ´Â °Í°ú ¾ÆÁÖ ¶È°°ÀÌ, ÀÌ°ÍÀ» ½©ÀÇ ¿ÏÀüÇÑ
°æ·Î¸íÀ¸·Î ¼³Á¤ÇÒ °ÍÀ¸·Î ±â´ëµÈ´Ù.
À§¿Í °°Àº DOS-Á¾¼ÓÀûÀΠó¸®ÀÇ È¿°ú´Â `SHELL = /bin/sh'(¸¹Àº
À¯´Ð½º makefileµéÀÌ ÇÏ´Â °Íó·³)¶ó°í ¸»ÇÏ´Â MakefileÀº ¿©·¯ºÐÀÌ
PATH
ÀÇ ¾î¶² µð·ºÅ丮¿¡ ¿¹¸¦ µé¸é `sh.exe'°ú °°Àº °ÍÀ»
¼³Ä¡Çسõ¾ÒÀ» °æ¿ì, º¯°æ¾øÀÌ MS-DOS¿¡¼ »ç¿ëµÉ °ÍÀÌ´Ù¶ó´Â °ÍÀÌ´Ù.
´ëºÎºÐÀÇ º¯¼öµé°ú´Â ´Ù¸£°Ô SHELL
º¯¼ö´Â Àý´ë·Î ȯ°æº¯¼ö·ÎºÎÅÍ
¼³Á¤µÇÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº ¿Ö³Ä¸é SHELL
ȯ°æº¯¼ö°¡ ÀÎÅÍ·ºÆ¼ºêÇÑ
»ç¿ëÀ» À§ÇÑ ½© ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¿©·¯ºÐÀÇ °³ÀÎÀûÀÎ ¼±ÅÃÀ» ÁöÁ¤ÇÒ ¶§
»ç¿ëµÇ±â ¶§¹®ÀÌ´Ù. ÀÌ°Í°ú °°Àº °³ÀÎÀûÀÎ ¼±ÅõéÀÌ makefileÀÇ ±â´Éµé¿¡
¿µÇâÀ» ¹ÌÄ¡Áö´Â °ÍÀº ¾ÆÁÖ ¾ÈÁÁÀ» ¼ö ÀÖ´Ù. See section ȯ°æÀ¸·ÎºÎÅÍÀÇ º¯¼öµé(Variables from the Environment). ±×·¯³ª MS-DOS¿Í MS-Windows¿¡¼
ȯ°æº¯¼ö SHELL
ÀÇ °ªÀº »ç¿ëµÈ´Ù. ¿Ö³Ä¸é ±×·±
½Ã½ºÅ۵鿡¼ ´ëºÎºÐÀÇ »ç¿ëÀÚµéÀº ÀÌ·± º¯¼ö¸¦ ¼³Á¤ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
±×·¯¹Ç·Î make
¿¡ ÀÇÇؼ »ç¿ëµÇµµ·Ï Ưº°È÷ ¼³Á¤µÇ´Â °æ¿ì°¡
´ëºÎºÐÀÏ °ÍÀÌ´Ù. MS-DOS¿¡¼ SHELL
ÀÇ ¼³Á¤ÀÌ make
¿¡ ´ëÇؼ
ÀûÀýÇÏÁö ¾Ê´Ù¸é ¿©·¯ºÐÀº º¯¼ö MAKESHELL
¸¦ make
°¡
»ç¿ëÇØ¾ß ÇÏ´Â ½©¿¡ ´ëÇؼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù; ÀÌ°ÍÀº SHELL
ÀÇ °ªÀ»
¿À¹ö¶óÀ̵åÇÒ °ÍÀÌ´Ù.
GNU make
´Â ¿©·¯ ¸í·ÉµéÀ» µ¿½Ã¿¡ ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù.
ÀϹÝÀûÀ¸·Î make
´Â Çѹø¿¡ ÇϳªÀÇ ¸í·É¸¸À» ½ÇÇàÇÏ°í ´ÙÀ½ÀÇ °ÍÀ»
½ÇÇàÇϱâÀü¿¡ ±×°ÍÀÌ Á¾·áµÉ ¶§±îÁö ±â´Ù¸°´Ù. ±×·¯³ª `-j' ¶Ç´Â
`--jobs' ¿É¼ÇÀº make
¿¡°Ô ¸¹Àº ¸í·ÉµéÀ» µ¿½Ã¿¡ ½ÇÇàÇϵµ·Ï
ÇÑ´Ù.
MS-DOS¿¡¼ `-j' ¿É¼ÇÀº È¿°ú°¡ ¾ø´Ù. ¿Ö³Ä¸é ±× ½Ã½ºÅÛÀº ¸ÖƼ-ÇÁ·Î¼¼½ÌÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
`-j' ¿É¼Ç µÚ¿¡ Á¤¼ö°¡ ºÙÀ¸¸é ÀÌ°ÍÀº ÇÑ ¹ø¿¡ ¼öÇàÇÒ ¸í·ÉµéÀÇ °³¼ö¸¦ ¸»ÇÑ´Ù; ÀÌ°ÍÀº ÀÛ¾÷ ½½·Ô(job slots) ÀÇ °³¼ö¶ó°í ºÒ¸°´Ù. `-j' ¿É¼Ç µÚ¿¡ Á¤¼ö·Î º¸ÀÌ´Â °ÍÀÌ ¾ø´Ù¸é ÀÛ¾÷ ½½·ÔÀÇ °³¼ö¿¡ Á¦ÇÑÀÌ ¾ø¾îÁø´Ù. ÀÛ¾÷ ½½·ÔÀÇ µðÆúÆ® °³¼ö´Â 1ÀÌ´Ù. ÀÌ°ÍÀº ¼øÂ÷ÀûÀÎ ½ÇÇà(Çѹø¿¡ Çϳª¾¿)À» ÀǹÌÇÑ´Ù.
´Ù¼öÀÇ ¸í·ÉµéÀ» µ¿½Ã¿¡ ½ÇÇàÇÏ´Â °ÍÀÇ ÇÑ°¡Áö Áñ°ÌÁö ¾ÊÀº °á°ú´Â ¸ðµç ¸í·ÉµéÀÇ Ãâ·Â¹°ÀÌ ¸í·ÉµéÀÌ ±×°ÍÀ» º¸³¾ ¶§ ³ªÅ¸³´Ù´Â °ÍÀÌ´Ù. ±×·¡¼ ¼·Î ´Ù¸¥ ¸í·Éµé·ÎºÎÅÍÀÇ ¸Þ½ÃÁöµéÀÌ ¿©±âÀú±â ¼¯¿©¼ ³ªÅ¸³´Ù.
´Ù¸¥ ¹®Á¦´Â µÎ ÇÁ·Î¼¼½ºµéÀÌ µ¿ÀÏÇÑ ÀåÄ¡·ÎºÎÅÍ ÀÔ·ÂÀ» µ¿½Ã¿¡ ÃëÇÒ ¼ö
¾ø´Ù´Â °ÍÀÌ´Ù; ±×·¡¼ ´ÜÁö ÇϳªÀÇ ¸í·ÉÀÌ Å͹̳ηκÎÅÍ ÇÑ ½ÃÁ¡¿¡ ÀÔ·ÂÀ»
¹ÞÀ¸·Á°í ½ÃµµÇÑ´Ù. ±×·¡¼ make
´Â Çϳª¸¦ Á¦¿ÜÇÑ ¸ðµç ½ÇÇàÁßÀÎ
¸í·ÉµéÀÇ Ç¥ÁØ ÀÔ·Â ½ºÆ®¸²µéÀ» ¹«È¿ÈÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº,
¿©·¯°³ÀÇ ÀÚ½Ä ÇÁ·Î¼¼½ºµéÀÌ ÀÖÀ» °æ¿ì ´ëºÎºÐÀÇ ÀÚ½Ä ÇÁ·Î¼¼½ºµé¿¡ ´ëÇؼ
Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ ÀÐÀ¸·Á°í ½ÃµµÇÏ´Â °ÍÀº º¸Åë Ä¡¸íÀûÀÎ
¿¡·¯(`Broken pipe' ½Ã±×³Î)¸¦ ¸¸µé°ÍÀÌ´Ù¶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù
¾î¶² ¸í·ÉÀÌ À¯È¿ÇÑ Ç¥ÁØ ÀÔ·Â ½ºÆ®¸²(Å͹̳ηκÎÅÍ ¿Ã, ¶Ç´Â ¿©·¯ºÐÀÌ
make
ÀÇ Ç¥ÁØÀÔ·ÂÀ» ¸®´ÙÀÌ·ºÆ®ÇÑ ¾î¶² °ÍÀÌ¶óµµ ÀÌ°÷À¸·ÎºÎÅÍ ¿Ã)À»
°¡Áö°í ÀÖ´ÂÁö ¿¹ÃøÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù. óÀ½ ¸í·ÉÀÌ Ç×»ó ù¹ø°¸¦
¾òÀ» °ÍÀÌ´Ù. ±×¸®°í ¸í·ÉÀº Çϳª°¡ ³¡³ ÈÄ ½ÃÀÛÇÑ Ã¹¹ø° ¸í·ÉÀÌ ´ÙÀ½
°ÍÀ» ¾òÀ» °ÍÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î °è¼ÓµÈ´Ù.
¿ì¸®°¡ Á» ´õ ³ªÀº ´ë¾ÈÀ» ã´Â´Ù¸é make
ÀÇ ÀÌ·± ¾ç½ÄÀÌ ÀÛµ¿ÇÏ´Â
¹æ¹ýÀ» ¹Ù²Ü °ÍÀÌ´Ù. ±×·¯±â Àü¿¡ ¿©·¯ºÐÀÌ º´·Ä ó¸® ±â´ÉÀ» »ç¿ëÇÏ°í
ÀÖ´Ù¸é Ç¥ÁØ ÀÔ·ÂÀ» »ç¿ëÇÏ´Â ¾î¶² ¸í·Éµµ ÀÇÁ¸Çؼ´Â ¾ÈµÈ´Ù; ±×·¯³ª ÀÌ·±
±â´ÉÀ» »ç¿ëÇÏ°í ÀÖÁö ¾Ê´Ù¸é Ç¥ÁØ ÀÔ·ÂÀº ¸ðµç ¸í·Éµé¿¡¼ ÀϹÝÀûÀ¸·Î Àß
ÀÛ¿ËÇÑ´Ù.
¾î¶² ¸í·ÉÀÌ ½ÇÆÐÇÏ°í(½Ã±×³Î¿¡ ÀÇÇؼ killµÇ°Å³ª 0ÀÌ ¾Æ´Ñ »óÅ°ªÀ»
°¡Áö°í exitÇÏ°í), ¿¡·¯µéÀÌ ±× ¸í·É¿¡ ´ëÇؼ ¹«½ÃµÇÁö ¾ÊÀ¸¸é
(see section ¸í·É¿¡¼ ¿¡·¯(Errors in Commands)), µ¿ÀÏÇÑ Å¸°ÙÀ» ´Ù½Ã ¸¸µå´Â ³²Àº
¸í·É ¶óÀεéÀº ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸í·ÉÀÌ ½ÇÆÐÇÏ°í `-k'³ª
`--keep-going' ¿É¼ÇÀÌ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é (see section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options)), make
´Â ½ÇÇàÀ» ÁßÁöÇÑ´Ù. ¾î¶²
ÀÌÀ¯¿¡¼°Ç(½Ã±×³ÎÀ» Æ÷ÇÔÇؼ) ½ÇÇàÁßÀÎ ÀÚ½Ä ÇÁ·Î¼¼½ºµéÀ» °¡Áø make°¡
Á¾·áÇÏ°Ô µÇ¸é ±×°ÍÀº ½ÇÁ¦·Î ³ª°¡±â Àü¿¡ ÀÚ½Ä ÇÁ·Î¼¼½ºµéÀÌ Á¾·áÇϱ⸦
±â´Ù¸°´Ù.
½Ã½ºÅÛÀÇ ºÎÇÏ°¡ ¾ÆÁÖ Å¬¶§ ¿©·¯ºÐÀº ¾Æ¸¶µµ ºÎÇÏ°¡ ÀûÀ» ¶§º¸´Ù ´õ ÀûÀº
ÀÛ¾÷µéÀ» ½ÇÇàÇÏ°íÀÚ ÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀº `-l' ¿É¼ÇÀ» ½á¼
make
¿¡°Ô Çѹø¿¡ ½ÇÇàÇÒ ÀÛ¾÷µéÀÇ °³¼ö¸¦, Æò±Õ ºÎÇÏ¿¡ ±âÃÊÇؼ
Á¦ÇÑÇϵµ·Ï Áö½ÃÇÒ ¼ö ÀÖ´Ù. `-l' ¶Ç´Â `--max-load' ¿É¼ÇÀº ±×
µÚ¿¡ ºÎµ¿-¼Ò¼ýÁ¡ ¼ýÀÚ°¡ ºÙ´Â´Ù. ¿¹¸¦ µé¾î¼,
-l 2.5
ÀÌ°ÍÀº make
°¡, Æò±Õ ºÎÇÏ°¡ 2.5º¸´Ù Å©¸é ÇÑ ÀÛ¾÷º¸´Ù ´õ ¸¹Àº
ÀÛ¾÷À» ½ÃÀÛÇÏÁö ¸øÇϵµ·Ï ÇÒ °ÍÀÌ´Ù. µÚ¿¡ ¼ýÀÚ°¡ ¾ø´Â `-l' ¿É¼ÇÀº,
ÀÌÀü¿¡ `-l' ¿É¼ÇÀ¸·Î ÁöÁ¤µÈ °ÍÀÌ ÀÖ´Ù¸é, ºÎÇÏ Á¦ÇÑÀ» Á¦°ÅÇÑ´Ù.
Á» ´õ Á¤È®ÇÏ°Ô, make
°¡ ÇϳªÀÇ ÀÛ¾÷À» ½ÃÀÛÇÒ ¶§, ±×¸®°í Àû¾îµµ
ÇϳªÀÇ ½ÇÇàÁßÀÎ ÀÛ¾÷À» °¡Áö°í ÀÖÀ» ¶§, ÀÌ°ÍÀº ÇöÀç Æò±Õ ºÎÇϸ¦
ÃøÁ¤ÇÑ´Ù; `-l'·Î ÁÖ¾îÁø Á¦ÇѺ¸´Ù ´õ ³·Áö ¾Ê´Ù¸é make
´Â
Æò±Õ ºÎÇÏ°¡ ±× Á¦ÇѺ¸´Ù ³·¾ÆÁú ¶§±îÁö ȤÀº ¸ðµç ´Ù¸¥ ÀÛ¾÷µéÀÌ Á¾·áµÉ
¶§±îÁö ±â´Ù¸°´Ù.
µðÆúÆ®·Î ºÎÇÏ Á¦ÇÑÀº ¾ø´Ù.
°¢ ½© ¸í·ÉÀÌ ¸®ÅÏÇÑ ÈÄ, make
´Â ±×°ÍÀÇ Á¾·á »óÅ°ªÀ» Á¶»çÇÑ´Ù.
±× ¸í·ÉÀÌ ¼º°øÀûÀ¸·Î Á¾·áÇÏ¸é ´ÙÀ½ ¸í·É ¶óÀÎÀÌ »õ·Î¿î ½©¿¡¼ ½ÇÇàµÈ´Ù;
¸¶Áö¸· ¸í·É ¶óÀÎÀÌ Á¾·áµÈ ÈÄ ±× ±ÔÄ¢Àº Á¾·áÇÑ´Ù.
¿¡·¯°¡ ÀÖÀ¸¸é(Á¾·á »óÅ°ªÀÌ 0ÀÌ ¾Æ´Ï¸é), make
´Â ÇöÀç ±ÔÄ¢À»
±×¸®°í ¾Æ¸¶µµ ¸ðµç ±ÔÄ¢µéÀ», Æ÷±âÇÑ´Ù.
¶§¶§·Î ¾î¶² ¸í·ÉÀÇ ½ÇÆа¡ ¹®Á¦¸¦ °¡¸®Å°´Â °ÍÀº ¾Æ´Ï´Ù. ¿¹¸¦ µé¾î¼
¿©·¯ºÐÀº mkdir
¸í·ÉÀ» »ç¿ëÇؼ ¾î¶² µð·ºÅ丮ÀÇ Á¸Àç À¯¹«¸¦
°Ë»çÇÒ ¼öµµ ÀÖ´Ù. ±×·± µð·ºÅ丮°¡ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é mkdir
´Â
¿¡·¯¸¦ º¸°íÇÒ °ÍÀÌ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ¾Æ¸¶µµ make
°¡ ±×°ÍÀ»
½Å°æ¾²Áö ¾Ê°í °è¼ÓÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù.
¸í·É ¶óÀο¡¼ ¿¡·¯µéÀ» ¹«½ÃÇϱâ À§Çؼ ±× ¶óÀÎ ÅؽºÆ®ÀÇ ½ÃÀۺκÐ(Ãʱâ ÅÇ ¹®ÀÚ µÚ¿¡)¿¡ `-' Çϳª¸¦ ³Ö´Â´Ù. `-'´Â ¸í·ÉÀÌ ½ÇÇàÀ» À§Çؼ ½©·Î Àü´ÞµÇ±â Àü¿¡ ¹«½ÃµÈ´Ù.
¿¹¸¦ µé¾î¼,
clean: -rm -f *.o
ÀÌ°ÍÀº rm
ÀÌ ¾î¶² ÆÄÀÏÀ» Á¦°ÅÇÒ ¼ö ¾ø´ÙÇÏ´õ¶óµµ °è¼ÓÇϵµ·Ï ÇÑ´Ù.
¿©·¯ºÐÀÌ make
¸¦ `-i'³ª `--ignore-errors' Ç÷¡±×¸¦
½á¼ ½ÇÇàÇÒ ¶§ ¿¡·¯µéÀÌ ¸ðµç ±ÔÄ¢ÀÇ ¸ðµç ¸í·Éµé¿¡¼ ¹«½ÃµÈ´Ù.
makefile¿¡ Àִ Ư¼ö Ÿ°Ù .IGNORE
¿¡ ´ëÇÑ ±ÔÄ¢Àº, Á¾¼Ó¹°µéÀÌ
¾øÀ» ¶§, µ¿ÀÏÇÑ È¿°ú¸¦ ³½´Ù. ¿¡·¯¸¦ ¹«½ÃÇÏ´Â ÀÌ·± ¹æ¹ýµéÀº `-'°¡
Á» ´õ À¯¿¬Çϱ⠶§¹®¿¡ ±¸½ÄÀÌ µÇ¹ö·È´Ù.
¿¡·¯µéÀÌ ¹«½ÃµÇ¾î¾ß ÇÒ ¶§, `-'³ª `-i' Ç÷¡±× ¶§¹®¿¡,
make
´Â ¿¡·¯ ¸®ÅÏÀ» ¼º°øó·³ Ãë±ÞÇÑ´Ù. ´Ü, ¿©·¯ºÐ¿¡ ±× ¸í·ÉÀÌ
exitÇÑ »óÅ Äڵ带 ¸»ÇØÁÖ´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ¿¡·¯°¡ ¹«½ÃµÇ¾ú´Ù´Â °ÍÀ»
¸»ÇÏ´Â °Í¿Ü´Â ±×·¸´Ù.
make
°¡ ¹«½ÃÇϵµ·Ï ¿ä±¸¹ÞÁö ¾ÊÀº ¾î¶² ¿¡·¯°¡ ¹ß»ýÇϸé, ÀÌ°ÍÀº
ÇöÀç Ÿ°ÙÀÌ Á¤»óÀûÀ¸·Î ´Ù½Ã ¸¸µé¾îÁú¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÏ°í, ÀÌ°Í¿¡
Á÷°£Á¢ÀûÀ¸·Î ÀÇÁ¸ÇÏ°í ÀÖ´Â ´Ù¸¥ ¾î¶² °Íµéµµ ¶ÇÇÑ ¸¸µé¾îÁú ¼ö ¾ø´Ù´Â °ÍÀ»
ÀǹÌÇÑ´Ù. ÀÌ·± Ÿ°Ùµé¿¡ ´ëÇÑ ´õÀÌ»óÀÇ ¾î¶² ¸í·Éµéµµ ½ÇÇàµÇÁö ¾ÊÀ»
°ÍÀÌ´Ù. ¿Ö³Ä¸é ±×µéÀÇ »çÀüÁ¶°Ç(precondition)µéÀÌ ÀÌ·ç¾îÁöÁö ¾Ê¾Ò±â
¶§¹®ÀÌ´Ù.
ÀϹÝÀûÀ¸·Î make
´Â ÀÌ·± »óȲ¿¡¼ Áï°¢ Æ÷±âÇÏ¿© 0ÀÌ ¾Æ´Ñ »óÅ°ªÀ»
¸®ÅÏÇÑ´Ù. ±×·¯³ª `-k'³ª `--keep-going' Ç÷¡±×°¡ ÁöÁ¤µÇ¸é
Æ÷±âÇÏ°í 0ÀÌ ¾Æ´Ñ »óÅ°ªÀ» ¸®ÅÏÇϱâ Àü¿¡,
make
´Â °è·ùÁßÀΠŸ°ÙµéÀÇ ´Ù¸¥ Á¾¼Ó¹°µéÀ» »ý°¢Çϱ⠽ÃÀÛÇÏ°í,
±×°ÍµéÀ» ÇÊ¿äÇÏ´Ù¸é ´Ù½Ã ¸¸µç´Ù. ¿¹¸¦ µé¾î¼ ÇÑ°¡Áö ¿ÀºêÁ§Æ® ÆÄÀÏÀ»
ÄÄÆÄÀÏÇÒ ¶§ ¿¡·¯°¡ »ý±ä ÈÄ¿¡ `make -k'´Â ÀÌ¹Ì ´Ù¸¥ ¿ÀºêÁ§Æ®
ÆÄÀϵéÀ» ¸µÅ©°¡ÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÒ °ÍÀ̶ó´Â °ÍÀ» ¾È´ÙÇÏ´õ¶óµµ ´Ù¸¥
ÀÌ·± ¿ÀºêÁ§Æ® ÆÄÀϵéÀ» °Ô¼Ó ÄÄÆÄÀÏÇÒ °ÍÀÌ´Ù. See section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options).
ÀϹÝÀûÀÎ ÇൿÀº ¿©·¯ºÐÀÇ ¸ñÀûÀÌ Æ¯Á¤ÇÑ Å¸°ÙÀÌ °»½ÅµÇµµ·Ï ÇÏ´Â °ÍÀ̶ó°í
°¡Á¤ÇÑ´Ù; ÀÏ´Ü make
°¡ ÀÌ°ÍÀÌ ºÒ°¡´ÉÇÑ °ÍÀ» ¹è¿ì°Ô µÇ¸é ÀÌ°ÍÀº
±× ½ÇÆи¦ Áï°¢ º¸°íÇÒ °ÍÀÌ´Ù. `-k' ¿É¼ÇÀº, ½ÇÁ¦ ¸ñÀûÀÌ ÇÁ·Î±×·¥
³»¿¡¼ ¸¸µé¾îÁø °¡´ÉÇÑ ¸¹Àº º¯È¸¦ Å×½ºÆ®ÇÏ´Â °ÍÀ̶ó°í, ±×¸®°í ¾Æ¸¶µµ
¸î°¡Áö µ¶¸³ÀûÀÎ ¹®Á¦µéÀ» ã¾Æ¼ ¿©·¯ºÐÀÌ ±×°ÍµéÀ» ´ÙÀ½ ÄÄÆÄÀÏ ½Ãµµ
ÀÌÀü¿¡ ±³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ̶ó°í ¸»ÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¹Ù·Î ¿Ö À̸ƽºÀÇ
compile
¸í·ÉÀÌ µðÆúÆ®·Î `-k' Ç÷¡±×¸¦ Àü´ÞÇϴ°¡¿¡ ´ëÇÑ
ÀÌÀ¯ÀÌ´Ù. @cindex Emacs (M-x compile
)
ÀϹÝÀûÀ¸·Î ¾î¶² ¸í·ÉÀÌ ½ÇÆÐÇÒ ¶§, ÀÌ°ÍÀÌ Å¸°Ù ŸÀÏÀ» º¯°æÇÏ¿©
¹ö·È´Ù¸é, ±× ÆÄÀÏÀº ¿À¿°µÈ °ÍÀÌ°í »ç¿ëµÉ ¼ö ¾ø´Â °ÍÀÌ´Ù---¾Æ´Ï¸é
Àû¾îµµ ÀÌ°ÍÀº ¿ÏÀüÈ÷ °»½ÅµÈ °ÍÀÌ ¾Æ´Ï´Ù. ±×·¯³ª ±× ÆÄÀÏÀÇ Å¸ÀÓ½ºÅÆÇÁ´Â
ÀÌ°ÍÀÌ ÀÌÁ¦ °»½ÅµÈ °ÍÀ̶ó°í ¸»ÇÑ´Ù. ±×·¡¼ ´ÙÀ½¹ø make
°¡ ½ÇÇàÇÒ
¶§ ÀÌ°ÍÀº ±× ÆÄÀÏÀ» °»½ÅÇÏ·Á°í ½ÃµµÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ·± »óȲÀº
¸í·ÉÀÌ ½Ã±×³Î¿¡ ÀÇÇؼ killµÇ¾úÀ» ¶§¿Í µ¿ÀÏÇÏ´Ù; see section make
¸¦ ÀÎÅÍ·´Æ® ¶Ç´Â Á×À̱â(Interrupting or Killing make
).
±×·¡¼ ÀϹÝÀûÀ¸·Î ÇØ¾ß ÇÒ ¿Ã¹Ù¸¥ ÀÏÀº ±× ¸í·ÉÀÌ ±× ÆÄÀÏÀ» º¯°æ ½ÃÀÛÇÑ
ÈÄ ½ÇÆÐÇß´Ù¸é ±× Å¸°Ù ÆÄÀÏÀ» Áö¿ì´Â °ÍÀÌ´Ù. .DELETE_ON_ERROR
°¡
Ÿ°ÙÀ¸·Î½á ³ªÅ¸³ª¸é make
´Â ÀÌ·± ÀÏÀ» ÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº ´ë°³
Ç×»ó make
°¡ ÇÏ¿´À¸¸é ÇÏ´Â °ÍÀÌÁö¸¸ ÀÌ°ÍÀº ¿ª»çÀûÀ¸·Î Çö½ÇÀûÀÎ
°ÍÀÌ ¾Æ´Ï´Ù; ±×·¡¼ ȣȯ¼ºÀ» À§Çؼ ¿©·¯ºÐÀº ¹Ýµå½Ã ÀÌ°ÍÀ» ¸í½ÃÀûÀ¸·Î
¿ä±¸ÇØ¾ß ÇÑ´Ù.
make
¸¦ ÀÎÅÍ·´Æ® ¶Ç´Â Á×À̱â(Interrupting or Killing make
)
make
°¡ Ä¡¸íÀûÀÎ ½Ã±×³ÎÀ» ¾î¶² ¸í·ÉÀÌ ½ÇÇàÇÏ°í ÀÖÀ» ¶§, ¹Þ´Â´Ù¸é
ÀÌ°ÍÀº ±× ¸í·ÉÀÌ ¾÷µ¥ÀÌÆ®ÇÏ·Á°í ÇÑ Å¸°Ù ÆÄÀÏÀ» »èÁ¦ÇÒ °ÍÀÌ´Ù. ÀÌ°ÍÀº
Ÿ°Ù ÆÄÀÏÀÇ ¸¶Áö¸·-º¯°æ ½Ã°£ÀÌ make
°¡ ¸ÇóÀ½ ±×°ÍÀ» °Ë»çÇÑ ÀÌÈÄ
º¯°æµÇ¾ú´Ù¸é ÀÌ·ç¾îÁø´Ù.
Ÿ°ÙÀ» »èÁ¦ÇÏ´Â ¸ñÀûÀº make
°¡ ´ÙÀ½¿¡ ½ÇÇàµÉ ¶§ È®½ÇÈ÷
Ãâ¹ß¼±À¸·ÎºÎÅÍ ´Ù½Ã ¸¸µé¾îÁöµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¿Ö ÀÌ·±°¡? ¿©·¯ºÐÀÌ
ÄÄÆÄÀÏ·¯°¡ ½ÇÇàÇÏ°í ÀÖÀ» ¶§ Ctrl-c¸¦ ÀÔ·ÂÇß´Ù°í ±×¸®°í ¿ÀºêÁ§Æ®
ÆÄÀÏ `foo.o'À» ÀÛ¼ºÇϱ⠽ÃÀÛÇß´Ù°í °¡Á¤ÇÏÀÚ. Ctrl-c´Â
ÄÄÆÄÀÏ·¯¸¦ ųÇÏ°Ô µÇ¾î ¸¶Áö¸·-º¯°æ ½Ã°£ÀÌ ¼Ò½º ÆÄÀÏ `foo.c'º¸´Ù
´õ »õ·Î¿î ºÒ¿ÏÀüÇÑ ÆÄÀÏÀ» ¸¸µé°Ô µÈ´Ù. ±×·¯³ª make
µµ ¶ÇÇÑ
Ctrl-c ½Ã±×³ÎÀ» ¹Þ°Ô µÇ°í ÀÌ ºÒ¿ÏÀüÇÑ ÆÄÀÏÀ» »èÁ¦ÇÑ´Ù.
make
°¡ ÀÌ°ÍÀ» ÇÏÁö ¾Ê´Â´Ù¸é ´ÙÀ½ make
È£ÃâÀº
`foo.o'ÀÌ °»½ÅÀÌ ÇÊ¿äÇÑ ÆÄÀÏÀÌ ¾Æ´Ï¶ó°í »ý°¢ÇÒ °ÍÀÌ´Ù---±×·¡¼
ÀÌ°ÍÀÌ ¹ÝÂë ºÎÁ·ÇÑ ¿ÀºêÁ§Æ® ÆÄÀÏÀ» ¸µÅ©ÇÏ·Á°í ÇÒ ¶§ ¸µÄ¿´Â ÀÌ»óÇÑ ¿¡·¯
¸Þ½ÃÁö¸¦ ³»°Ô µÉ °ÍÀÌ´Ù.
¿©·¯ºÐÀº ¾î¶² Ÿ°Ù¿¡ ÀÇÁ¸Çϴ Ư¼ö Ÿ°Ù .PRECIOUS
À»
¸¸µëÀ¸·Î½á ÀÌ·± ½ÄÀÇ Å¸°Ù ÆÄÀÏÀÇ »èÁ¦¸¦ ¸·À» ¼ö ÀÖ´Ù. Ÿ°ÙÀ» ´Ù½Ã
¸¸µé±â Àü¿¡ make
´Â ±×°ÍÀÌ .PRECIOUS
ÀÇ Á¾¼Ó¹°µé Áß¿¡
ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ °Ë»çÇÏ°í ±×°Í¿¡ ÀÇÇؼ ±× Ÿ°ÙÀÌ ½Ã±×³ÎÀÌ ¹ß»ýµÇ¾úÀ»
¶§ »èÁ¦µÇ¾î¾ß ÇÏ´ÂÁö ±×·¯Áö ¾Ê´ÂÁö¸¦ °áÁ¤ÇÑ´Ù. ¿©·¯ºÐÀÌ ÀÌ·¸°Ô ÇØ¾ß ÇÒ
¸î°¡Áö ÀÌÀ¯´Â ´ÙÀ½°ú °°´Ù. Ÿ°ÙÀº ¾î¶² ¼Ò±Ô¸ð Çü½ÄÀ¸·Î °»½ÅµÈ´Ù. ¶Ç´Â
Ÿ°ÙÀº º¯°æ-½Ã°£À» ±â·ÏÇϱâ À§Çؼ¸¸ Á¸ÀçÇÑ´Ù(±×°ÍÀÇ ³»¿ëÀº »ó°üÀÌ
¾ø´Ù). ¶Ç´Â Ÿ°ÙÀº ´Ù¸¥ Á¾·ùÀÇ ¹®Á¦¸¦ ¸·±â À§Çؼ ¸ðµç ½ÃÁ¡¿¡
Á¸ÀçÇؾ߸¸ ÇÑ´Ù.
make
ÀÇ Àç±ÍÀû »ç¿ë(Recursive Use of make
)
make
ÀÇ Àç±ÍÀû »ç¿ëÀ̶õ make
¸¦ makefile¿¡¼ ÇϳªÀÇ ¸í·ÉÀ¸·Î
»ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ Å×Å©´ÐÀº ¿©·¯ºÐÀÌ ´õ Å« ½Ã½ºÅÛÀ» ¸¸µå´Â
¿©·¯ ¼ºê½Ã½ºÅÛµéÀ» À§ÇÑ ¿©·¯ ºÐ¸®µÈ makefileµéÀ» ¿øÇÒ ¶§ À¯¿ëÇÏ´Ù.
¿¹¸¦ µé¾î¼ ¿©·¯ºÐÀÌ ÀÚ½ÅÀÇ makefileÀ» °¡Áö°í ÀÖ´Â `subdir'
¼ºêµð·ºÅ丮¸¦ °¡Áö°í ÀÖ°í »óÀ§ µð·ºÅ丮ÀÇ makefileÀ» »ç¿ëÇؼ ±× ¼ºê
µð·ºÅ丮¿¡ ´ëÇؼ make
¸¦ ½ÇÇàÇÏ°íÀÚ ÇÑ´Ù°í °¡Á¤ÇÏÀÚ. ¿©·¯ºÐÀº
´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇؼ ÀÌ·¸°Ô ÇÒ ¼ö ÀÖ´Ù:
subsystem: cd subdir && $(MAKE)
¶Ç´Â µ¿ÀÏÇÏ°Ô ´ÙÀ½°ú °°ÀÌ ÇÒ ¼öµµ ÀÖ´Ù (see section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options)):
subsystem: $(MAKE) -C subdir
¿©·¯ºÐÀº ÀÌ ¿¹Á¦¸¦ ±×´ë·Î º¹»çÇؼ Àç±ÍÀû make
¸í·ÉÀ» ÀÛ¼ºÇÒ
¼öµµ ÀÖÁö¸¸ ±×µéÀÌ ÀÛµ¿ÇÏ´Â ¹æ½Ä°ú ÀÌÀ¯, ±×¸®°í ¼ºê-make
°¡
Åé-·¹º§ make
¿¡ ¾î¶»°Ô ¿¬°áµÇ¾î Àִ°¡¿¡ ´ëÇؼ ¾Ë¾Æ¾ß ÇÒ °ÍµéÀÌ
¸¹ÀÌ ÀÖ´Ù.
¿©·¯ºÐÀÇ ÆíÀǸ¦ À§Çؼ GNU make
´Â º¯¼ö CURDIR
¸¦ ÇöÀç
ÀÛ¾÷ µð·ºÅ丮ÀÇ °æ·Î¸íÀ¸·Î ¼³Á¤ÇÑ´Ù. -C
°¡ ¾²¿´´Ù¸é ¿À¸®Áö³Î
µð·ºÅ丮°¡ ¾Æ´Ï¶ó »õ·Î¿î µð·ºÅ丮ÀÇ °æ·Î¸¦ Æ÷ÇÔÇÒ °ÍÀÌ´Ù.
±×°ªÀº(CURDIR
ÀÇ °ª ?)
ÀÌ°ÍÀÌ makefile¾È¿¡¼ ¼³Á¤µÇ¾ú´Ù¸é °¡Áú ¿ì¼±¼øÀ§¿Í µ¿ÀÏÇÏ´Ù(µðÆúÆ®·Î
ȯ°æ º¯¼ö CURDIR
´Â ÀÌ °ªÀ» ¿À¹ö¶óÀ̵åÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù). ÀÌ
º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °ÍÀº make
ÀÇ ÀÛµ¿¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù.
MAKE
º¯¼ö°¡ ÀÛµ¿ÇÏ´Â ¹æ¹ý(How the MAKE
Variable Works)
Àç±ÍÀûÀÎ make
¸í·ÉµéÀº, ´ÙÀ½¿¡¼ º¼ ¼ö ÀÖµíÀÌ `make' ¸í·É
À̸§À»
¸í½ÃÀûÀ¸·Î ¾²Áö ¾Ê°í, Ç×»ó MAKE
º¯¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.
subsystem: cd subdir && $(MAKE)
ÀÌ º¯¼öÀÇ °ªÀº make
°¡ È£ÃâµÇ´Â ÆÄÀÏ À̸§ÀÌ´Ù. ÀÌ ÆÄÀÏ À̸§ÀÌ
`/bin/make'À̶ó¸é ½ÇÇàµÉ ¸í·ÉÀº `cd subdir && /bin/make'ÀÏ
°ÍÀÌ´Ù. Åé-·¹º§ makefileÀ» ½ÇÇàÇϱâ À§Çؼ Ư¼öÇÑ ¹öÀüÀÇ
make
¸¦
»ç¿ëÇÑ´Ù¸é µ¿ÀÏÇÑ Æ¯¼öÇÑ ¹öÀüÀÌ Àç±ÍÀû È£Ãâ¿¡µµ »ç¿ëµÉ °ÍÀÌ´Ù.
Ư¼öÇÑ ±â´ÉÀ¸·Î½á, MAKE
¸¦ ±ÔÄ¢ÀÇ ¸í·É¿¡¼ »ç¿ëÇÑ´Ù´Â °ÍÀº
`-t' (`--touch'), `-n'
(`--just-print'), ¶Ç´Â `-q' (`--question')¿É¼ÇÀÇ
È¿°ú¸¦ º¯°æÇÑ´Ù. MAKE
º¯¼ö¸¦
»ç¿ëÇÏ´Â °ÍÀº ¸í·É ¶óÀÎÀÇ Ã³À½¿¡ `+'¹®ÀÚ¸¦ »ç¿ëÇÏ´Â °Í°ú µ¿ÀÏÇÑ
È¿°ú°¡ ÀÖ´Ù.See section ¸í·É ½ÇÇà ´ë½Å¿¡...(Instead of Executing the Commands).
À§ÀÇ ¿¹Á¦¿¡¼ `make -t' ¶ó´Â ¸í·ÉÀ» »ý°¢Çغ¸ÀÚ. (`-t'¿É¼ÇÀº ½ÇÁ¦ ¾Æ¹«·± ¸í·Éµµ ½ÇÇàÇÏÁö ¾Ê°í¼µµ ¸ñÀû¹°À» °¡Àå ÃÖ±ÙÀÇ Å¸ÀÓ ½ºÅÆÇÁ¸¦ °¡Áö´Â °ÍÀ¸·Î ¸¶Å·ÇÑ´Ù; section ¸í·É ½ÇÇà ´ë½Å¿¡...(Instead of Executing the Commands).) `-t'ÀÇ ÀϹÝÀûÀÎ Á¤ÀǸ¦ µû¶ó¼, ¿¹Á¦¿¡¼ `make -t' ¸í·ÉÀº `subsystem'¶ó´Â À̸§À» °¡Áø ÆÄÀϤ·¸£ Çϳª »ý¼ºÇÏ°í ¾Æ¹«°Íµµ ¾ÈÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ ½ÇÁ¦·Î ¿øÇÏ´Â °ÍÀº `cd subdir &&' make -t ÀÌ´Ù; ±×·¯³ª ÀÌ°ÍÀº ÇöÁ¸ÇÏ´Â ¸í·ÉÀ» ¿ä±¸ÇÑ´Ù. ±×·¡¼ `-t'°¡ ¸í·ÉÀ» ½ÇÇàÇÏÁö ¸»¶ó°í ÇÑ °ÍÀÌ´Ù.
Ư¼öÇÑ ±â´ÉÀÌ ÀÌ°ÍÀ» ¿©·¯ºÐÀÌ ¿øÇÏ´Â °ÍÀ¸·Î ¸¸µç´Ù: ¾î¶² ±ÔÄ¢ÀÇ ¸í·ÉÀÌ
º¯¼ö MAKE
À» ´ã°í ÀÖÀ» ¶§¸¶´Ù Ç÷¡±× `-t', `-n' ±×¸®°í
`-q'´Â ±× ¶óÀÎÀ» Àû¿ëÇÏÁö ¾Ê´Â´Ù. MAKE
¸¦ ´ã°í ÀÖ´Â ¸í·É
¶óÀεéÀº ´ëºÎºÐÀÇ ¸í·ÉÀÌ ½ÇÇàÇÏÁö ¾Êµµ·Ï ÇÏ´Â Ç÷¡±×ÀÇ Á¸Àç¿¡µµ
ºÒ±¸ÇÏ°í º¸Åë ½ÇÇàµÈ´Ù. ÀϹÝÀûÀÎ MAKEFLAGS
¸ÞÄ«´ÏÁòÀº
Ç÷¡±×µéÀ» ¼ºê-make
(see section ¼ºê-make
¿¡ ´ëÇÑ Åë½Å ¿É¼Ç(Communicating Options to a Sub-make
)) ¿¡°Ô Àü´ÞÇÏ¿©, ÆÄÀÏÀ» ÅÍÄ¡Ç϶ó´Â ¶Ç´Â ¸í·ÉµéÀ»
ÀμâÇ϶ó´Â ¿©·¯ºÐÀÇ ¿ä±¸°¡ ¼ºê½Ã½ºÅÛ¿¡ º¸±ÞµÈ´Ù.
make
¿¡ ´ëÇÑ Åë½Å º¯¼ö(Communicating Variables to a Sub-make
)
Åé-·¹º§ make
ÀÇ º¯¼ö °ªµéÀº ¸í½ÃÀû ¿ä±¸¿¡ ÀÇÇؼ ȯ°æÀ» ÅëÇؼ
¼ºê-make
·Î Àü´ÞµÉ ¼ö ÀÖ´Ù. ÀÌ·± º¯¼öµéÀº ¼ºê-make
¿¡¼
µðÆúÆ®·Î Á¤ÀǵÇÁö¸¸ ¼ºê-make
makefiel¿¡ ÀÇÇؼ »ç¿ëµÇ´Â,
makefile¿¡¼ ÁöÁ¤µÈ °ÍÀ», `-e' ½ºÀ§Ä¡ (see section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options))¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é, ¿À¹ö¶óÀ̵åÇÏÁö ¾Ê´Â´Ù.
º¯¼ö¸¦ Àü´ÞÇØÁÖ±â À§Çؼ ¶Ç´Â ÀͽºÆ÷Æ®(export)Çϱâ À§Çؼ
make
´Â °¢ ¸í·ÉÀ» ½ÇÇàÇϱâ À§Çؼ ȯ°æ¿¡´Ù ±× º¯¼ö¿Í °ªÀ»
´õÇÑ´Ù. ±×·¯¸é ¼ºê-make
´Â ȯ°æÀ» »ç¿ëÇؼ ±×ÀÇ º¯¼ö°ªµéÀÇ
Å×À̺íÀ» ÃʱâÈÇÑ´Ù. See section ȯ°æÀ¸·ÎºÎÅÍÀÇ º¯¼öµé(Variables from the Environment).
¸í½ÃÀûÀÎ ¿ä±¸¸¦ Á¦¿ÜÇÏ°í, make
´Â ÀÌ°ÍÀÌ È¯°æ¿¡¼ Ãʱ⿡
Á¤Àǵǰųª ¸í·É ¶óÀο¡¼ ¼³Á¤µÈ °æ¿ì¿¡¸¸, ±×¸®°í ±×°ÍÀÇ À̸§ÀÌ ¿µ¹®ÀÚ,
¼ýÀÚ ±×¸®°í ¹ØÁÙ·Î ÀÌ·ç¾îÁ³´Ù¸é, ÀͽºÆ÷Æ®ÇÑ´Ù. ¾î¶² ½©µéÀº ¿µ¹®ÀÚ, ¼ýÀÚ,
±×¸®°í ¹ØÁÙÀÌ ¾Æ´Ñ ¹®ÀÚ·Î ÀÌ·ç¾îÁø ȯ°æº¯¼ö À̸§µéÀ» ´ëóÇÏÁö ¸øÇÑ´Ù.
Ư¼ö º¯¼ö SHELL
°ú MAKEFLAGS
µéÀº Ç×»ó ÀͽºÆ÷Æ®µÈ´Ù(±×°ÍµéÀ»
unexportÇÏÁö ¾Ê¾Ò´Ù¸é). MAKEFILES
´Â ±×°ÍÀ» ¾î¶² °ÍÀ¸·Î ¼³Á¤Çϸé
ÀͽºÆ÷Æ®µÈ´Ù.
make
´Â ¸í·É ¶óÀο¡¼ Á¤ÀÇµÈ º¯¼ö °ªµéÀ», MAKEFLAGS
º¯¼ö¿¡ ±×µéÀ» ³Ö¾î¼, ÀÚµ¿À¸·Î ¾Æ·¡·Î Àü´ÞÇÑ´Ù.
Àü´ÞÇÑ´Ù.
´ÙÀ½ ¼½¼ÇÀ» º¸ÀÚ.
º¯¼öµéÀÌ make
¿¡ ÀÇÇؼ µðÆúÆ®·Î »ý¼ºµÇ¾ú´Ù¸é À̵éÀº º¸Åë ¾Æ·¡·Î
Àü´ÞµÇÁö ¾Ê´Â´Ù (see section ¹¬½ÃÀû ±ÔÄ¢¿¡ ÀÇÇØ »ç¿ëµÇ´Â º¯¼ö(Variables Used by Implicit Rules)). ¼ºê-make
´Â ÀÚ½ÅÀ» À§Çؼ À̵éÀ» Á¤ÀÇÇÒ
°ÍÀÌ´Ù.
¿©·¯ºÐÀÌ Æ¯Á¤ º¯¼ö°¡ ¼ºê-make
¿¡ ÀͽºÆ÷Æ®µÇ±â¸¦ ¿øÇÑ´Ù¸é ´ÙÀ½°ú
°°ÀÌ export
Áö½Ã¾î¸¦ »ç¿ëÇ϶ó:
export variable ...
¾î¶² º¯¼ö°¡ ÀͽºÆ÷Æ®µÇ´Â °ÍÀ» ±ÝÁöÇÏ°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ
unexport
µð·ºÆ¼ºê¸¦ »ç¿ëÇÑ´Ù:
unexport variable ...
Æí¸®ÇÏ°Ô ¿©·¯ºÐÀº ¾î¶² º¯¼ö¸¦ Á¤ÀÇÇÏ¸é¼ µ¿½Ã¿¡ ±×°ÍÀ» ÀͽºÆ÷Æ®ÇÒ ¼ö ÀÖ´Ù:
export variable = value
ÀÌ°ÍÀº ´ÙÀ½°ú °°Àº °á°ú¸¦ °¡Áø´Ù:
variable = value export variable
±×¸®°í
export variable := value
´Â ´ÙÀ½°ú °°Àº °á°ú¸¦ °¡Áø´Ù:
variable := value export variable
ºñ½ÁÇÏ°Ô
export variable += value
´Â ´ÙÀ½°ú µ¿ÀÏÇÏ´Ù:
variable += value export variable
See section º¯¼ö¿¡ ÅؽºÆ®¸¦ µ¡ºÙÀ̱â(Appending More Text to Variables).
¿©·¯ºÐÀº export
¿Í unexport
Áö½Ã¾îµéÀÌ ±×µéÀÌ ½©¿¡¼
ÀÛµ¿ÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î make
¿¡¼ ÀÛµ¿ÇÑ´Ù´Â °ÍÀ» ¾Ë¾ÒÀ»
¼öµµ ÀÖ´Ù.
¸ðµç º¯¼öµéÀÌ µðÆúÆ®·Î ÀͽºÆ÷Æ®µÇ´Â °ÍÀ» ¿øÇÑ´Ù¸é ¿©·¯ºÐÀº
export
À» ´ÙÀ½°ú °°ÀÌ È¦·Î ¾²¸é µÈ´Ù:
export
ÀÌ°ÍÀº make
¿¡°Ô export
³ª unexport
Áö½Ã¾î¿¡¼
¸í½ÃÀûÀ¸·Î ¾ð±ÞµÇÁö ¾ÊÀº º¯¼öµéÀº ¸ðµÎ ÀͽºÆ÷Æ®µÇ¾î¾ß ÇÑ´Ù´Â °ÍÀ»
¸»ÇÑ´Ù. unexport
Áö½Ã¾î¿¡¼ ÁÖ¾îÁø ÀÓÀÇÀÇ º¯¼ö´Â ¿©ÀüÈ÷
ÀͽºÆ÷Æ®µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ È¦·Î export
¸¸
»ç¿ëÇÏ¿© º¯¼öµéÀ» µðÆúÆ®·Î ÀͽºÆ÷Æ®ÇÑ´Ù¸é ±×°ÍÀÇ À̸§ÀÌ ¾ËÆĺª°ú ¼ýÀÚ
±×¸®°í ¹ØÁÙÀÌ ¾Æ´Ñ °ÍÀ» ´ã°í ÀÖÀ» ¶§, ¸í½ÃÀûÀ¸·Î export
Áö½Ã¾î¿¡¼ ¾ð±ÞÇÏÁö ¾Ê´Â ÇÑ, ÀͽºÆ÷Æ®µÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
export
Áö½Ã¾î¸¦ Ȧ·Î ½á¼ ¾ò¾î³½ ÇൿÀº GNU make
ÀÇ ´õ
¿À·¡µÈ ¹öÀüµé¿¡¼ µðÆúÆ®À̾ú´Ù. ¿©·¯ºÐÀÇ makefileµéÀÌ ÀÌ·± Çൿ¿¡
ÀÇÁ¸ÇÏ°í ¿©·¯ºÐÀÌ make
ÀÇ ¿¹Àü ¹öÀüµé°úÀÇ È£È¯¼ºÀ» ¾ò°íÀÚ ÇÑ´Ù¸é
¿©·ÁºÐÀº Ư¼öÇÑ Å¸°Ù .EXPORT_ALL_VARIABLES
¸¦ export
Áö½Ã¾î¸¦ »ç¿ëÇÏ´Â ´ë½Å ¾µ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¿À·¡µÈ make
µé¿¡
ÀÇÇؼ ¹«½ÃµÉ °ÍÀÌ´Ù. ¹Ý¸é¿¡ export
Áö½Ã¾î´Â ¹®¹ý ¿¡·¯¸¦ À¯¹ßÇÒ
°ÍÀÌ´Ù.
ºñ½ÁÇÏ°Ô ¿©·¯ºÐÀº unexport
¸¦ Ȧ·Î ½á¼ make
°¡ µðÆúÆ®·Î,
º¯¼öµéÀ» ¸ðµÎ ÀͽºÆ÷Æ®ÇÏÁö ¾Êµµ·Ï Áö½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº µðÆúÆ®
ÇൿÀ̱⠶§¹®¿¡ export
°¡ Ȧ·Î ÀÌÀü¿¡(¾Æ¸¶ includeµÈ
makefile¿¡¼) »ç¿ëµÇ¾úÀ» ¶§¿¡¸¸, ÀÌ°ÍÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖÀ»
°ÍÀÌ´Ù. export
°ú unexport
¸¦ µÑ´Ù Ȧ·Î ½á¼ ¾î¶² ¸í·Éµé¿¡
´ëÇؼ º¯¼öµéÀÌ ÀͽºÆ÷Æ®µÇ°í ´Ù¸¥ °Íµé¿¡ ´ëÇؼ´Â ÀͽºÆ÷Æ®µÇÁö ¾Êµµ·Ï
ÇÒ ¼ö ¾ø´Ù. Ȧ·Î »ç¿ëµÈ export
³ª unexport
Áö½Ã¾î
Áß¿¡¼ ¸¶Áö¸·À¸·Î »ç¿ëµÈ °Í¸¸ÀÌ make
ÀÇ Àüü ½ÇÇà Çൿ¾ç½ÄÀ»
°áÁ¤ÇÑ´Ù.
Ư¼öÇÑ ±â´ÉÀ¸·Î½á, º¯¼ö MAKELEVEL
´Â, ÀÌ°ÍÀÌ À·¹º§¿¡¼ ¾Æ·¡·¹º§·Î
Àü´ÞµÉ ¶§, º¯°æµÈ´Ù. ÀÌ º¯¼öÀÇ °ªÀº ·¹º§ÀÇ ±íÀ̸¦ ½ÊÁø¼ö·Î Ç¥ÇöÇÑ
¹®ÀÚ¿ÀÌ´Ù. ±× °ªÀº Åé-·¹º§ make
¿¡ ´ëÇؼ `0'ÀÌ´Ù;
¼ºê-make
¿¡ ´ëÇؼ´Â `1'ÀÌ°í, ¼ºê-¼ºê-make
¿¡
´ëÇؼ´Â `2'ÀÌ´Ù. ÀÌ·± ½ÄÀ¸·Î °è¼ÓµÈ´Ù. Áõ°¡´Â make
°¡ ¾î¶²
¸í·É¿¡ ´ëÇÑ È¯°æÀ» ¼Â¾÷ÇÒ ¶§ ¹ß»ýÇÑ´Ù.
MAKELEVEL
ÀÇ ÁÖ¿ä »ç¿ëÀº Á¶°Ç Áö½Ã¾î (see section MakefileÀÇ Á¶°Ç ºÎºÐ(Conditional Parts of Makefiles)) ¾È¿¡¼ ±×°ÍÀ» Å×½ºÆ®ÇÒ ¶§ÀÌ´Ù;
Àç±ÍÀûÀ¸·Î ½ÇÇàµÈ´Ù¸é ÇÑ°¡Áö ¹æ½ÄÀ¸·Î ÀÛµ¿ÇÏ°í Á÷Á¢ ½ÇÇàÇÑ´Ù¸é ´Ù¸¥
¹æ½ÄÀ¸·Î ÀÛµ¿ÇÏ´Â makefileÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
º¯¼ö MAKEFILES
¸¦ »ç¿ëÇؼ ¸ðµç ¼ºê-make
¸í·ÉµéÀÌ Ãß°¡ÀÇ
makefileµéÀ» »ç¿ëÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. MAKEFILES
ÀÇ °ªÀº °ø¹éÀ¸·Î
ºÐ¸®µÈ ÆÄÀÏ À̸§µéÀÇ ¸®½ºÆ®ÀÌ´Ù. ÀÌ º¯¼ö´Â, ¿ÜºÎ-·¹º§ makefile¾È¿¡¼
Á¤ÀǵǾú´Ù¸é, ȯ°æÀ» ÅëÇؼ ¾Æ·¡·Î Àü´ÞµÈ´Ù; ±×¸®°í ³ª¼ ÀÌ°ÍÀº
¼ºê-make
¿¡ ´ëÇؼ, º¸ÅëÀÇ ¶Ç´Â ÁöÁ¤µÈ makefileµéÀ» Àеµ·Ï,
¿ÜºÎ makefileµéÀÇ ¸®½ºÆ®·Î Ãë±ÞµÈ´Ù. See section MAKEFILES
º¯¼ö(The Variable MAKEFILES
).
make
¿¡ ´ëÇÑ Åë½Å ¿É¼Ç(Communicating Options to a Sub-make
)
`-s'¿Í `-k' °°Àº Ç÷¡±×µéÀº ÀÚµ¿À¸·Î º¯¼ö MAKEFLAGS
¸¦
ÅëÇؼ ¼ºê-make
¿¡°Ô Àü´ÞµÈ´Ù. ÀÌ º¯¼ö´Â make
¿¡ ÀÇÇؼ
make
°¡ ¹Þ´Â Ç÷¡±× ¹®ÀÚµéÀ» ´ã°í ÀÖµµ·Ï ÀÚµ¿À¸·Î ¼Â¾÷µÈ´Ù. ±×·¡¼
`make -ks'¶ó°í Çϸé MAKEFLAGS
´Â °ª `ks'¸¦ °¡Áø´Ù.
°á°úÀûÀ¸·Î ¸ðµç ¼ºê-make
´Â ±× ȯ°æ¾È¿¡¼ MAKEFLAGS
¿¡ ´ëÇÑ
°ªÀ» °¡Áø´Ù. ÀÌ¿¡ ´ëÇÑ ´ëÀÀÀ¸·Î ±×°ÍÀº ±× °ªÀ¸·ÎºÎÅÍ Ç÷¡±×µéÀ» ÃëÇؼ
±×µéÀÌ ¸Å°³º¯¼ö·Î½á Àü´ÞµÈ °Íó·³ À̵éÀ» ó¸®ÇÑ´Ù.
See section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options).
¸í·ÉÇà¿¡¼ Á¤ÀÇµÈ º¯¼öµé°ú ºñ½ÁÇÏ°Ô MAKEFLAGS
¸¦ ÅëÇؼ
¼ºê-make
¿¡°Ô Àü´ÞµÈ´Ù. `='¸¦ ´ã°í ÀÖ´Â MAKEFLAGS
ÀÇ
°ªÀÇ ¿öµåµéÀ» make
´Â ±×µéÀÌ ¸í·ÉÇà¿¡ ³ªÅ¸³ °Íó·³, º¯¼ö Á¤ÀÇ·Î
Ãë±ÞÇÑ´Ù.
See section º¯¼ö °ãÃľ²±â(Overriding Variables).
`-C', `-f', `-o', ±×¸®°í `-W' ¿É¼ÇµéÀº
MAKEFLAGS
¿¡ µé¾î°¡Áö ¾Ê´Â´Ù; ÀÌµé ¿É¼ÇµéÀº ¾Æ·¡·Î Àü´ÞµÇÁö
¾Ê´Â´Ù.
`-j' ¿É¼ÇÀº Ư¼öÇÑ °æ¿ìÀÌ´Ù (see section Æз¯·² ½ÇÇà(Parallel Execution)). ÀÌ°ÍÀ» ¾î¶² ¼ýÀÚ°ªÀ¸·Î ¼³Á¤Çϸé `-j 1'°¡ Ç×»ó
ÁöÁ¤ÇÑ °ª ´ë½Å¿¡ MAKEFLAGS
¿¡ µé¾î°£´Ù. ÀÌ°ÍÀº ¿Ö³Ä¸é,
`-j' ¿É¼ÇÀÌ ¼ºê-make
µé¿¡ µé¾î°£´Ù¸é ¿ä±¸ÇÑ °Íº¸´Ù ´õ
¸¹Àº ÀÛ¾÷µéÀ» º´·Ä·Î ½ÇÇàÇϵµ·Ï ÇÒ °ÍÀ̱⠶§¹®ÀÌ´Ù. `-j'¸¦ ¼ýÀÚ
¸Å°³º¯¼ö ¾øÀÌ ÁÖ¸é ÀÌ°ÍÀº ¾Æ·¡·Î Àü´ÞµÈ´Ù. ¿Ö³Ä¸é ´Ù¼ö ¹«ÇÑ(multiple
infinities)¶õ 1°ª¿¡ Áö³ªÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
´Ù¸¥ Ç÷¡±×µéÀº ¾Æ·¡·Î Àü´ÞÇÏ°íÀÚ ÇÏÁö ¾Ê´Â´Ù¸é ¹Ýµå½Ã ´ÙÀ½°ú °°ÀÌ
MAKEFLAGS
ÀÇ °ªÀ» º¯°æÇØ¾ß ÇÑ´Ù:
subsystem: cd subdir && $(MAKE) MAKEFLAGS=
¸í·É ¶óÀÎ º¯¼ö Á¤ÀǵéÀº ½ÇÁ¦·Î MAKEOVERRIDES
¶ó´Â º¯¼ö¿¡ ³ªÅ¸³ª°í
MAKEFLAGS
´Â ÀÌ º¯¼ö¿¡ ´ëÇÑ ÂüÁ¶¸¦ ´ã°í ÀÖ´Ù. Ç÷¡±×µéÀ»
Á¤»óÀûÀ¸·Î ¾Æ·¡·Î Àü´ÞÇÏ°íÀÚ ÇÏÁö¸¸ ¸í·ÉÇà º¯¼ö Á¤ÀǵéÀº ¾Æ·¡·Î
Àü´ÞÇÏ°íÀÚ ÇÏÁö ¾Ê´Â´Ù¸é ´ÙÀ½°ú °°ÀÌ MAKEOVERRIDES
¸¦ ºó °ÍÀ¸·Î
¸®¼ÂÇÒ ¼ö ÀÖ´Ù:
MAKEOVERRIDES =
ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ Ç×»ó À¯¿ëÇÑ °ÍÀº ¾Æ´Ï´Ù. ±×·¯³ª ¾î¶² ½Ã½ºÅÛµéÀº ȯ°æÀÇ
Å©±â°¡ ÀÛ°Ô Á¦ÇѵǾî ÀÖÀ» ¼ö ÀÖ°í ¸¹Àº Á¤º¸µéÀ» MAKEFLAGS
ÀÇ
°ªÀ¸·Î ³Ö´Â °ÍÀº ÀÌ Á¦ÇÑÀ» ³ÑÀ»¼öµµ ÀÖ´Ù. `Arg list too long'¿Í
°°Àº ¿¡·¯ ¸Þ½ÃÁö¸¦ º»´Ù¸é ÀÌ°ÍÀÌ ±×·± ¹®Á¦ÀÌ´Ù.
(POSIX.2¿ÍÀÇ ¾ö°ÝÇÑ È£È¯À» À§Çؼ MAKEOVERRIDES
¸¦ º¯°æÇÏ´Â °ÍÀº,
Ư¼ö Ÿ°Ù `.POSIX'ÀÌ makefile¿¡ ÀÖ´Ù¸é, MAKEFLAGS
¿¡´Â
¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù. ¿©·¯ºÐÀº ¾Æ¸¶µµ ÀÌ°Í¿¡ ´ëÇؼ ½Å°æ¾²Áö ¾ÊÀ»
°ÍÀÌ´Ù.)
ºñ½ÁÇÑ º¯¼ö MFLAGS
µµ ¿ª»çÀûÀΠȣȯÀ» À§Çؼ Á¸ÀçÇÑ´Ù. ÀÌ°ÍÀº
¸í·ÉÇà º¯¼ö Á¤ÀǵéÀ» ´ã°í ÀÖÁö ¾Ê´Ù´Â Á¡°ú, ÀÌ°ÍÀÌ ºó°ÍÀÌ ¾Æ´Ï¶ó¸é
Ç×»ó ½ÃÀÛÇÑ´Ù(MAKEFLAGS
´Â ÀÌ°ÍÀÌ such as
`--warn-undefined-variables'°ú °°Àº ´ÜÀÏ-¹®ÀÚ ¹öÀüÀÌ ¾Æ´Ñ
¿É¼ÇÀ¸·Î ½ÃÀÛÇÒ ¶§¿¡¸¸ ÇÏÀÌÇÂÀ¸·Î ½ÃÀÛÇÑ´Ù)´Â Á¡À» Á¦¿ÜÇÏ°í
MAKEFLAGS
°ú µ¿ÀÏÇÑ °ªÀ» °¡Áø´Ù. MFLAGS
´Â ÀüÅëÀûÀ¸·Î
Àç±ÍÀûÀÎ make
¸í·É¾È¿¡¼ ´ÙÀ½°ú °°ÀÌ ¸í½ÃÀûÀ¸·Î »ç¿ëµÈ´Ù:
subsystem: cd subdir && $(MAKE) $(MFLAGS)
±×·¯³ª ÀÌÁ¦ MAKEFLAGS
´Â ÀÌ·± »ç¿ëÀ» ¿©ºÐÀÇ °ÍÀ¸·Î ¸¸µé¾ú´Ù.
makefileµéÀÌ ¿À·¡µÈ make
ÇÁ·Î±×·¥µé¿¡ ´ëÇؼ ȣȯÀÌ µÇµµ·Ï Çϱ⸦
¿øÇÑ´Ù¸é, ÀÌ·± Å×Å©´ÐÀ» »ç¿ëÇÏÀÚ; ÀÌ°ÍÀº Á» ´õ Çö´ëÀûÀÎ make
¹öÀüµé¿¡¼µµ Àß ÀÛµ¿ÇÒ °ÍÀÌ´Ù.
MAKEFLAGS
º¯¼ö´Â, make
¸¦ ½ÇÇàÇÒ ¶§¸¶´Ù ¼³Á¤µÇ´Â, `-k'
(see section ¿É¼ÇµéÀÇ ¿ä¾à(Summary of Options))¿Í °°Àº ¾î¶² ¿É¼ÇµéÀ»
°¡Áö±â¸¦ ¿øÇÑ´Ù¸é À¯¿ëÇÒ ¼ö ÀÖ´Ù. makefile¾È¿¡¼, ÀÌ makefile¿¡ ´ëÇؼ
¿µÇâÀ» ¹ÌÃÄ¾ß ÇÏ´Â Ãß°¡ÀÇ ÇÁ·¡±×µéÀ» ÁöÁ¤Çϱâ À§Çؼ, MAKEFLAGS
¸¦
¼³Á¤ÇÒ ¼öµµ ÀÖ´Ù. (MFLAGS
´Â ÀÌ·±½ÄÀ¸·Î »ç¿ëµÉ ¼ö ¾ø´Ù. ÀÌ º¯¼ö´Â
ȣȯ¼ºÀ» À§Çؼ¸¸ ¼³Á¤µÈ´Ù; make
´Â ¿©·¯ºÐÀÌ ÀÌ°ÍÀ» À§Çؼ
¼³Á¤ÇÑ °ªÀ» ¾î¶²½ÄÀ¸·Îµç Çؼ®ÇÏÁö ¾Ê´Â´Ù.)
make
°¡ MAKEFLAGS
ÀÇ °ªÀ» Çؼ®ÇÒ ¶§(ȯ°æÀ̳ª
makefile·ÎºÎÅÍ), ÀÌ°ÍÀº ±× °ªÀÌ ÇÏÀÌÇÂÀ¸·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù¸é,
ÇÏÀÌÇ Çϳª¸¦ ¾Õ¿¡´Ù ¸ÕÀú ´Ü´Ù. ±×¸®°í ³ª¼ ±× °ªÀ» °ø¹éÀ¸·Î ºÐ¸®µÈ
¿öµåµé·Î ÀÚ¸£°í ÀÌµé ¿öµåµéÀÌ ¸í·ÉÇà¿¡¼ ÁÖ¾îÁø ¿É¼ÇµéÀΰÍó·³ ÀÌ·±
¿öµåµéÀ» ÆĽÌÇÑ´Ù(`-C', `-f', `-h', `-o', `-W',
±×¸®°í ±ä-À̸§ ¹öÀüµéÀº ¹«½ÃµÇ´Â °ÍÀº Á¦¿Ü; ±×¸®°í ¹«È¿ÇÑ ¿É¼Ç¿¡
´ëÇؼ ¿¡·¯´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù).
MAKEFLAGS
¸¦ ȯ°æ¿¡ ³Ö´Â´Ù¸é make
ÀÇ Çൿ¿¡ ¸Í·ÄÇÏ°Ô ¿µÇâÀ»
¹ÌÄ¥, make
ÀڽŰú makefileÀÇ ¸ñÀûÀ» ÇØÄ¡´Â ¾î¶² ¿É¼Çµéµµ ³ÖÁö
¾Êµµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î¼ `-t', `-n', ±×¸®°í `-q'
¿É¼ÇµéÀº, ÀÌ·± º¯¼öµé ÁßÀÇ Çϳª¿¡ ³Ö´Â´Ù¸é, À§ÇèÇÑ °á°úµéÀ» ³¾ °ÍÀÌ°í
ºÐ¸íÈ÷ Àû¾îµµ ³î¶ó¿î ¾Æ¸¶µµ ¼ºÁú³»°Ô ¸¸µå´Â °á°úµéÀ» ¾òÀ» °ÍÀÌ´Ù.
Àç±ÍÀû make
È£ÃâÀÇ ¿©·¯ ·¹º§µéÀ» °¡Áø´Ù¸é `-w'³ª
`--print-directory' ¿É¼ÇÀº make
°¡ °¢ µð·ºÅ丮¸¦ ó¸®Çϱâ
½ÃÀÛÇÒ ¶§¿Í make
°¡ ÀÌ°ÍÀÇ Ã³¸®¸¦ Á¾·áÇÒ ¶§ ÀÌ°ÍÀ» º¸¿©ÁÜÀ¸·Î½á Á»
´õ ÀÌÇØÇϱ⠽¬¿î Ãâ·ÂÀ» ÇÑ´Ù. ¿¹¸¦ µé¾î¼ `make -w'°¡
`/u/gnu/make' µð·ºÅ丮¾È¿¡¼ ½ÇÇàµÇ¸é make
´Â ´ÙÀ½°ú °°Àº
ÇüÅÂÀÇ ¶óÀÎÀ» Ãâ·ÂÇÒ °ÍÀÌ´Ù:
make: Entering directory `/u/gnu/make'.
±×¸®°í 󸮰¡ ¿Ï·áµÇ¸é ´Ù¸¥ °ÍÀ» Çϱâ Àü¿¡, ´ÙÀ½°ú °°Àº ¶óÀÎÀ»:
make: Leaving directory `/u/gnu/make'.
Ãâ·ÂÇÑ´Ù.
ÀϹÝÀûÀ¸·Î ÀÌ ¿É¼ÇÀ» ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¿Ö³Ä¸é `make'°¡ ÀÌ°ÍÀ»
´ë½Å Çϱ⠶§¹®ÀÌ´Ù: `-w'´Â `-C' ¿É¼ÇÀ» »ç¿ëÇÒ ¶§, ±×¸®°í
¼ºê-make
µé ¾È¿¡¼ ÀÚµ¿À¸·Î ÄÑÁø´Ù. make
´Â `-s'µµ
¶ÇÇÑ »ç¿ëÇÑ´Ù¸é `-w'¸¦ ÀÚµ¿À¸·Î ÄÑÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº Á¶¿ëÈ÷
Ç϶ó´Â ¿É¼ÇÀÌ´Ù. ¶Ç´Â `--no-print-directory' ¶ó´Â ¿É¼ÇÀ» »ç¿ëÇؼ
¸í½ÃÀûÀ¸·Î ±×·¸°Ô ÇÏ´Â °ÍÀ» ÇÏÁö ¸øÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.
µ¿ÀÏÇÑ ¸í·É ½ÃÄö½º°¡ ´Ù¾çÇÑ Å¸°ÙµéÀ» ¸¸µå´Âµ¥ À¯¿ëÇÒ ¶§, ±×°ÍÀ»
define
¶ó´Â Áö½Ã¾î·Î ¹ÀÎ ½ÃÄö½º(canned sequence)·Î Á¤ÀÇÇÒ ¼ö ÀÖ°í
±× ¹ÀÎ ½ÃÄö½º¸¦ ±×·± Ÿ°Ùµé¿¡ ´ëÇÑ ±ÔÄ¢µé·ÎºÎÅÍ ÂüÁ¶ÇÒ ¼ö ÀÕ´Ù. ¹ÀÎ
½ÃÄö½º´Â ½ÇÁ¦·Î ÇϳªÀÇ º¯¼öÀÌ´Ù. ±×·¡¼ ±× À̸§Àº ´Ù¸¥ º¯¼ö À̸§µé°ú
°°¾Æ¼´Â ¾ÈµÈ´Ù.
´ÙÀ½Àº ¸í·ÉµéÀÇ ¹ÀÎ ½ÃÄö½º Çϳª¸¦ Á¤ÀÇÇÏ´Â ¿¹Á¦ÀÌ´Ù:
define run-yacc yacc $(firstword $^) mv y.tab.c $@ endef
¿©±â¼ run-yacc
´Â Á¤Àǵǰí ÀÖ´Â º¯¼öÀÇ À̸§ÀÌ´Ù; endef
´Â
Á¤ÀÇÀÇ ¸¶Áö¸·À» Ç¥½ÃÇÑ´Ù; ÀÌµé »çÀÌÀÇ ¶óÀεéÀÌ ¸í·ÉµéÀÌ´Ù. define
Áö½Ã¾î´Â ¹ÀÎ ½ÃÄö½º¾È¿¡¼ º¯¼ö ÂüÁ¶¿Í ÇÔ¼ö È£ÃâµéÀ» È®ÀåÇÏÁö ¾Ê´Â´Ù;
`$' ¹®ÀÚµé, °ýÈ£µé, º¯¼ö À̸§µé, ±âŸ µîµî ¸ðµÎ´Â Á¤ÀÇÇÏ°í ÀÖ´Â
º¯¼öÀÇ °ªÀÇ ÀϺΰ¡ µÈ´Ù.
define
ÀÇ ¿ÏÀüÇÑ ¼³¸í¿¡ ´ëÇؼ,
See section Ãà¾î º¯¼ö Á¤ÀÇ(Defining Variables Verbatim).
ÀÌ ¿¹Á¦ÀÇ Ã¹¹ø° ¸í·ÉÀº Yacc¸¦, ÀÌ ¹ÀÎ ½ÃÄö½º¸¦ »ç¿ëÇÏ´Â ±ÔÄ¢ÀÇ Ã¹¹ø° Á¾¼Ó¹°ÀÌ¸é ¹«¾ùÀ̵çÁö ÀÌ°Í¿¡ ´ëÇؼ, ½ÇÇà½ÃŲ´Ù. YaccÀÇ °á°ú ÆÄÀÏÀº Ç×»ó `y.tab.c'¶ó´Â À̸§ÀÌ´Ù. µÎ¹ø° ¸í·ÉÀº ±× ±ÔÄ¢ÀÇ Å¸°Ù ÆÄÀÏ À̸§À¸·Î ÀÌ °á°ú¸¦ µ¤¾î¾´´Ù.
¹ÀÎ ½ÃÄö½º¸¦ »ç¿ëÇÏ·Á¸é ±× º¯¼ö¸¦ ¾î¶² ±ÔÄ¢ÀÇ ¸í·Éµé¾È¿¡ ´ëÀÔÇÏ¸é µÈ´Ù.
ÀÌ°ÍÀ» ´Ù¸¥ º¯¼ö(see section º¯¼ö ÂüÁ¶ÀÇ ±âº»(Basics of Variable References)) µé
ó·³ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. define
¿¡ ÀÇÇؼ Á¤ÀÇµÈ º¯¼öµéÀº Àç±ÍÀûÀ¸·Î
È®ÀåµÇ´Â º¯¼öµéÀ̱⠶§¹®¿¡ define
¾È¿¡¼ ÀÛ¼ºÇÏ´Â ¸ðµç º¯¼ö
ÂüÁ¶µéÀº À̶§ È®ÀåµÈ´Ù. ¿¹¸¦ µé¾î¼:
foo.c : foo.y $(run-yacc)
`foo.y'´Â ÀÌ°ÍÀÌ run-yacc
ÀÇ °ª¾È¿¡ ³ªÅ¸³¯ ¶§, `$^'
º¯¼ö¿¡ ´ëÀԵǸç `foo.c'°¡ `$@'¿¡ ´ëÇؼ ´ëÀԵȴÙ.
ÀÌ°ÍÀº Çö½ÇÀûÀÎ ¿¹Á¦ÀÌÁö¸¸ ÀÌ ±¸Ã¼ÀûÀÎ °ÍÀº ½ÇÁ¦ÀÇ °æ¿ì º°·Î ÇÊ¿ä°¡ ¾ø´Â
°ÍÀÌ´Ù. ¿Ö³Ä¸é make
´Â Æ÷ÇÔµÈ ÆÄÀÏÀ̸§µé¿¡ ±â¹ÝÇؼ ÀÌ·± ¸í·ÉµéÀ»
ÃßÃøÇس»´Â ¹¬½ÃÀû ±ÔÄ¢À» °®°í Àֱ⠶§¹®ÀÌ´Ù (see section ¹¬½ÃÀû ±ÔÄ¢(Using Implicit Rules)).
¸í·É ½ÇÇà¿¡¼ ¹ÀÎ ½ÃÄö½ºÀÌ °¢ ¶óÀÎÀº ±× ¶óÀÎÀÌ ±ÔÄ¢¿¡ Ȧ·Î ³ªÅ¸³
°Íó·³, ¾Õ¿¡ ÅÇ ¹®ÀÚ¸¦ ´Þ°í ÀÖ´Â °Íó·³, Ãë±ÞµÈ´Ù. Ưº°È÷ make
´Â
°¢ ¶óÀο¡ ´ëÇؼ ºÐ¸®µÈ ¼ºê½©À» È£ÃâÇÑ´Ù. ¿©·¯ºÐÀº ¹ÀÎ ½ÃÄö½º¿¡ ÀÕ´Â
°¢ ¶óÀÎÀÇ ¾Õ¿¡´Ù ¸í·É ¶óÀε鿡 ¿µÇâÀ» ¹ÌÄ¡´Â Ư¼ö Á¢µÎ ¹®ÀÚ(`@',
`-', and `+')µéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. See section ±ÔÄ¢³» ¸í·É ÀÛ¼º(Writing the Commands in Rules). ¿¹¸¦ µé¾î¼ ´ÙÀ½°ú °°Àº ¹ÀÎ
½ÃÄö½º¸¦ »ç¿ëÇؼ:
define frobnicate @echo "frobnicating target $@" frob-step-1 $< -o $@-step-1 frob-step-2 $@-step-1 -o $@ endef
make
´Â ù¹ø° ¶óÀÎ, echo
¸í·É ÀÚü¸¦ ¿¡ÄÚÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
±×·¯³ª ´ÙÀ½ µÎ ¶óÀεéÀº ¿¡ÄÚÇÒ °ÍÀÌ´Ù.
ÇÑÆí ¹ÀÎ ½ÃÄö½º¸¦ ÂüÁ¶ÇÏ´Â ¸í·É ¶óÀο¡ ºÙÀº Á¢µÎ ¹®ÀÚµéÀº ±× ½ÃÄö½º¿¡ ÀÖ´Â °¢ ¶óÀο¡ ´ëÇؼ Àû¿ëµÈ´Ù. ±×·¡¼ ´ÙÀ½ ¶óÀÎÀº:
frob.out: frob.in @$(frobnicate)
¾î¶² ¸í·Éµµ ¿¡ÄÚÇÏÁö ¾Ê´Â´Ù. (`@'¿¡ ´ëÇÑ ¿ÏÀüÇÑ ¼³¸í¿¡ ´ëÇؼ, See section ¸í·É ¿¡ÄÚ(Command Echoing).)
¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â ¸í·ÉµéÀ» Á¤ÀÇÇÏ´Â °ÍÀÌ ¶§¶§·Î À¯¿ëÇÏ´Ù. ÀÌ°ÍÀº °ø¹é¿Ü¿¡ ¾Æ¹«°Íµµ ¾ø´Â ¸í·ÉÀ» ÁÜÀ¸·Î½á Á¤ÀÇµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î¼:
target: ;
ÀÌ°ÍÀº `target'¿¡ ´ëÇؼ ºó ¸í·É ¹®ÀÚ¿À» Á¤ÀÇÇÑ´Ù. ¶Ç´Â ºó ¸í·É ¹®ÀÚ¿À» Á¤ÀÇÇϱâ À§Çؼ Åǹ®ÀÚ·Î ½ÃÀÛÇÏ´Â ÇÑ ¶óÀÎÀ» »ç¿ëÇÒ¼öµµ ÀÖÁö¸¸ ÀÌ°ÍÀº ±×·± ¶óÀÎÀÌ ºó°Íó·³ º¸ÀÌÁö ¾Ê±â ¶§¹®¿¡ È¥µ¿À» ÀÏÀ¸Å³ ¼ö ÀÖ´Ù.
¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â ¸í·ÉÀ» ¿Ö Á¤ÀÇÇØ¾ß Çұ ´ëÇؼ ÀǾÆÇØ ÇÒ·±Áöµµ
¸ð¸£°Ú´Ù. ¾î¶² Ÿ°ÙÀÌ ¹¬½ÃÀû ¸í·Éµé(¹¬½ÃÀû ±ÔÄ¢µé·ÎºÎÅÍ ¶Ç´Â
.DEFAULT
Ư¼ö Ÿ°ÙÀ¸·ÎºÎÅÍ; see section ¹¬½ÃÀû ±ÔÄ¢(Using Implicit Rules) ±×¸®°í
see section ÃÖÈÄÀÇ µðÆúÆ® ±ÔÄ¢ Á¤ÀÇ(Defining Last-Resort Default Rules))À» ¾òÁö
¸øÇϵµ·Ï ÇÏ´Â °ÍÀÌ ±× À¯ÀÏÇÑ ÀÌÀ¯ÀÌ´Ù.
½ÇÁ¦ ÆÄÀÏÀÌ ¾Æ´ÏÁö¸¸ ±×µéÀÇ Á¾¼Ó¹°µéÀÌ ´Ù½Ã ¸¸µé¾îÁú ¼ö ÀÖµµ·ÏÇϱâ À§Çؼ¸¸ Á¸ÀçÇϴ Ÿ°Ùµé¿¡ ´ëÇؼ ºó ¸í·É ¹®ÀÚ¿À» °ðÀß Á¤ÀÇÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ°ÍÀº ±×·¸°Ô Çϱâ À§ÇÑ °¡Àå ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù. ¿Ö³Ä¸é Á¾¼Ó¹°µéÀÌ, Ÿ°Ù ÆÄÀÏÀÌ ½ÇÁ¦·Î Á¸ÀçÇÑ´Ù¸é, Á¦´ë·Î ´Ù½Ã ¸¸µé¾îÁöÁö ¾ÊÀ» °ÍÀ̱⠴빮ÀÌ´Ù. ÀÌ·¸°Ô Çϱâ À§ÇÑ Á» ´õ ³ªÀº ¹æ¹ýÀ» ã´Â´Ù¸é See section °¡Â¥ ¸ñÀû¹°(Phony Targets).
Go to the first, previous, next, last section, table of contents.