ÀÌ ÀåÀº GNU ÇÁ·Î±×·¥µé¿¡ ´ëÇÑ makefileÀ» ÀÛ¼ºÇÏ´Â °ü·Ê¸¦ ¼³¸íÇÑ´Ù.
¸ðµç makefile Àº ´ÙÀ½°ú °°Àº ¶óÀÎÀ» °¡Á®¾ß ÇÑ´Ù:
SHELL = /bin/sh
SHELL
º¯¼ö°¡ ȯ°æÀ¸·ÎºÎÅÍ ½Â°ÔµÉ¼öµµ ÀÖ´Â ½Ã½ºÅ۵鿡¼ ¹®Á¦µéÀ»
ÇÇÇϱâ À§Çؼ. (ÀÌ°ÍÀº GNU make
ÀÇ ¹®Á¦°¡ Àý´ë·Î ¾Æ´Ï´Ù.)
´Ù¸¥ make
ÇÁ·Î±×·¥µéÀº ºñȣȯ Á¢¹Ì»ç ¸®½ºÆ®µé°ú ¹¬½ÃÀû ±ÔÄ¢µéÀ»
°¡Áö°í ÀÌ°ÍÀº ¶§¶§·Î È¥¶õ°ú À߸øµÈ ÇൿÀ» ÀÏÀ¸Å²´Ù. ±×·¡¼ ƯÁ¤ÇÑ
makefile¿¡¼ ÇÊ¿ä·ÎÇÏ´Â Á¢¹Ì»çµé·Î¸¸ ÀÌ·ç¾îÁø Á¢¹Ì»ç ¸®½ºÆ®¸¦ ´ÙÀ½°ú
°°ÀÌ ¼³Á¤ÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ´Ù:
.SUFFIXES: .SUFFIXES: .c .o
ù¹ø° ¶óÀÎÀº Á¢¹Ì»ç ¸®½ºÆ®¸¦ û¼ÒÇÑ´Ù. µÎ¹ø° ¶óÀÎÀº ÀÌ makefile ¿¡¼ ¹¬½ÃÀû ±ÔÄ¢µé¿¡ Á¾¼ÓÀûÀÎ ¸ðµç Á¢¹Ì»çµéÀ» µµÀÔÇÑ °ÍÀÌ´Ù.
`.' °¡ ¸í·É ½ÇÇàÀ» À§ÇÑ °æ·Î¿¡ ÀÖÀ» °ÍÀ̶ó°í °¡Á¤ÇÏÁö ¸»ÀÚ. make µ¿¾È¿¡ »ç¿ëÀÚÀÇ ÆÑÅ°Áö Áß¿¡¼ ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°íÀÚ ÇÒ ¶§, ±× ÇÁ·Î±×·¥ÀÌ make ÀÇ ÀϺÎÀ̶ó¸é ÀÌ°ÍÀÌ `./' ¸¦, ¶Ç´Â ±× ÆÄÀÏÀÌ ¼Ò½º ÄÚµåÀÇ º¯°æµÇÁö ¾ÊÀº ºÎºÐÀÏ °æ¿ì¶ó¸é `$(srcdir)/' ¸¦ »ç¿ëÇÏ´Â °ÍÀ» È®ÀÎÇϱ⠹ٶõ´Ù. ÀÌ·± Á¢µÎ¾îµé ÁßÀÇ Çϳª°¡ ¾ø´Ù¸é ÇöÀç °Ë»ö °æ·Î°¡ »ç¿ëµÈ´Ù.
`./' (ºôµå µð·ºÅ丮(build directory)) ¿Í `$(srcdir)/' (¼Ò½º µð·ºÅ丮(source directory)) »çÀÌÀÇ Â÷ÀÌ´Â »ç¿ëÀÚµéÀÌ `configure' ¿¡ ´ëÇؼ `--srcdir' ¿É¼ÇÀ» »ç¿ëÇÏ¿© ºÐ¸®µÈ µð·ºÅ丮 ¾È¿¡¼ ºôµåÇÒ ¼ö Àֱ⠶§¹®¿¡ Áß¿äÇÏ´Ù. ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ ±ÔÄ¢Àº:
foo.1 : foo.man sedscript sed -e sedscript foo.man > foo.1
ºôµå µð·ºÅ丮°¡ ¼Ò½º µð·ºÅ丮°¡ ¾Æ´Ò ¶§ ½ÇÆÐÇÒ °ÍÀÌ´Ù. ¿Ö³Ä¸é `foo.man' ¿Í `sedscript' ´Â ¼Ò½º µð·ºÅ丮¿¡ Àֱ⠶§¹®ÀÌ´Ù.
GNU make
¸¦ »ç¿ëÇÒ ¶§ `VPATH' ¿¡ ÀÇÁ¸Çؼ ¼Ò½º ÆÄÀÏÀ» ã´Â
°ÍÀº ´ÜÀÏ Á¾¼Ó ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì¿¡ ÀÛµ¿ÇÒ °ÍÀÌ´Ù. ¿Ö³Ä¸é make
ÀÚµ¿ º¯¼ö `$<' ´Â ¼Ò½º ÆÄÀÏÀÌ ¾îµð¿¡ ÀÖ´ø°£¿¡ ±× ¼Ò½º ÆÄÀÏÀ»
Ç¥ÇöÇÒ °ÍÀ̱⠶§¹®ÀÌ´Ù. (make
ÀÇ ¸¹Àº ¹öÀüµéÀÌ `$<' ¸¦
¹¬½ÃÀû ±ÔÄ¢µé ¾È¿¡¼¸¸ ¼³Á¤ÇÑ´Ù.) ´ÙÀ½°ú °°Àº makefile Ÿ°ÙÀº
foo.o : bar.c $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
ÀÌ°Í ´ë½Å¿¡ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºµÇ¾î¾ß ÇÒ °ÍÀÌ´Ù.
foo.o : bar.c $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
`VPATH' °¡ Á¦´ë·Î ÀÛµ¿Çϵµ·Ï Çϱâ À§Çؼ ¸»ÀÌ´Ù. Ÿ°ÙÀÌ ´Ù¼öÀÇ Á¾¼Ó¹°µéÀ» °¡Áø´Ù¸é, ¸í½ÃÀûÀÎ `$(srcdir)' ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ±ÔÄ¢ÀÌ Á¦´ë·Î ÀÛµ¿Çϵµ·Ï ÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀÌ´Ù. ¿¹¸¦ µé¾î¼ À§¿¡¼ `foo.1' ¸¦ À§ÇÑ Å¸°ÙÀº ´ÙÀ½°ú °°ÀÌ ¾²´Â °ÍÀÌ °¡Àå ÁÁÀº °ÍÀÌ´Ù:
foo.1 : foo.man sedscript sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@
GNU ¹èÆ÷ÆǵéÀº º¸Åë ¼Ò½º ÆÄÀϵéÀÌ ¾Æ´Ñ ¸î°¡Áö ÆÄÀϵéÀ» °¡Áö°í ÀÖ´Ù---¿¹¸¦ µé¾î¼, Info ÆÄÀÏ, ±×¸®°í Autoconf, Automake, Bison ¶Ç´Â Flex ·ÎºÎÅÍ ¹ß»ýµÈ °á°ú. ÀÌ·± ÆÄÀϵéÀÌ ÀϹÝÀûÀ¸·Î ¼Ò½º µð·ºÅ丮¿¡ ³ªÅ¸³ª±â ¶§¹®¿¡ ±×µéÀº Ç×»ó ºôµå µð·ºÅ丮°¡ ¾Æ´Ï¶ó ¼Ò½º µð·ºÅ丮¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡¼ À̵éÀ» °»½ÅÇÏ´Â Makefile ±ÔÄ¢µéÀº °»½Å ÆÄÀϵéÀ» ¼Ò½º µð·ºÅ丮¿¡ ³Ö¾î¾ß ÇÑ´Ù.
±×·¯³ª ¾î¶² ÆÄÀÏÀÌ ¹èÆ÷ÆÇ¿¡ ¾ø´Ù¸é Makefile Àº ±×°ÍÀ» ¼Ò½º µð·ºÅ丮¿¡ ³ÖÀ¸¸é ¾ÈµÈ´Ù. ¿Ö³Ä¸é ¾î¶² ÇÁ·Î±×·¥À» º¸ÅëÀÇ È¯°æ¿¡¼ ºôµåÇÏ´Â °ÍÀº ¼Ò½º µð·ºÅ丮¸¦ ¾î¶² ½ÄÀ¸·Îµç º¯°æÇؼ´Â ¾ÈµÇ±â ¶§¹®ÀÌ´Ù.
Ÿ°ÙÀ» ºôµåÇÏ°í ¼³Ä¡ÇÏ´Â °ÍÀÌ, Àû¾îµµ(±×¸®°í ¸ðµç ±×µéÀÇ ¼ºêŸ°ÙµéÀÌ)
º´·Ä make
·Îµµ Á¤È®ÇÏ°Ô ÀÛµ¿ÇÏ°Ô ¸¸µé·Á°í ³ë·ÂÇÏÀÚ.
makefile ¸í·Éµé(±×¸®°í configure
¿Í °°Àº ½© ½ºÅ©¸³Æ®µé)À»
ÀÛ¼ºÇÒ ¶§ csh
°¡ ¾Æ´Ï¶ó sh
¿¡¼ ½ÇÇàÇϵµ·Ï
ÀÛ¼ºÇÏÀÚ. ksh
³ª bash
ÀÇ Æ¯¼ö ±â´ÉµéÀ» »ç¿ëÇÏÁö ¸»ÀÚ.
configure
½ºÅ©¸³Æ®¿Í makefile ÀÇ ºôµå¿Í ¼³Ä¡¸¦ À§ÇÑ ±ÔÄ¢µéÀº
´ÙÀ½°ú °°Àº °ÍµéÀ» Á¦¿ÜÇÏ°í´Â À¯Æ¿¸®Æ¼µéÀ» Á÷Á¢ »ç¿ëÇؼ´Â ¾ÈµÈ´Ù:
cat cmp cp diff echo egrep expr false grep install-info ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
¾ÐÃà ÇÁ·Î±×·¥ gzip
˼ dist
±ÔÄ¢¿¡¼ »ç¿ëµÉ ¼ö ÀÖ´Ù.
ÀÌ·± ÇÁ·Î±×·¥µé¿¡ ´ëÇؼ ÀϹÝÀûÀ¸·Î Áö¿øµÇ´Â ¿É¼ÇµéÀ» »ç¿ëÇÏÀÚ. ¿¹¸¦ µé¾î¼ ´ëºÎºÐÀÇ ½Ã½ºÅÛµéÀÌ `mkdir -p' ¸¦ Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÌ°ÍÀÌ ÆíÇÏ´õ¶óµµ ÀÌ°ÍÀ» »ç¿ëÇÏÁö ¸»ÀÚ.
makefile ¾È¿¡¼ ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÏÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ´Ù. ¿Ö³Ä¸é ¼Ò¼öÀÇ ½Ã½ºÅÛµéÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ Áö¿øÇϱ⠶§¹®ÀÌ´Ù.
ºôµå¿Í ¼³Ä¡¸¦ À§ÇÑ Makefile ±ÔÄ¢µéÀº ÄÄÆÄÀÏ·¯µé°ú °ü·ÃµÈ ÇÁ·Î±×·¥µéÀ»
»ç¿ëÇÒ ¼ö ÀÖÁö¸¸ make
º¯¼öµéÀ» ÅëÇؼ ±×·¸°Ô Çؼ »ç¿ëÀÚ°¡
´ë¾ÈµéÀ» ´ëÀÔÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ¿ì¸®°¡ ÀǹÌÇÑ ÇÁ·Î±×·¥µé
¸î°¡ÁöµéÀÌ´Ù:
ar bison cc flex install ld ldconfig lex make makeinfo ranlib texi2dvi yacc
´ÙÀ½ make
º¯¼öµéÀ» »ç¿ëÇؼ À̵é ÇÁ·Î±×·¥µéÀ» »ç¿ëÇÏÀÚ:
$(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX) $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
ranlib
³ª ldconfig
¸¦ »ç¿ëÇÒ ¶§ ½Ã½ºÅÛÀÌ ¹®Á¦ÀÇ
ÇÁ·Î±×·¥À» °¡Áö°í ÀÖÁö ¾Ê´Ù ÇÏ´õ¶óµµ ³ª»Û ÀÏÀÌ ÀϾÁö ¾Êµµ·Ï Çؾß
ÇÑ´Ù. ±× ¸í·ÉÀ¸·ÎºÎÅÍ ³ª¿Â ¿¡·¯¸¦ ¹«½ÃÇϵµ·Ï Á¤·ÄÇÏ°í ±× ¸í·ÉÀÌ
À¯Àú¿¡°Ô ¹«¾ð°¡¸¦ ¸»Çϱâ Àü¿¡, ÀÌ ¸í·ÉÀÌ ½ÇÁ¦ ¹®Á¦°¡ ¾Æ´Ï¶ó°í ¸»ÇÏ´Â
¸Þ½ÃÁö¸¦ Ãâ·ÂÇØ¾ß ÇÑ´Ù. (Autoconf `AC_PROG_RANLIB' ¸ÅÅ©·Î°¡
ÀÌ°ÍÀ» µµ¿ï ¼ö ÀÖ´Ù.)
½Éº¼¸¯ ¸µÅ©µéÀ» »ç¿ëÇÑ´Ù¸é ½Éº¼¸¯ ¸µÅ©µéÀ» °¡ÁöÁö ¾Ê´Â ½Ã½ºÅ۵鿡 ´ëÇÑ ´ëü¹°À» ±¸ºñÇÏ¿©¾ß ÇÑ´Ù.
´ÙÀ½°ú °°Àº Ãß°¡ÀÇ À¯Æ¿¸®Æ¼µéÀÌ Make º¯¼öµéÀ» ÅëÇؼ »ç¿ëµÉ ¼ö ÀÖ´Ù:
chgrp chmod chown mknod
ÀÌ·± À¯Æ¿¸®Æ¼µéÀÌ Á¸ÀçÇÑ´Ù°í ¾Ë°í Àִ Ưº°ÇÑ ½Ã½ºÅ۵鿡 ´ëÇؼ¸¸ ÀǵµµÈ Makefile ÀϺÎ(¶Ç´Â ½ºÅ©¸³Æ®) ¾È¿¡¼ ±×·± À¯Æ¿¸®Æ¼µéÀ» »ç¿ëÇÏ´Â °ÍÀº ÁÁ´Ù.
makefile Àº ¾î¶² ¸í·Éµé, ¿É¼Çµé, ±âŸ µîµîÀ» ¿À¹ö¶óÀ̵åÇϱâ À§ÇÑ º¯¼öµéÀ» Á¦°øÇØ¾ß ÇÑ´Ù.
Ưº°È÷ ´ëºÎºÐÀÇ À¯Æ¿¸®Æ¼ ÇÁ·Î±×·¥µéÀ» º¯¼öµéÀ» ÅëÇؼ ½ÇÇàÇØ¾ß ÇÒ
°ÍÀÌ´Ù. ±×·¡¼ Bison À» »ç¿ëÇÑ´Ù¸é, µðÆúÆ® °ªÀÌ `BISON = bison' ·Î
¼³Á¤µÈ BISON
À̶ó´Â À̸§ÀÇ º¯¼ö¸¦ °¡Áö°í ÀÖ´Ù¸é, Bison À»
»ç¿ëÇÏ°íÀÚ ÇÒ ¶§¸¶´Ù ±×°ÍÀ» $(BISON)
·Î ÂüÁ¶ÇÏÀÚ.
ln
, rm
, mv
, ±×¸®°í ±âŸ µîµî°ú °°Àº ÆÄÀÏ °ü¸®
À¯Æ¿¸®Æ¼µéÀº ÀÌ·± ½ÄÀ¸·Î º¯¼öµéÀ» ÅëÇؼ ÂüÁ¶µÉ ÇÊ¿ä°¡ ¾ø´Ù. ¿Ö³Ä¸é
»ç¿ëµéÀÌ ±×°ÍµéÀ» ´Ù¸¥ ÇÁ·Î±×·¥µé·Î º¯°æÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®ÀÌ´Ù.
°¢ ÇÁ·Î±×·¥-À̸§ º¯¼ö´Â ±× ÇÁ·Î±×·¥¿¡°Ô ¿É¼ÇµéÀ» Á¦°øÇÏ´Â µ¥ »ç¿ëµÇ´Â
¿É¼Ç º¯¼ö¸¦ ÇÔ²² °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ÇÁ·Î±×·¥-À̸§ º¯¼ö À̸§¿¡´Ù
¿É¼Çµé º¯¼ö À̸§À» ¾ò±â À§Çؼ `FLAGS' ¸¦ µ¡ºÙÀδÙ---¿¹¸¦ µé¾î¼,
BISONFLAGS
. (C ÄÄÆÄÀÏ·¯ÀÇ °æ¿ì CFLAGS
, yacc ÀÇ °æ¿ì
YFLAGS
, lex ÀÇ °æ¿ì LFLAGS
À̵éÀº ÀÌ ±ÔÄ¢ÀÇ ¿¹¿ÜµéÀÌÁö¸¸
±×µéÀÌ Ç¥ÁØÀ̱⠶§¹®¿¡ ¿ì¸®´Â À̵éÀ» »ç¿ëÇÑ´Ù.) ¼±Çà󸮱⸦ ½ÇÇàÇÏ´Â
ÀÓÀÇÀÇ ÄÄÆÄÀÏ ¸í·É¿¡ ´ëÇؼ´Â CPPFLAGS
¸¦ »ç¿ëÇÏ°í ld
¸¦
Á÷Á¢ ¾²´Â °æ¿ì¿Í °°ÀÌ ¸µÅ©¸¦ ÇÏ´Â ÀÓÀÇÀÇ ÄÄÆÄÀÏ ¸í·É¿¡ ´ëÇؼ´Â
LDFLAGS
¸¦ ¾´´Ù.
ƯÁ¤ ÆÄÀϵéÀ» ÀûÀýÇÏ°Ô ÄÄÆÄÀÏÇÏ´Â µ¥ ¹Ýµå½Ã »ç¿ëµÇ´Â C ÄÄÆÄÀÏ·¯
¿É¼ÇµéÀÌ ÀÖ´Ù¸é ±×°ÍµéÀ» CFLAGS
¿¡ ³ÖÁö ¸»ÀÚ. »ç¿ëÀÚµéÀº
CFLAGS
¸¦ ÀÚÀ¯·Ó°Ô ÁöÁ¤ÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó°í ±â´ëÇÑ´Ù. ´ë½Å¿¡
CFLAGS
¿Í´Â µ¶¸³ÀûÀ¸·Î C ÄÄÆÄÀÏ·¯¿¡°Ô ÇÊ¿äÇÑ ¿É¼ÇµéÀ»
Àü´ÞÇϵµ·Ï ÇÏÀÚ. ±×µéÀ» ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏ ¸í·Éµé ¾È¿¡ ¸í½ÃÀûÀ¸·Î
½á³Ö°Å³ª ¾Æ´Ï¸é ¹¬½ÃÀû ±ÔÄ¢À» Çϳª Á¤ÀÇÇؼ ¸»ÀÌ´Ù:
CFLAGS = -g ALL_CFLAGS = -I. $(CFLAGS) .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
`-g' ¿É¼ÇÀ» CFLAGS
¾È¿¡ ³ÖÀÚ. ¿Ö³Ä¸é ±×°ÍÀÌ ÀûÀýÇÑ
ÄÄÆÄÀÏ¿¡ ´ëÇؼ´Â ÇÊ¿äÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ÀÌ°ÍÀ» ´ÜÁö
±ÇÀåÀÏ»ÓÀÎ µðÆúÆ®·Î »ý°¢ÇÒ ¼öµµ ÀÖ´Ù. µðÆúÆ® °ªµé·Î GCC ¸¦ ÀÌ¿ëÇؼ
ÄÄÆÄÀÏµÈ ÆÑÅ°Áö°¡ ¼Â¾÷µÉ °ÍÀ̶ó¸é CFLAGS
ÀÇ µðÆúÆ® °ª¿¡´Ù
`-O' µµ ÇÔ²² Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.
CFLAGS
¸¦ ÄÄÆÄÀÏ·¯ ¿É¼ÇµéÀ» ´ã°í ÀÖ´Â
´Ù¸¥ º¯¼öµé µÚ¿¡, »ç¿ëÀÚ°¡ CFLAGS
¸¦ »ç¿ëÇؼ ´Ù¸¥ °ÍµéÀ»
¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖµµ·Ï, ÄÄÆÄÀÏ ¸í·ÉÀÇ ¸Ç¸¶Áö¸·¿¡ ³ÖÀÚ
CFLAGS
´Â C ÄÄÆÄÀÏ·¯ÀÇ ¸ðµç È£Ãâ¿¡¼ »ç¿ëµÇ¾î¾ß
ÇÑ´Ù. ÄÄÆÄÀÏÇÏ´Â °Í°ú ¸µÅ©¸¦ ÇÏ´Â °Í ¸ðµÎ¿¡¼.
¸ðµç Makefile Àº ¾î¶² ÆÄÀÏÀ» ½Ã½ºÅÛÀ¸·Î ¼³Ä¡ÇÏ´Â ±âº» ¸í·ÉÀÎ
INSTALL
º¯¼ö¸¦ Á¤ÀÇÇØ¾ß ÇÑ´Ù.
¸ðµç Makefile Àº INSTALL_PROGRAM
¿Í INSTALL_DATA
º¯¼öµéÀ» ¶ÇÇÑ Á¤ÀÇÇØ¾ß ÇÑ´Ù. (ÀÌµé °¢°¢¿¡ ´ëÇÑ µðÆúÆ®´Â
$(INSTALL)
À̾î¾ß ÇÑ´Ù.) ±×¸®°í ÀÌ·± º¯¼öµéÀ» ½ÇÇà ÆÄÀϵé°ú
ºñ½ÇÇà ÆÄÀÏµé °¢°¢À» À§ÇÑ ½ÇÁ¦ ¼³Ä¡¸¦ À§ÇÑ
¸í·Éµé·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ·± º¯¼öµéÀ» ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏÀÚ:
$(INSTALL_PROGRAM) foo $(bindir)/foo $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
Ç×»ó ¼³Ä¡ ¸í·ÉµéÀÇ µÎ¹ø° ¸Å°³º¯¼ö·Î½á ÆÄÀÏ À̸§À» »ç¿ëÇÏ°í µð·ºÅ丮 À̸§À» »ç¿ëÇÏÁö ¸»ÀÚ. ¼³Ä¡µÇ´Â °¢ ÆÄÀÏ¿¡ ´ëÇؼ ºÐ¸®µÈ ¸í·ÉÀ» »ç¿ëÇÏÀÚ.
¼³Ä¡ µð·ºÅ丮µéÀº Ç×»ó º¯¼öµé¿¡ ±× À̸§À» °®°í ÀÖ¾î¼ ºñÇ¥ÁØ À§Ä¡¿¡ ¼³Ä¡ÇÏ´Â °ÍÀÌ ½¬¿ö¾ß ÇÑ´Ù. ÀÌ·± º¯¼öµéÀ» À§ÇÑ Ç¥ÁØ À̸§µéÀÌ ¾Æ·¡¿¡ ¼³¸íµÉ °ÍÀÌ´Ù. ±×µéÀº Ç¥ÁØ ÆÄÀÏ ½Ã½ºÅÛ ·¹À̾ƿô¿¡ ±â¹ÝÇÑ´Ù: ÀÌ°ÍÀÌ º¯Á¾µéÀÌ SVR4, 4.4BSD, Linux, Ultrix v4, ±×¸®°í ´Ù¸¥ Çö´ë ¿î¿µÃ¼Á¦µé¿¡¼ »ç¿ëµÈ´Ù.
ÀÌ·± µÎ º¯¼öµéÀº ¼³Ä¡¸¦ À§ÇÑ ·çÆ® µð·ºÅ丮¸¦ ¼³Á¤ÇÑ´Ù. ¸ðµç ´Ù¸¥ ¼³Ä¡ µð·ºÅ丮µéÀº À̵é Áß ÇϳªÀÇ ¼ºêµð·ºÅ丮À̾î¾ß ÇÏ°í ¾î¶² °Íµµ ÀÌ·± µÎ µð·ºÅ丮¿¡ Á÷Á¢ ¼³Ä¡µÇ¾î¼´Â ¾ÈµÈ´Ù.
prefix
ÀÇ µðÆúÆ® °ªÀº `/usr/local' À̾î¾ß
ÇÑ´Ù. ¿ÏÀüÇÑ GNU ½Ã½ºÅÛÀ» ¼³Ä¡ÇÒ ¶§, prefix ´Â ºó °ÍÀÌ µÉ °ÍÀÌ°í
`/usr' ÀÌ `/' ¿¡ ½Éº¼¸¯ ¸µÅ©°¡ µÉ °ÍÀÌ´Ù. (Autoconf ¸¦
»ç¿ëÇÑ´Ù¸é ÀÌ°ÍÀ» `@prefix@' ¿¡ ½á³ÖÀ¸¸é µÈ´Ù.)
exec_prefix
ÀÇ µðÆúÆ® °ªÀº $(prefix)
À̾î¾ß
ÇÑ´Ù. (Autoconf ¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é ÀÌ°ÍÀ» `@exec_prefix@' ·Î
¾²ÀÚ.)
ÀϹÝÀûÀ¸·Î $(exec_prefix)
´Â ±â°è-Á¾¼ÓÀûÀÎ ÆÄÀϵé(½ÇÇà ÆÄÀϵé°ú
¼ºê·çƾ ¶óÀ̺귯¸®µé°ú °°Àº)À» ´ã°í ÀÖ´Â µð·ºÅ丮µé¿¡
»ç¿ëµÈ´Ù. ¹Ý¸é¿¡ $(prefix)
´Â ´Ù¸¥ µð·ºÅ丮µé¿¡ »ç¿ëµÈ´Ù.
½ÇÇà ÇÁ·Î±×·¥µéÀº ´ÙÀ½°ú °°Àº µð·ºÅ丮µé ÁßÀÇ Çϳª¿¡ ¼³Ä¡µÈ´Ù.
½ÇÇà µ¿¾È ÇÁ·Î±×·¥¿¡ ÀÇÇؼ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ÆÄÀϵéÀº ´ÙÀ½°ú °°Àº µÎ °¡Áö ¹æ¹ýÀ¸·Î ºÐ·ùµÉ ¼ö ÀÖ´Ù.
ÀÌ°ÍÀº ¿©¼¸°¡Áö ´Ù¸¥ °¡´É¼ºµéÀ» ¸¸µç´Ù. ±×·¯³ª ¿ÀºêÁ§Æ® ÆÄÀϵé°ú ¶óÀ̺귯¸®µéÀ» Á¦¿ÜÇÏ°í, ¾ÆÅ°ÅØÃÄ-Á¾¼ÓÀûÀÎ ÆÄÀϵéÀ» »ç¿ëÇÏÁö ¾Ê±â¸¦ ±ÇÇÏ°í ½Í´Ù. µ¥ÀÌÅÍ ÆÄÀϵéÀ» ¾ÆÅ°ÅØÃÄ-µ¶¸³À¸·Î ¸¸µå´Â °ÍÀÌ ´õ ¼±¸íÇÏ´Ù. ±×¸®°í ÀÌ·¸°Ô ÇÏ´Â °ÍÀº ÀϹÝÀûÀ¸·Î ±×¸® ¾î·ÆÁö ¾Ê´Ù.
±×·¡¼ Makefile µéÀÌ µð·ºÅ丮µéÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëÇÏ¿©¾ß ÇÒ º¯¼öµéÀ» ´ÙÀ½¿¡ ³õ¾Ò´Ù:
libdir
´Â º¸Åë `/usr/local/lib' À̾î¾ß
ÇÏÁö¸¸ ÀÌ°ÍÀ» `$(exec_prefix)/lib' ·Î ¾²ÀÚ. (Autoconf ¸¦ »ç¿ëÇÏ°í
ÀÖ´Ù¸é ÀÌ°ÍÀ» `@libdir@' ·Î ¾²ÀÚ.)
lispdir='${datadir}/emacs/site-lisp' AC_SUBST(lispdir)
includedir
¿¡ ±×¸®°í Çϳª´Â oldincludedir
¿¡
¼³Ä¡ÇÔÀ¸·Î½á µÎ °÷¿¡ ¼³Ä¡ÇØ¾ß ÇÑ´Ù.
oldincludedir
ÀÌ ºó °ªÀΰ¡ ¾Æ´Ñ°¡¸¦ üũÇؾß
ÇÑ´Ù. ±×·¸´Ù¸é ±×µéÀº ÀÌ°ÍÀ» »ç¿ëÇÏ·Á°í ½ÃµµÇؼ´Â ¾ÈµÈ´Ù; ±×µéÀº Çì´õ
ÆÄÀϵéÀÇ µÎ¹ø°¼³Ä¡¸¦ Ãë¼ÒÇØ¾ß ÇÒ °ÍÀÌ´Ù.
Çì´õ°¡ µ¿ÀÏÇÑ ÆÑÅ°Áö·ÎºÎÅÍ ¿Â °ÍÀÌ ¾Æ´Ï¶ó¸é ÀÌ µð·ºÅ丮¿¡ ±âÁ¸¿¡ ÀÖ´ø
Çì´õ¸¦ ±³Ã¼Çؼ´Â ¾ÈµÈ´Ù. ±×·¡¼ Foo ¶ó´Â ÆÑÅ°Áö°¡ Çì´õ ÆÄÀÏ
`foo.h' ¸¦ Á¦°øÇÑ´Ù¸é, (1) `foo.h' ÆÄÀÏÀÌ °Å±â¿¡ ¾ø°Å³ª (2)
`foo.h' ÀÌ Á¸ÀçÇÏÁö¸¸ Foo ÆÑÅ°Áö·ÎºÎÅÍ ¿Â °ÍÀ̶ó¸é,
oldincludedir
µð·ºÅ丮¿¡ ±× Çì´õÆÄÀÏÀ» ¼³Ä¡ÇØ¾ß ÇÑ´Ù.
`foo.h' ÀÌ Foo ÆÑÅ°Áö·ÎºÎÅÍ ¿Â °ÍÀΰ¡¸¦ ¾Ë¾Æ³»·Á¸é ¸ÅÁ÷ ¹®ÀÚ¿À»
±× ÆÄÀÏ ¾È¿¡ ³ÖÀÚ---ÁÖ¼®ÀÇ ÀϺÎ---±×¸®°í ±× ¹®ÀÚ¿À» grep
ÇÑ´Ù.
À¯´Ð½º-½ºÅ¸ÀÏ ¸Ç ÆäÀÌÁöµéÀº ´ÙÀ½°ú °°Àº °Í ÁßÀÇ Çϳª·Î ¼³Ä¡µÈ´Ù:
±×¸®°í ¸¶Áö¸·À¸·Î ´ÙÀ½°ú °°Àº º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù:
configure
½© ½ºÅ©¸³Æ®¿¡ ÀÇÇؼ »ðÀԵȴÙ. (Autoconf ¸¦ »ç¿ëÇÏ°í
ÀÖ´Ù¸é `srcdir = @srcdir@' ¸¦ ¾²ÀÚ.)
¿¹¸¦ µé¾î¼:
# Common prefix for installation directories. # NOTE: This directory must exist when you start the install. prefix = /usr/local exec_prefix = $(prefix) # Where to put the executable for the command `gcc'. bindir = $(exec_prefix)/bin # Where to put the directories used by the compiler. libexecdir = $(exec_prefix)/libexec # Where to put the Info files. infodir = $(prefix)/info
¸¹Àº °³¼öÀÇ ÆÄÀϵéÀ» Ç¥ÁØ »ç¿ëÀÚ-ÁöÁ¤ µð·ºÅ丮µé ÁßÀÇ Çϳª·Î
¼³Ä¡ÇÑ´Ù¸é ±×°ÍµéÀ» ±× ÇÁ·Î±×·¥¸¸ÀÇ ¼ºêµð·ºÅ丮·Î ¹¾î ÁÖ´Â °ÍÀÌ
À¯¿ëÇÒ °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÑ´Ù¸é ÀÌ·± ¼ºêµð·ºÅ丮µéÀ» ¸¸µé±â À§ÇÑ
install
±ÔÄ¢À» ÀÛ¼ºÇØ¾ß ÇÒ °ÍÀÌ´Ù.
»ç¿ëÀÚ°¡ À§¿¡ ³ª¿Â º¯¼öµé ÁßÀÇ ÇϳªÀÇ °ªÀ¸·Î ¼ºêµð·ºÅ丮 À̸§À» Æ÷ÇÔÇÒ °ÍÀ̶ó°í ±â´ëÇÏÁö ¸»ÀÚ. ¼³Ä¡ µð·ºÅ丮µéÀ» À§ÇÑ ÀÏ°üµÈ º¯¼ö À̸§µéÀ» °¡Áú·Á´Â »ý°¢Àº, »ç¿ëÀÚ°¡ ¿©·¯ ¼·Î ´Ù¸¥ GNU ÆÑÅ°Áöµé¿¡ ´ëÇؼ Á¤È®È÷ µ¿ÀÏ °ªµéÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇؼÀÌ´Ù. ÀÌ°ÍÀÌ À¯¿ëÇϱâ À§Çؼ´Â »ç¿ëÀÚ°¡ ±×·¸°Ô ÇÒ ¶§ ¸ðµç ÆÑÅ°ÁöµéÀÌ Çö¸íÇÏ°Ô ÀÛµ¿Çϵµ·Ï Àß ¼³°èµÇ¾î¾ß ÇÑ´Ù.
¸ðµç GNU ÇÁ·Î±×·¥µéÀº ´ÙÀ½°ú °°Àº Ÿ°ÙµéÀ» ±×µéÀÇ makefile ¾È¿¡ °¡Á®¾ß ÇÑ´Ù:
install-strip
¸¦ »ç¿ëÇÒ ¼öÀÖ´Ù.
°¡´ÉÇÏ´Ù¸é install
Ÿ°Ù ±ÔÄ¢ÀÌ ÇÁ·Î±×·¥ÀÌ ºôµåµÇ´Â
µð·ºÅ丮¿¡¼, `make all' ÀÌ ¹æ±Ý ¼öÇàµÇ¾ú´Ù¸é,
¾Æ¹«°Íµµ º¯°æÇÏÁö ¾Êµµ·Ï ÀÛ¼ºÇÏÀÚ. ÀÌ°ÍÀº ÇÁ·Î±×·¥À» ÇÑ À¯Àú°¡
ºôµåÇÏ°í ±×°ÍÀ» ´Ù¸¥ À¯Àú°¡ ¼³Ä¡ÇÏ´Â °æ¿ì¿¡ ÁÁ´Ù.
¸í·ÉµéÀº ÆÄÀϵéÀÌ ¼³Ä¡µÉ ¸ðµç µð·ºÅ丮µéÀ» ±×µéÀÌ ¾Õ¼ Á¸ÀçÇÏÁö
¾Ê´Â´Ù¸é »ý¼ºÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº prefix
¿Í exec_prefix
º¯¼öµéÀÇ °©µé·Î ÁöÁ¤µÈ µð·ºÅ丮µé°ú ÇÊ¿äÇÑ ¸ðµç ¼ºêµð·ºÅ丮µéÀ»
Æ÷ÇÔÇÑ´Ù. ÀÌ·¸°Ô Çϱâ À§ÇÑ ÇÑ°¡Áö ¹æ¹ýÀº ¾Æ·¡¿¡ ¼³¸íµÈ
installdirs
Ÿ°ÙÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
¸Ç ÆäÀÌÁö¸¦ ¼³Ä¡Çϱâ À§ÇÑ ÀÓÀÇÀÇ ¸í·É ¾Õ¿¡´Ù `-' ¸¦ »ç¿ëÇؼ
make
°¡ ÀÓÀÇÀÇ ¿¡·¯µéÀ» ¹«½ÃÇϵµ·Ï ÇÏÀÚ. ÀÌ°ÍÀº ¼³Ä¡µÈ À¯´Ð½º
¸Ç ÆäÀÌÁö ¹®¼ ½Ã½ºÅÛÀ» °¡ÁöÁö ¾Ê´Â ½Ã½ºÅÛµéÀÌ ÀÖ´Â °æ¿ì¸¦ À§ÇÑ
°ÍÀÌ´Ù.
Info ÆÄÀϵéÀ» ¼³Ä¡ÇÏ´Â ¹æ¹ýÀº À̵éÀ» `$(infodir)' ¿¡´Ù
$(INSTALL_DATA)
·Î (see section ¸í·ÉÀ» ÁöÁ¤Çϱâ À§ÇÑ º¯¼ö(Variables for Specifying Commands)) º¹»çÇÏ°í
install-info
ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÑ´Ù¸é ÀÌ°ÍÀ» ½ÇÇàÇÏ´Â
°ÍÀÌ´Ù. install-info
´Â Info `dir' ÆÄÀÏÀ» ÆíÁýÇؼ ÁÖ¾îÁø
Info ÆÄÀÏÀ» À§ÇÑ ¸Þ´º ¿£Æ®¸®¸¦ Ãß°¡Çϰųª °»½ÅÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù;
ÀÌ°ÍÀº Texinfo ÆÑÅ°ÁöÀÇ ÀϺÎÀÌ´Ù. ´ÙÀ½Àº Info ÆÄÀÏÀ» ¼³Ä¡ÇÏ´Â ¿¹Á¦
±ÔÄ¢ÀÌ´Ù:
$(infodir)/foo.info: foo.info $(POST_INSTALL) # There may be a newer info file in . than in srcdir. -if test -f foo.info; then d=.; \ else d=$(srcdir); fi; \ $(INSTALL_DATA) $$d/foo.info $@; \ # Run install-info only if it exists. # Use `if' instead of just prepending `-' to the # line so we notice real errors from install-info. # We use `$(SHELL) -c' because some shells do not # fail gracefully when there is an unknown command. if $(SHELL) -c 'install-info --version' \ >/dev/null 2>&1; then \ install-info --dir-file=$(infodir)/dir \ $(infodir)/foo.info; \ else true; fi
install
Ÿ°ÙÀ» ÀÛ¼ºÇÒ ¶§, ¸ðµç ¸í·ÉµéÀ» ´ÙÀ½°ú °°Àº ¼¼ ¹üÁÖµé·Î
ºÐ·ùÇØ¾ß ÇÑ´Ù: ÀÏ¹Ý ¸í·É, ¼³Ä¡-ÀÌÀü(pre-installation) ¸í·É,
±×¸®°í ¼³Ä¡-ÀÌÈÄ(post-installation) ¸í·É. See section ¼³Ä¡ ¸í·É ¹üÁÖ(Install Command Categories).
install
¿Í °°Áö¸¸ ½ÇÇà ÆÄÀϵéÀ» ¼³Ä¡ÇÒ ¶§ À̵éÀÇ ½É¹úµéÀ»
Á¦°ÅÇÑ´Ù. ¸¹Àº °æ¿ì¿¡ ÀÌ Å¸°ÙÀÇ Á¤ÀÇ´Â ´ÙÀ½Ã³·³ ¾ÆÁÖ ´Ü¼øÇÒ ¼ö ÀÖ´Ù:
install-strip: $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ installº¸Åë ÇÁ·Î±×·¥ÀÌ ¹ö±×°¡ ¾ø´Ù´Â °ÍÀ» È®½ÅÇÏÁö ¸øÇÑ´Ù¸é ½ÇÇà ÆÄÀÏÀÇ ½É¹úµéÀ» Á¦°ÅÇÏ´Â °ÍÀ» ±ÇÀåÇÏ°í ½ÍÁö ¾Ê´Ù. ±×·¯³ª ¹ö±×°¡ ÀÖÀ» °æ¿ì¸¦ ´ëºñÇؼ ½É¹úµéÀ» Á¦°ÅÇÏÁö ¾Ê´Â ½ÇÇàÆÄÀÏÀ» ¾îµò°¡¿¡ ÀúÀåÇÏ°í ½ÇÁ¦ ½ÇÇà ÆÄÀÏÀº ½É¹úµéÀ» Á¦°ÅÇؼ ¼³Ä¡ÇÏ´Â °Íµµ ÇÕ¸®ÀûÀÏ ¼ö ÀÖ´Ù.
distclean
·Î »èÁ¦µÇ´Â ¸ðµç °Í°ú
±× ¿ÜÀÇ °ÍµéÀ» Æ÷ÇÔÇÑ´Ù: Bison ¿¡ ÀÇÇؼ ¸¸µé¾îÁø C ¼Ò½º ÆÄÀÏ,
ÅÂ±× Å×À̺í, Info ÆÄÀϵé, ±âŸ µîµî.
¿ì¸®°¡ "°ÅÀÇ ¸ðµç°Í" À̶ó°í ¸»ÇÑ ÀÌÀ¯´Â ¸í·É `make
maintainer-clean' ¸¦ ½ÇÇàÇÏ´Â °ÍÀº `configure' °¡ Makefile ÀÇ ÇÑ
±ÔÄ¢À» »ç¿ëÇؼ ¸¸µé¾îÁú ¼ö ÀÖ´Ù°í ÇÏ´õ¶óµµ, `configure' ¸¦
Áö¿ìÁö ¾ÊÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù. Á» ´õ ÀϹÝÀûÀ¸·Î `make
maintainer-clean' ´Â `configure' ¸¦ ½ÇÇàÇϱâ À§Çؼ Á¸ÀçÇØ¾ß ÇÏ´Â
¾î¶² °Íµµ Áö¿ìÁö ¾Ê°í ÇÁ·Î±×·¥À» ºôµåÇϱ⠽ÃÀÛÇÏ´Â ¾î¶² °Íµµ Áö¿ìÁö
¾Ê´Â´Ù. ÀÌ°ÍÀº À¯ÀÏÇÑ ¿¹¿ÜÀÌ´Ù; maintainer-clean
´Â ´Ù½Ã ºôµåµÉ
¼ö ¾ø´Â ´Ù¸¥ ¸ðµç °ÍµéÀ» »èÁ¦ÇÒ °ÍÀÌ´Ù.
`maintainer-clean' Ÿ°ÙÀº ÀÏ¹Ý »ç¿ëÀڵ鿡 ÀÇÇؼ°¡ ¾Æ´Ï¶ó
ÆÑÅ°ÁöÀÇ °ü¸®ÀÚ¿¡ ÀÇÇؼ »ç¿ëµÉ °ÍÀ¸·Î
°í¾ÈµÈ °ÍÀÌ´Ù. `make maintainer-clean' °¡ »èÁ¦ÇÑ ÆÄÀÏµé ¸î°¡Áö¸¦
Àç°ÇÃàÇÏ·Á¸é Ư¼öÇÑ ÅøµéÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ÆÄÀϵéÀº ÀϹÝÀûÀ¸·Î
¹èÆ÷ÆÇ ¾È¿¡ Æ÷ÇԵDZ⠶§¹®¿¡ ¿ì¸®´Â ±×µéÀÌ ´Ù½Ã ¸¸µé¾îÁö±â ½±µµ·Ï
½Å°æ¾²Áö ¾Ê´Â´Ù. Àüü ¹èÆ÷ÆÇÀ» ´Ù½Ã unpack ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù°í
»ý°¢µÇ´õ¶óµµ ¿ì¸®¸¦ ¿ø¸ÁÇÏÁö ¸»¶ó.
»ç¿ëÀÚµéÀÌ ÀÌ·± °ÍÀ» ¾Ëµµ·Ï Çϱâ À§Çؼ Ư¼ö maintainer-clean
Ÿ°ÙÀÇ ¸í·ÉµéÀº ´ÙÀ½°ú °°Àº µÎ ¶óÀÎÀ¸·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù.
@echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.'
info: foo.info foo.info: foo.texi chap1.texi chap2.texi $(MAKEINFO) $(srcdir)/foo.texiº¯¼ö
MAKEINFO
´Â ¹Ýµå½Ã Makefile ¾È¿¡¼ Á¤ÀÇÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº
makeinfo
ÇÁ·Î±×·¥À» ½ÇÇàÇØ¾ß Çϸç, ÀÌ°ÍÀº Texinfo ¹èÆ÷ÆÇÀÇ
ÀϺÎÀÌ´Ù.
ÀϹÝÀûÀ¸·Î GNU ¹èÆ÷ÆÇÀº Info ÆÄÀϵéÀÌ µû¶ó ¿Â´Ù. Áï Info ÆÄÀϵéÀÌ ¼Ò½º
µð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±×·¯¹Ç·Î info ÆÄÀÏÀ» À§ÇÑ Make
±ÔÄ¢Àº ±×°ÍÀ» ¼Ò½º µð·ºÅ丮¿¡¼ °»½ÅÇØ¾ß ÇÒ °ÍÀÌ´Ù. »ç¿ëÀÚ°¡ ÆÑÅ°Áö¸¦
ºôµåÇÒ ¶§ ÀϹÝÀûÀ¸·Î Make ´Â Info ÆÄÀϵéÀ» °»½ÅÇÏÁö ¾ÊÀ»°ÍÀÌ´Ù. ¿Ö³Ä¸é
±×µéÀÌ ÀÌ¹Ì °»½ÅµÇ¾úÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù.
dvi: foo.dvi foo.dvi: foo.texi chap1.texi chap2.texi $(TEXI2DVI) $(srcdir)/foo.texi¹Ýµå½Ã Makefile ¾È¿¡
TEXI2DVI
º¯¼ö¸¦ Á¤ÀÇÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº
texi2dvi
¸¦ ¹Ýµå½Ã ½ÇÇàÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº Texinfo ¹èÆ÷ÆÇÀÇ
ÀϺΠ(texi2dvi
´Â TeX ¸¦ »ç¿ëÇؼ Æ÷¸äÆÃÀÇ ½ÇÁ¦
ÀÛ¾÷À» ¼öÇàÇÑ´Ù. TeX ´Â Texinfo ¿Í ÇÔ²² ¹èÆ÷µÇÁö ¾Ê´Â´Ù) ÀÌ´Ù. ¶Ç´Â,
´ÜÁö Á¾¼Ó¹°µé¸¸ ½á¼ GNU make
°¡ ±× ¸í·ÉÀ» Á¦°øÇϵµ·Ï ÇÏÀÚ.
ln
À̳ª cp
¸¦ »ç¿ëÇؼ ÀûÀýÇÑ ÆÄÀϵéÀ» ±×
µð·ºÅ丮 ¾ÈÀ¸·Î ¼³Ä¡ÇÏ°í, ±×¸®°í ³ª¼ ±× ¼ºêµð·ºÅ丮¸¦ tar
ÇÏ´Â °ÍÀÌ´Ù.
±× tar ÆÄÀÏÀ» gzip
À¸·Î ¾ÐÃàÇÏÀÚ. ¿¹¸¦ µé¾î¼ GCC ¹öÀü 1.40 À»
À§ÇÑ ½ÇÁ¦ ¹èÆ÷ÆÇ ÆÄÀÏÀº `gcc-1.40.tar.gz' ÀÌ µÉ °ÍÀÌ´Ù.
dist
Ÿ°ÙÀº, ¹èÆ÷ÆÇ¿¡¼ ±×µéÀÌ °»½ÅµÈ °ÍÀ̶ó´Â °ÍÀ» È®½ÇÇÏ°Ô
Çϱâ À§Çؼ, ¹Ýµå½Ã ¸í½ÃÀûÀ¸·Î ¹èÆ÷ÆÇ¿¡ ÀÖ´Â ¸ðµç ¼Ò½º°¡ ¾Æ´Ñ
ÆÄÀϵ鿡 ÀÇÁ¸ÇØ¾ß ÇÑ´Ù.
See section `Making Releases' in GNU Coding Standards.
´ÙÀ½ Ÿ°ÙµéÀº °ü·ÊÀûÀÎ À̸§µé·Î Á¦¾ÈµÈ °ÍÀÌ´Ù.
installcheck
installdirs
# Make sure all installation directories (e.g. $(bindir)) # actually exist by making them if necessary. installdirs: mkinstalldirs $(srcdir)/mkinstalldirs $(bindir) $(datadir) \ $(libdir) $(infodir) \ $(mandir)ÀÌ ±ÔÄ¢Àº ÄÄÆÄÀÏÀÌ ¼öÇàµÈ µð·ºÅ丮µéÀ» º¯°æÇؼ´Â ¾ÈµÈ´Ù. ÀÌ°ÍÀº ¼³Ä¡ µð·ºÅ丮µéÀ» »ý¼ºÇÏ´Â Àϸ¸ ÇØ¾ß ÇÑ´Ù.
install
Ÿ°ÙÀ» ÀÛ¼ºÇÒ ¶§, ¸ðµç ¸í·ÉµéÀ» ´ÙÀ½°ú °°Àº ¼¼°¡Áö
¹üÁÖ·Î ºÐ·ùÇØ¾ß ÇÑ´Ù: Á¤±ÔÀûÀÎ °Í, ¼³Ä¡-ÀÌÀü(pre-installation)
¸í·É¾îµé, ±×¸®°í ¼³Ä¡-ÀÌÈÄ(post-installation) ¸í·É¾îµé.
Á¤±Ô ¸í·É¾îµéÀº ÆÄÀϵéÀ» ±×µéÀÇ ÀûÀýÇÑ À§Ä¡¿¡ ¿Å±â°í, ±×µéÀÇ ¸ðµå¸¦ ¼³Á¤ÇÑ´Ù. ±×µéÀº À̵éÀÌ ¼ÓÇÑ ÆÑÅ°Áö·ÎºÎÅÍ ÀüüÀûÀ¸·Î ¿À´Â °ÍµéÀ» Á¦¿ÜÇÏ°í´Â ¾î¶² ÆÄÀϵ鵵 º¯°æÇÏÁö ¾Ê´Â´Ù.
¼³Ä¡-ÀÌÀü°ú ¼³Ä¡-ÀÌÈÄ ¸í·ÉµéÀº ´Ù¸¥ ÆÄÀϵéÀ» º¯°æÇÒ ¼öµµ ÀÖ´Ù; Ưº°È÷ ±×µéÀº ±Û·Î¹ú ¼³Á¤ ÆÄÀϵéÀ̳ª µ¥ÀÌÅÍ º£À̽ºµéÀ» ÆíÁýÇÒ ¼ö ÀÖ´Ù.
¼³Ä¡-ÀÌÀü ¸í·É¾îµéÀº ÀüÇüÀûÀ¸·Î Á¤±Ô ¸í·Éµé ÀÌÀü¿¡ ½ÇÇàµÇ°í, ¼³Ä¡-ÀÌÈÄ ¸í·É¾îµéÀº ÀüÇüÀûÀ¸·Î Á¤±Ô ¸í·É¾îµé ÀÌÈÄ¿¡ ½ÇÇàµÈ´Ù.
¼³Ä¡-ÈÄ ¸í·É¿¡ ´ëÇÑ ´ëºÎºÐÀÇ ÀϹÝÀûÀÎ »ç¿ëÀº install-info
¸¦
½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ÀϹÝÀûÀÎ ¸í·ÉÀ¸·Î ½ÇÇàµÉ ¼ö ¾ø´Ù. ¿Ö³Ä¸é
ÀÌ°ÍÀº ¼³Ä¡ÁßÀÎ ÆÑÅ°Áö·ÎºÎÅÍ ¿ÏÀüÈ÷ ±×¸®°í ÀÌ°ÍÀ¸·ÎºÎÅ͸¸ ¿Â °ÍÀÌ ¾Æ´Ñ
ÆÄÀÏ(Info µð·ºÅ丮)À» º¯°æÇϱ⠶§¹®ÀÌ´Ù. ÆÑÅ°ÁöÀÇ Info ÆÄÀϵéÀ»
¼³Ä¡ÇÏ´Â ÀÏ¹Ý ¸í·É µÚ¿¡ ¼öÇàµÇ¾î¾ß Çϱ⠶§¹®¿¡ ÀÌ°ÍÀº ¼³Ä¡-ÀÌÈÄ
¸í·ÉÀÌ´Ù.
´ëºÎºÐÀÇ ÇÁ·Î±×·¥µéÀº ¾î¶² ¼³Ä¡-ÀÌÀü ¸í·ÉµéÀ» ÇÊ¿ä·ÎÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ÇÊ¿äÇÒ ¶§¸¦ ´ëºñÇؼ ±× ±â´ÉÀ» °¡Áö°í ÀÖ´Ù.
install
±ÔÄ¢¿¡ ÀÖ´Â ¸í·ÉµéÀ» ÀÌ·± ¼¼°¡Áö ¹üÁÖµé·Î ±¸ºÐÇϱâ
À§Çؼ ±×µé »çÀÌ¿¡ ¹üÁÖ ¶óÀÎ(category lines) ¸¦ »ðÀÔÇÏÀÚ. ¹üÁÖ
¶óÀÎÀº ±× µÚ¿¡ ¿À´Â ¸í·Éµé¿¡ ´ëÇÑ ¹üÁÖ¸¦ ÁöÁ¤ÇÑ´Ù.
¹üÁÖ ¶óÀÎÀº ÇϳªÀÇ ÅÇ°ú ƯÁ¤ Make º¯¼ö¿¡ ´ëÇÑ ÂüÁ¶, ±×¸®°í ¸¶Áö¸·¿¡ ¿É¼ÇÀÎ ÁÖ¼®À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â º¯¼öµéÀº ¼¼°³ ÀÖÀ¸¸ç ÀÌµé °¢°¢Àº °¢ ¹üÁÖ¸¦ À§ÇÑ °ÍÀÌ´Ù; º¯¼ö À̸§ÀÌ ¹üÁÖ¸¦ ÁöÁ¤ÇÑ´Ù. ¹üÁÖ ¶óÀεéÀº ÀϹÝÀûÀÎ ½ÇÇà¿¡¼´Â ¾Æ¹«·± ÀÛµ¿µµ ÇÏÁö ¾Ê´Â´Ù. ¿Ö³Ä¸é ÀÌ·± ¼¼ Make º¯¼öµéÀº ÀϹÝÀûÀ¸·Î Á¤ÀǵÇÁö ¾Ê±â ¶§¹®ÀÌ´Ù(±×¸®°í ¿©·¯ºÐÀº ±×°ÍµéÀ» makefile ¾È¿¡¼ Á¤ÀÇÇؼ´Â ¾ÈµÈ´Ù).
´ÙÀ½Àº °¡´ÉÇÑ ¼¼°¡Áö ¹üÁÖ ¶óÀεéÀ̸ç ÀÌµé °¢°¢Àº ±×°ÍÀÌ ÀǹÌÇÏ´Â ¹Ù¸¦ ¼³¸íÇÏ´Â ÁÖ¼®À» ´Þ°í ÀÖ´Ù:
$(PRE_INSTALL) # Pre-install commands follow. $(POST_INSTALL) # Post-install commands follow. $(NORMAL_INSTALL) # Normal commands follow.
install
±ÔÄ¢ÀÇ Ã³À½¿¡ ¹üÁÖ ¶óÀÎÀ» ¾²Áö ¾Ê´Â´Ù¸é ¸ðµç
¸í·ÉµéÀº ù¹ø° ¹üÁÖ ¶óÀÎ ÀÌÀü±îÁö ÀϹÝÀ¸·Î ±¸ºÐµÈ´Ù. ¹üÁÖ ¶óÀεéÀ» ÀüÇô
»ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ¸ðµç ¸í·ÉµéÀÌ ÀϹÝÀ¸·Î ±¸ºÐµÈ´Ù.
´ÙÀ½ÀÌ uninstall
¿¡ ´ëÇÑ ¹üÁÖ ¶óÀεéÀÌ´Ù:
$(PRE_UNINSTALL) # Pre-uninstall commands follow. $(POST_UNINSTALL) # Post-uninstall commands follow. $(NORMAL_UNINSTALL) # Normal commands follow.
ÀüÇüÀûÀ¸·Î ¼³Ä¡-ÀÌÀü ¸í·ÉÀº Info µð·ºÅ丮·ÎºÎÅÍ Ç׸ñµéÀ» Áö¿ì´Â ÀÏÀ» ÇÏ´Â µ¥ »ç¿ëµÈ´Ù.
install
¶Ç´Â uninstall
Ÿ°ÙÀÌ ¼³Ä¡ÀÇ ¼ºê·çƾµéó·³
ÀÛµ¿ÇÏ´Â Á¾¼Ó¹°µéÀ» °¡Áö°í ÀÖ´Ù¸é °¢ Á¾¼Ó¹°ÀÇ ¸í·ÉµéÀ» ¹üÁÖ
¶óÀÎÀ¸·Î ½ÃÀÛÇØ¾ß ÇÏ°í ¸ÞÀΠŸ°ÙÀÇ ¸í·Éµéµµ ¹üÁÖ ¶óÀÎÀ¸·Î ½ÃÀÛÇؾß
ÇÑ´Ù. ÀÌ·±½ÄÀ¸·Î ¾î¶² Á¾¼Ó¹°µéÀÌ ½ÇÁ¦·Î ½ÇÇàµÇµçÁö
»ó°ü¾øÀÌ, Á¤È®ÇÑ ¹üÁ־ȿ¡ ³õ¿© ÀÖ´Ù´Â °ÍÀ» º¸ÀåÇÒ ¼ö ÀÖ´Ù.
¼³Ä¡-ÀÌÀü ¹× ¼³Ä¡-ÀÌÈÄ ¸í·ÉµéÀº ´ÙÀ½°ú °°Àº °ÍµéÀ» Á¦¿ÜÇÑ ÇÁ·Î±×·¥µéÀ» ½ÇÇàÇؼ´Â ¾ÈµÉ°ÍÀÌ´Ù:
[ basename bash cat chgrp chmod chown cmp cp dd diff echo egrep expand expr false fgrep find getopt grep gunzip gzip hostname install install-info kill ldconfig ln ls md5sum mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee test touch true uname xargs yes
ÀÌ·±½ÄÀ¸·Î ¸í·ÉµéÀ» ±¸ºÐÇÏ´Â ÀÌÀ¯´Â ¹ÙÀ̳ʸ® ÆÑÅ°Áö¸¦ ¸¸µé±â À§ÇؼÀÌ´Ù. ÀüÇüÀûÀ¸·Î ¹ÙÀ̳ʸ® ÆÑÅ°Áö´Â ¸ðµç ½ÇÇàÆÄÀϵé°ú ¼³Ä¡¿¡ ÇÊ¿äÇÑ ´Ù¸¥ ÆÄÀϵéÀ» ´ã°í ÀÖ°í, ÀÌ ¼³Ä¡¿¡ ÇÊ¿äÇÑ ÆÄÀϵéÀ» ¼³Ä¡ÇÏ´Â ÀÚ½ÅÀÇ ¹æ¹ýÀ» °®°í ÀÖ´Ù---±×·¡¼ ÀÌ°ÍÀº ÀϹÝÀûÀÎ ¼³Ä¡ ¸í·ÉµéÀÌ ÇÊ¿ä¾ø´Ù. ±×·¯³ª ¹ÙÀ̳ʸ® ÆÑÅ°Áö¸¦ ¼³Ä¡ÇÏ´Â °ÍÀº ¼³Ä¡-ÀÌÀü°ú ¼³Ä¡-ÀÌÈÄ ¸í·ÉµéÀ» ½ÇÇàÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
¹ÙÀ̳ʸ® ÆÑÅ°ÁöµéÀ» ºôµåÇÏ´Â ÇÁ·Î±×·¥µéÀº ¼³Ä¡-ÀÌÀü ¹× ¼³Ä¡-ÀÌÈÄ ¸í·ÉµéÀ» ÃßÃâÇÔÀ¸·Î½á ÀÛµ¿ÇÑ´Ù. ´ÙÀ½Àº ¼³Ä¡-ÀÌÀü ¸í·ÉµéÀ» ÃßÃâÇÏ´Â ÇÑ°¡Áö ¹æ¹ýÀÌ´Ù:
make -n install -o all \ PRE_INSTALL=pre-install \ POST_INSTALL=post-install \ NORMAL_INSTALL=normal-install \ | gawk -f pre-install.awk
¿©±â¿¡¼ `pre-install.awk' ´Â ´ÙÀ½°ú °°Àº °ÍÀ» ´ã°í ÀÖÀ» °ÍÀÌ´Ù:
$0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0} on {print $0} $0 ~ /^\t[ \t]*pre_install[ \t]*$/ {on = 1}
¼³Ä¡-ÀÌÀü ¸í·ÉµéÀÇ °á°ú ÆÄÀÏÀº, ¹ÙÀ̳ʸ® ÆÑÅ°Áö¸¦ ¼³Ä¡ÇÏ´Â ÀϺÎÀÎ ½© ½ºÅ©¸³Æ®·Î½á ½ÇÇàµÈ´Ù.
Go to the first, previous, next, last section, table of contents.