´ÙÀ½¿¡¼´Â ¾î¶»°Ô Automake°¡ µ¿ÀÛÇÏ´ÂÁö ÀÌÇØÇϴµ¥ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ ¾ÆÀ̵ð¾îµéÀ» ´Ù·é´Ù.
Automake°¡ µ¿ÀÛÇϸé `Makefile.am' ÆÄÀÏÀ» Àаí, `Makefile.in' ÆÄÀÏÀ» ¸¸µç´Ù. `Makefile.am'¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ´Â ¸ÅÅ©·Î(macro)¿Í Ÿ°Ù(target(1))Áß¿¡¼ ƯÁ¤ÇÑ ¸î°³´Â Automake°¡ ´õ¿í Ưº°ÇÑ Äڵ带 ¸¸µéµµ·Ï ¾Ë·Á ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù; ¿¹¸¦ µé¾î `bin_PROGRAMS' ¸ÅÅ©·Î¸¦ Á¤ÀÇÇϸé ÄÄÆÄÀϵǰí, ¸µÅ©µÇ¾ß Çϴ Ÿ°ÙÀ» `Makefile.in'¿¡ ¸¸µé¾î³¾ °ÍÀÌ´Ù.
`Makefile.am' ¾ÈÀÇ ¸ÅÅ©·Î Á¤ÀÇ¿Í Å¸°ÙÀº, ¾ÕÀ¸·Î ¸¸µé¾î Áú
`Makefile.in' ÆÄÀÏ¿¡ ±×´ë·Î º¹»çµÈ´Ù. ±×·¯¹Ç·Î ¾î¶² ÀÓÀÇÀÇ
ÄÚµå¶óµµ »ý¼ºµÇ´Â `Makefile.in' ÆÄÀÏ¿¡ Áý¾î³ÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î
Automake ¹èÆ÷ÆÇ¿¡´Â ºñÇ¥ÁØÀûÀÎ cvs-dist
Ÿ°ÙÀÌ µé¾îÀÖ´Ù. ÀÌ
Ÿ°ÙÀº Automake °ü¸®ÀÚ°¡ ¼Ò½º ÄÜÆ®·Ñ ½Ã½ºÅÛ¿¡¼ ¹èÆ÷ÆÇÀ» ¸¸µé¶§
ÀÌ¿ëÇÑ´Ù.
Automake´Â GNU make¸¸ÀÇ È®Àå±â´ÉÀ» ÀÌÇØÇÏÁö ¸øÇÑ´Ù´Â Á¡¿¡ À¯ÀÇÇϱ⠹ٶõ´Ù. `Makefile.am'¿¡ ±×·± È®Àå ±â´ÉÀ» »ç¿ëÇÏ¸é ¾Ö·¯¸¦ ³»°Å³ª, ±«»óÇÏ°Ô µ¿ÀÛÇÒ °ÍÀÌ´Ù.
Automake´Â ¶È¶ÈÇÑ ¹æ¹ýÀ¸·Î ÁÖ¼®¹®À» ÀÎÁ¢ÇÑ Å¸°Ù°ú ¸ÅÅ©·Î Á¤ÀÇ¿¡ ¸ð¾Æ ³õ´Â´Ù.
º¸Åë `Makefile.am'¿¡ Á¤ÀÇµÈ Å¸°ÙÀÌ automake
°¡ ÀÚµ¿À¸·Î
»ý¼ºÇØ ³»´Â °°Àº À̸§ÀÇ Å¸°Ùº¸´Ù ¿ì¼±ÇÏ°í, °°Àº À̸§ÀÌ ÀÖÀ¸¸é
ÀçÁ¤ÀǵȴÙ. ÀÌ°ÍÀº Áö¿øµÇ´Â ±â´ÉÁß ÇϳªÀÌÁö¸¸, ÀÌ ±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê´Â
°ÍÀÌ ÁÁ´Ù. ¿Ö³ÄÇϸé ÀÌ·¸°Ô ÀÚµ¿À¸·Î »ý¼ºµÇ´Â ·êÀÌ »ó¼¼ÇÏ°Ô Àß ¸¸µé¾îÁ®
Àֱ⠶§¹®ÀÌ´Ù.
¸¶Âù°¡Áö·Î, `Makefile.am'¿¡ º¯¼ö¸¦ Á¤ÀÇÇϸé ÀϹÝÀûÀ¸·Î
automake
°¡ ÀÚµ¿À¸·Î ¸¸µé¾î ³»´Â º¯¼öÀÇ Á¤ÀǸ¦ ¹«½ÃÇÏ°í
ÀçÁ¤ÀÇÇÑ´Ù. ÀÌ ±â´ÉÀº Ÿ°ÙÀÇ Á¤ÀǸ¦ ÀçÁ¤ÀÇÇÏ´Â ±â´Éº¸´Ù ´õ À¯¿ëÇÒ ¶§°¡
ÈξÀ ¸¹´Ù. ÇÏÁö¸¸, automake
°¡ ¸¸µé¾î ³»´Â ¸¹Àº º¯¼öµéÀº
³»ºÎÀûÀ¸·Î »ç¿ëµÈ´Ù°í °¡Á¤ÇÏ°í ¸¸µé¾î Á³À¸¹Ç·Î, Èʳ¯ ±× À̸§ÀÌ ¹Ù²ð ¼öµµ
ÀÖ´Ù´Â °ÍÀ» °æ°íÇØ µÐ´Ù.
Automake°¡ º¯¼öÀÇ Á¤ÀǸ¦ °Ë»çÇÒ ¶§, Automake´Â Àç±ÍÀûÀ¸·Î ±× º¯¼öÁ¤ÀÇ¿¡ ¶Ç ´Ù¸¥ º¯¼ö°¡ µé¾î°¡ ÀÖ´ÂÁö °Ë»çÇÒ °ÍÀÌ´Ù. ±× ¿¹·Î, Automake°¡ ´ÙÀ½ ºÎºÐ¿¡¼ `foo_SOURCES'ÀÇ ³»¿ëÀ» °Ë»çÇÒ ¶§,
xs = a.c b.c foo_SOURCES = c.c $(xs)
`foo_SOURCES'ÀÇ °ªÀ¸·Î `a.c', `b.c', ±×¸®°í `c.c' ÆÄÀÏÀ» »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù.
AutomakeÀÇ ÁÖ¼®¹®Áß¿¡´Â `Makefile.in'¿¡ Ãâ·ÂµÉ ¶§ º¹»çµÇÁö ¾Ê´Â ÁÖ¼®¹®µµ ÀÖ´Ù; `##'·Î ½ÃÀÛÇÏ´Â ¸ðµç ÁÙÀº Automake°¡ ¿ÏÀüÈ÷ ¹«½ÃÇÑ´Ù.
`Makefile.am'ÀÇ Ã¹¹ø° ÁÙÀº °ü·ÊÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:
## Process this file with automake to produce Makefile.in
automake
´Â ¼¼ °¡Áö Á¾·ùÀÇ µð·ºÅ丮 °èÃþ±¸Á¶¸¦ Áö¿øÇÑ´Ù;
`flat', `shallow', ±×¸®°í `deep'ÀÌ´Ù.
flat ÆÐÅ°Áö´Â ¸ðµç ÆÄÀϵéÀÌ ÇÑ°³ÀÇ µð·ºÅ丮¿¡ µé¾î ÀÖ´Â
ÆÐÅ°ÁöÀÌ´Ù. Á¤ÀÇ°¡ ÀÌ·¯ÇϹǷΠflat ÆÐÅ°ÁöÀÇ `Makefile.am'´Â
SUBDIRS
¸ÅÅ©·Î°¡ ¾ø´Ù. ÀÌ·¯ÇÑ ÆÐÅ°ÁöÀÇ ÇÑ ¿¹´Â
termutils
ÀÌ´Ù.
deep ÆÐÅ°Áö´Â ¸ðµç ¼Ò½º ÆÄÀÏÀÌ ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â ÆÐÅ°ÁöÀÌ´Ù; ¸Ç À§
µð·º·ÎƼ´Â ÁÖ·Î ¼³Á¤ ÆÄÀϵ鸸 µé¾î ÀÖ´Ù. GNU cpio´Â ÀÌ·¯ÇÑ ÆÐÅ°ÁöÀÇ
ÁÁÀº ¿¹ÀÌ°í, GNU tar
µµ ±×·¸´Ù. deep ÆÐÅ°Áö¿¡¼ ¸Ç À§ µð·ºÅ丮ÀÇ
`Makefile.am'´Â SUBDIRS
¸ÅÅ©·Î°¡ ÀÖ°í, ¹Ý¸é ÀÌ ÆÄÀÏÀÇ ¾î¶²
¸ÅÅ©·Î¿¡¼µµ ºôµåÇØ¾ß ÇÒ ÆÄÀÏÀ» Á¤ÀÇÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
shallow ÆÐÅ°Áö´Â ÁÖ¿ä ¼Ò½º°¡ ¸Ç À§ µð·ºÅ丮¿¡ ÀÖ°í, ´Ù¸¥ ¿©·¯°¡Áö
ºÎºÐ(º¸Åë ¶óÀ̺귯¸®)ÀÌ ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â ÆÐÅ°ÁöÀÌ´Ù.
automake
´Â ±×·¯ÇÑ ÆÐÅ°ÁöÀÌ´Ù. (ÇöÀç automake
¸¦ »ç¿ëÇÏÁö
¾Ê±ä ÇÏÁö¸¸, GNU make
µµ ±×·¸´Ù.)
Automake´Â GNU ÆÐÅ°Áö °ü¸®ÀÚ°¡ ¾²µµ·Ï ÇÑ °ÍÀÌÁö¸¸, Automake¸¦ »ç¿ëÇÏ°í ½ÍÀ¸¸é¼, GNUÀÇ °ü½À ÀüºÎ¸¦ ¾²°í ½ÍÁö ¾ÊÀº »ç¶÷ÀÇ ÆíÀǵµ °í·ÁÇß´Ù.
À̸¦ À§ÇØ, Automake´Â ¼¼°¡Áö ´Ü°èÀÇ ¾ö°Ý¼º(strictness)¸¦ Áö¿øÇÑ´Ù---¾ö°ÝÇÔÀº Ç¥ÁØÀ» µû¸£´ÂÁö ¾Æ´ÑÁö ¾ó¸¶³ª °·ÂÇÏ°Ô °Ë»çÇØ¾ß ÇÏ´ÂÁö¸¦ ³ªÅ¸³½´Ù.
»ç¿ëÇÒ ¼ö ÀÖ´Â ¾ö°Ý¼º ´Ü°è´Â:
¾ö°Ý¼º ´Ü°è¿¡ Á¤È®È÷ ¹«¾ùÀÌ Æ÷ÇԵǾú´Â Áö¿¡ ´ëÇÑ Á¤È®ÇÑ Á¤º¸´Â See section --gnu¿Í --gnitsÀÇ È¿°ú.
Automake ¸ÅÅ©·Î(¿©±â¼ºÎÅÍ º¯¼ö¶ó°í ºÎ¸£°Ú´Ù)´Â º¸Åë
ÀÏ°üÀûÀÎ ¸í¸í¹ýÀ» µû¸¥´Ù. ÀÌ ¸í¸í¹ýÀ» ÅëÇØ ¾î¶»°Ô ÇÁ·Î±×·¥(±×¸®°í
±×¿Ü ´Ù¸¥ °ÍÀ¸·ÎºÎÅÍ ÀÚµ¿À¸·Î ¸¸µé¾îÁö´Â ¿ÀºêÁ§Æ®µé)ÀÌ ºôµåµÇ°í, ¾î¶»°Ô
¼³Ä¡µÇ´ÂÁö Automake°¡ ´õ ½±°Ô ¾Ë ¼ö ÀÖ´Ù. ¶Ç ÀÌ ¸í¸í¹ýÀ» ÀÌ¿ëÇØ
configure
½Ã¿¡ ¹«¾ùÀ» ºôµåÇØ¾ß ÇÒÁö °áÁ¤ÇÏ´Â °Í±îÁöµµ Áö¿øÇÑ´Ù.
make
¸¦ ½ÇÇàÇÒ¶§, ¾î´À ¿ÀºêÁ§Æ®¸¦ ºôµåÇØ¾ß ÇÒÁö ¾Ë¾Æº¸´Â µ¥ ¾²ÀÌ´Â
º¯¼ö°¡ ¸î °³ ÀÖ´Ù. ÀÌ º¯¼ö¸¦ ÁÖ¿ä(primary) º¯¼ö¶ó°í ÇÑ´Ù. ±×
ÇÑ°¡Áö ¿¹·Î, ÁÖ¿ä º¯¼öÀÎ PROGRAMS
ÀÇ °ªÀº ÄÄÆÄÀÏµÇ°í ¸µÅ©µÉ
ÇÁ·Î±×·¥µéÀÇ ¸®½ºÆ®¸¦ ´ã°í ÀÖ´Ù.
¶Ç ´Ù¸¥ Á¾·ùÀÇ º¯¼öµéÀº ¸¸µé¾îÁø ¿ÀºêÁ§Æ®¸¦ ¾îµð¿¡ ¼³Ä¡ÇØ¾ß ÇÒÁö
°áÁ¤ÇÑ´Ù. ÀÌ º¯¼öµéÀÇ À̸§Àº ÁÖ¿ä º¯¼öÀÇ À̸§À» º»µû¼ À̸§Áö¾î Á³Áö¸¸,
¾î´À Ç¥ÁØ µð·ºÅ丮¸¦ ¼³Ä¡ µð·ºÅ丮·Î »ç¿ëÇÒÁö ³ªÅ¸³»´Â Á¢µÎ¾î¸¦ °®°í
ÀÖ´Ù. ÀÌ Ç¥ÁØ µð·ºÅ丮µéÀÇ À̸§Àº GNU Ç¥ÁØ¿¡ ÁÖ¾îÁ® ÀÖ´Ù
(see section `Directory Variables' in The GNU Coding Standards).
automake
´Â ÀÌ ¸®½ºÆ®¸¦ È®ÀåÇؼ pkglibdir
,
pkgincludedir
, ±×¸®°í pkgdatadir
¸¦ Ãß°¡Çß´Ù; ÀÌ º¯¼öµéÀº
`pkg'°¡ ¾ø´Â ¹öÀü°ú °°Áö¸¸, µð·ºÅ丮¿¡ `@PACKAGE@'°¡ µÚ¿¡
µ¡ºÙ¿©Áø À̸§ÀÌ´Ù. ¿¹¸¦ µé¾î, pkglibdir
´Â
$(libdir)/@PACKAGE@
·Î Á¤ÀǵȴÙ.
°¢ ÁÖ¿ä º¯¼ö¿¡ ´ëÇÏ¿©, ÁÖ¿ä º¯¼öÀÇ À̸§ ¾Õ¿¡ `EXTRA_'¸¦ ºÙÀÎ º¯¼ö°¡
ÇÑ°¡Áö¾¿ Ãß°¡µÇ¾î ÀÖ´Ù. ÀÌ º¯¼ö´Â configure
°¡ ¾î¶»°Ô °áÁ¤ÇϳĿ¡
µû¶ó¼ ¸¸µé¾î Áú ¼öµµ ÀÖ°í ¸¸µé¾î ÁöÁö ¾ÊÀ» ¼öµµ ÀÖ´Â ¿ÀºêÁ§Æ®¸¦
³ª¿ÇÏ´Â µ¥ ¾²ÀδÙ. ¾î¶² °æ¿ì¿¡µµ Á¦´ë·Î µ¿ÀÛÇÏ´Â `Makefile.in'À»
¸¸µå·Á¸é, ¸¸µé¾î¾ß ÇÒ ¿ÀºêÁ§Æ®ÀÇ Àüü ¸®½ºÆ®¸¦ Automake°¡ °íÁ¤ÀûÀ¸·Î ¾Ë°í
ÀÖ¾î¾ß Çϱ⠶§¹®¿¡ ÀÌ º¯¼ö°¡ ÇÊ¿äÇÏ´Ù.
±× ÇÑ°¡Áö·Î, cpio
´Â configure
½ÇÇà ½Ã¿¡ ¾î¶² ÇÁ·Î±×·¥À»
ºôµåÇÒÁö °áÁ¤ÇÑ´Ù. ¾î¶² ÇÁ·Î±×·¥Àº bindir
¿¡ ¼³Ä¡ÇÒ °ÍÀÌ°í, ¾î¶²
ÇÁ·Î±×·¥Àº sbindir
¿¡ ¼³Ä¡ÇÒ °ÍÀÌ´Ù:
EXTRA_PROGRAMS = mt rmt bin_PROGRAMS = cpio pax sbin_PROGRAMS = @PROGRAMS@
Á¢µÎ¾î°¡ ¾øÀÌ ÁÖ¿ä º¯¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀº (PROGRAMS
ó·³) À߸øµÈ
¸í¸í¹ýÀÌ´Ù.
°øÅëÀûÀ¸·Î µé¾î ÀÖ´Â `dir' Á¢¹Ì¾î´Â º¯¼ö À̸§À» ¸¸µå´Â µ¥ ¾ø¾Ø´Ù. Áï, `bin_PROGRAMS'À¸·Î ¾²Áö `bindir_PROGRAMS'¶ó°í ¾²Áö´Â ¾Ê´Â´Ù.
°¢°¢ÀÇ µð·ºÅ丮¿¡ ¼³Ä¡µÉ ¼ö ÀÖ´Â ¿ÀºêÁ§Æ®ÀÇ Á¾·ù´Â Á¦ÇѵǾî ÀÖ´Ù. ¸¸¾à ÇØ´ç µð·ºÅ丮¿¡ ¼³Ä¡ÇÒ ¼ö ¾ø´Â ¿ÀºêÁ§Æ®¸¦ ¼³Ä¡ÇÏ·Á´Â ½Ãµµ¸¦ Çϸé Automake´Â ¿À·ù·Î ó¸®ÇÑ´Ù. ¶Ç Automake´Â µð·ºÅ丮 À̸§À» À߸ø ¾´ °æ¿ì¸¦ ã¾Æ³¾ °ÍÀÌ´Ù.
¶§¶§·Î Ç¥ÁØ µð·ºÅ丮µé---Automake¿¡ ÀÇÇØ º¯ÇüµÈ µð·ºÅ丮 À̸§À̶óµµ---·Î´Â ÃæºÐÇÏÁö ¾ÊÀº °æ¿ì°¡ ÀÖ´Ù. ƯÈ÷ ´õ ¸íÈ®ÇÏ°Ô Çϱâ À§ÇØ, ¿ÀºêÁ§Æ®¸¦ ¾î¶² ¹Ì¸® Á¤ÀÇµÈ µð·ºÅ丮ÀÇ ¼ºêµð·ºÅ丮¿¡ ¼³Ä¡ÇÏ´Â °ÍÀÌ À¯¿ëÇÒ ¶§µµ ÀÖ´Ù. ÀÌ°Í ¶§¹®¿¡, Automake´Â ¼³Ä¡ °¡´ÉÇÑ µð·ºÅ丮¸¦ È®ÀåÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ÀÓÀÇÀÇ Á¢µÎ¾î(¿¹·Î `zar')µµ °°Àº À̸§¿¡ `dir'°¡ µÚ¿¡ ºÙ¿©Áø º¯¼ö(¿¹·Î `zardir')¸¦ Á¤ÀÇÇÏ¸é »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¾î, Automake°¡ HTMLÀ» Áö¿øÇÒ ¶§±îÁö HTML ¹®¼¸¦ ¼³Ä¡ÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
htmldir = $(prefix)/html html_DATA = automake.html
Ưº° Á¢µÎ¾î `noinst'´Â ÁÖ¾îÁø objectµéÀÌ ÀüÇô ¼³Ä¡µÇÁö ¸»¾Æ¾ß ÇÑ´Ù´Â ¶æÀÌ´Ù.
Ưº° Á¢µÎ¾î `check'´Â ÁÖ¾îÁø objectµéÀÌ make check
¸í·ÉÀÌ
½ÇÇàµÉ ¶§±îÁö´Â ¸¸µé¾îÁöÁö ¸»¾Æ¾ß ÇÑ´Ù´Â ¶æÀÌ´Ù.
»ç¿ë °¡´ÉÇÑ °¡´ÉÇÑ ÁÖ¿ä º¯¼öÀÇ À̸§Àº `PROGRAMS', `LIBRARIES', `LISP', `SCRIPTS', `DATA', `HEADERS', `MANS', ±×¸®°í `TEXINFOS'ÀÌ´Ù.
¶§¶§·Î »ç¿ëÀÚ°¡ ¾²´Â ¶Ç ´Ù¸¥ ¹®ÀÚ¿¿¡¼ Makefile º¯¼öÀÇ À̸§ÀÌ °áÁ¤µÇ´Â
°æ¿ì°¡ ÀÖ´Ù. ±× ÇÑ°¡Áö ¿¹·Î, ÇÁ·Î±×·¥ÀÇ À̸§Àº MakefileÀÇ ¸ÅÅ©·Î
À̸§À¸·Î ¾²¿©Áø´Ù. Automake´Â ÀÌ ¹®ÀÚ¿À» Makefile º¯¼ö±ÔÄ¢¿¡ ¸Â°Ô
º¯ÇüÇؼ, Makefile º¯¼öÀÇ ¸í¸í¹ý´ë·Î À̸§À» ÁöÀ» ÇÊ¿ä°¡ ¾øµµ·Ï ÇØÁØ´Ù.
±ÛÀÚ, ¼ýÀÚ, ±×¸®°í ¹ØÁÙÀ» Á¦¿ÜÇÑ À̸§ÀÇ ¸ðµç ¹®ÀÚ´Â ¸ÅÅ©·Î¸¦ ¸¸µé¶§
¹ØÁÙ·Î ¹Ù²ï´Ù. ¿¹¸¦ µé¾î, ¸¸¾à ÇÁ·Î±×·¥ÀÇ À̸§ÀÌ sniff-glue
¶ó¸é,
¿©±â¿¡¼ ³ª¿À´Â º¯¼öÀÇ À̸§Àº sniff_glue_SOURCES
ÀÌÁö
sniff-glue_SOURCES
°¡ ¾Æ´Ï´Ù.
Go to the first, previous, next, last section, table of contents.