´ç½ÅÀÇ ¸Ó¸®°¡ ¼Ò¿ëµ¹ÀÌ¿¡¼ ¼Ò¿ëµ¹ÀÌ »çÀÌ·Î ¶°´Ù´Ï°Ô ÇÏ´Â ÇÁ·Î±×·¥ÀÎ,
zardoz
ÀÇ ÀÛ¼ºÀ» ³¡³Â´Ù°í °¡Á¤ÇÏÀÚ. ȣȯ¼º ³ôÀº ±¸Á¶¸¦ À§ÇØ
autoconf
¸¦ »ç¿ëÇßÁö¸¸ `Makefile.in' ÆÄÀϵéÀº ÀÓ±âÀÀº¯À¸·Î
¸¸µé¾ú´Ù. ÀÌ ÆÄÀϵéÀ» Æ°Æ°ÇÏ°Ô Çϱâ À§Çؼ, automake
·Î ´«À»
µ¹·È´Ù.
ù¹ø°·Î ÇÒ ÀÏÀº, `configure.in'¿¡ automake
°¡ ÇÊ¿ä·Î ÇÏ´Â
¸í·ÉÀ» Æ÷ÇÔ½ÃÅ°´Â °ÍÀÌ´Ù. °¡Àå °£´ÜÇÑ ¹æ¹ýÀº AC_INIT
¹Ù·Î ´ÙÀ½¿¡
AM_INIT_AUTOMAKE
¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù.
AM_INIT_AUTOMAKE(zardoz, 1.0)
ÀÌ ÇÁ·Î±×·¥Àº ¾î¶² º¹ÀâÇÑ ¿ä¼Òµµ ¾ø±â ¶§¹®¿¡ (¿¹¸¦ µé¾î,
gettext
¸¦ »ç¿ëÇÏÁöµµ ¾Ê°í, µ¿Àû ¶óÀ̺귯¸®¸¦ ¸¸µé·Á°í ÇÏÁöµµ
¾Ê´Â´Ù), ÀÌ ºÎºÐÀº ³¡¸¶ÃÆ´Ù. ¾ÆÁÖ ½±´Ù!
ÀÌÁ¦ `configure'¸¦ ´Ù½Ã ¸¸µé¾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ ÀÌ ÀÏÀ» ÇÏ·Á¸é,
autoconf
¿¡°Ô ´ç½ÅÀÌ »ç¿ëÁßÀÎ »õ·Î¿î ¸ÅÅ©·Î°¡ ¾îµðÀÖ´ÂÁö ¾Ë·ÁÁà¾ß
ÇÑ´Ù. °¡Àå ½¬¿î ¹æ¹ýÀº aclocal
ÇÁ·Î±×·¥À» »ç¿ëÇؼ
`aclocal.m4' ÆÄÀÏÀ» ¸¸µå´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷... ÀÌ ÇÁ·Î±×·¥À»
À§Çؼ ÀÌ¹Ì ¸î°³ÀÇ ¸ÅÅ©·Î¸¦ ¾î·Æ°Ô ÀÛ¼ºÇؼ, ÀÌ¹Ì `aclocal.m4'
ÆÄÀÏÀ» °¡Áö°í ÀÖÀ» ¼öµµ ÀÖ´Ù. aclocal
¿¡¼´Â ¼Õ¼ö ÀÛ¼ºÇÑ ¸ÅÅ©·Î¸¦
`acinclude.m4'¿¡ ³ÖÀ» ¼ö ÀÖ´Ù. ±×·¡¼, ´ÜÁö À̸§À» ¹Ù²Ù°í ½ÇÇàÇϸé
µÈ´Ù:
mv aclocal.m4 acinclude.m4 aclocal autoconf
ÀÌÁ¦ zardoz
¸¦ À§ÇÑ `Makefile.am'À» ÀÛ¼ºÇØ¾ß ÇÒ ¶§´Ù.
zardoz
´Â »ç¿ëÀÚ ÇÁ·Î±×·¥À̱⠶§¹®¿¡, ³ª¸ÓÁö ´Ù¸¥ »ç¿ëÀÚ
ÇÁ·Î±×·¥ÀÌ ÀÖ´Â µð·ºÅ丮¿¡ ¼³Ä¡ÇÏ°í ½Í´Ù. ¶Ç zardoz
´Â Texinfo
¹®¼µµ °¡Áö°í ÀÖ´Ù. `configure.in' ½ºÅ©¸³Æ®¿¡¼´Â
AC_REPLACE_FUNCS
¸¦ »ç¿ëÇϱ⠶§¹®¿¡, `@LIBOBJS@'¿Í ¸µÅ©Çؾß
ÇÑ´Ù. Áï ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇØ¾ß ÇÑ´Ù:
bin_PROGRAMS = zardoz zardoz_SOURCES = main.c head.c float.c vortex9.c gun.c zardoz_LDADD = @LIBOBJS@ info_TEXINFOS = zardoz.texi
ÀÌÁ¦ automake --add-missing
À» ½ÇÇàÇϸé, `Makefile.in'À»
¸¸µé°í, ÇÊ¿äÇÑ ¸î¸î º¸Á¶ ÆÄÀϵéÀ» °¡Á®¿Â´Ù. ±×¸®°í ´ç½ÅÀº Çس´Ù!
GNU hello´Â ±× ÀüÅëÀûÀÎ °£´ÜÇÔ°ú À¶Å뼺¶§¹®¿¡ À¯¸íÇÏ´Ù. ÀÌ ÀýÀº Automake°¡ GNU Hello ÆÐÅ°Áö¿¡ ¾î¶»°Ô »ç¿ëµÉ ¼ö ÀÖ´ÂÁö ¼³¸íÁØ´Ù. ¾Æ·¡ÀÇ ¿¹´Â °¡Àå ÃÖ½ÅÀÇ GNU Hello¿¡¼ ¿Â °ÍÀÌÁö¸¸, ÀúÀ۱ǿ¡ °üÇÑ ¾ð±Þ°ú °°ÀÌ ¸ÞÀÎÅ×À̳ʿ¡°Ô¸¸ ÇÊ¿äÇÑ ÄÚµå´Â ÀüºÎ »°´Ù.
¹°·Ð, GNU Hello´Â ¼Ò½º°¡ µÎÁÙ¹Û¿¡ ¾È µÇ´Â ÀüÅëÀûÀÎ Helloº¸´Ù ÈξÀ ´õ ±â´ÉÀÌ ¸¹´Ù. GNU Hello´Â ±¹Á¦È µÇ¾î ÀÖ°í, ¿É¼ÇÀ» ó¸®ÇÏ°í, ¸Å´º¾ó°ú Å×½ºÆ® ¸ðÀ½ÀÌ µé¾î ÀÖ´Ù. GNU Hello´Â deep ÆÐÅ°ÁöÀÌ´Ù.
¿©±â¿¡ GNU HelloÀÇ `configure.in'ÀÌ ÀÖ´Ù:
dnl Process this file with autoconf to produce a configure script. AC_INIT(src/hello.c) AM_INIT_AUTOMAKE(hello, 1.3.11) AM_CONFIG_HEADER(config.h) dnl Set of available languages. ALL_LINGUAS="de fr es ko nl no pl pt sl sv" dnl Checks for programs. AC_PROG_CC AC_ISC_POSIX dnl Checks for libraries. dnl Checks for header files. AC_STDC_HEADERS AC_HAVE_HEADERS(string.h fcntl.h sys/file.h sys/param.h) dnl Checks for library functions. AC_FUNC_ALLOCA dnl Check for st_blksize in struct stat AC_ST_BLKSIZE dnl internationalization macros AM_GNU_GETTEXT AC_OUTPUT([Makefile doc/Makefile intl/Makefile po/Makefile.in \ src/Makefile tests/Makefile tests/hello], [chmod +x tests/hello])
`AM_' ¸ÅÅ©·ÎµéÀº Automake°¡ (ȤÀº Gettext ¶óÀ̺귯¸®°¡) Á¦°øÇÏ´Â °ÍÀÌ´Ù; ³ª¸ÓÁö´Â Ç¥ÁØ Autoconf ¸ÅÅ©·ÎÀÌ´Ù.
°¡Àå À µð·ºÅ丮¿¡ ÀÖ´Â `Makefile.am'Àº:
EXTRA_DIST = BUGS ChangeLog.O SUBDIRS = doc intl po src tests
º¸½Ã´Ù½ÃÇÇ, ½ÇÁ¦ ÀÛ¾÷Àº ¼ºêµð·ºÅ丮¿¡¼ ÀϾÙ.
`po'¿Í `intl' µð·ºÅ丮´Â gettextize
¸¦ ½á¼ ÀÚµ¿À¸·Î
¸¸µé¾î Áø´Ù: ÀÌ°Í¿¡ ´ëÇؼ´Â ¿©±â¼ ¼³¸íÇÏÁö ¾Ê´Â´Ù.
`doc/Makefile.am'¿¡¼´Â:
info_TEXINFOS = hello.texi hello_TEXINFOS = gpl.texi
À̰͸¸ ÀÖÀ¸¸é ÃæºÐÈ÷ GNU Hello ¸Å´º¾óÀ» ¸¸µé°í, ¼³Ä¡ÇÏ°í, ±×¸®°í ¹èÆ÷ÇÏ´Â µ¥ ÃæºÐÇÏ´Ù.
´ÙÀ½Àº `tests/Makefile.am'ÀÌ´Ù:
TESTS = hello EXTRA_DIST = hello.in testdata
`hello' ½ºÅ©¸³Æ®´Â configure
°¡ ¸¸µé¾î ³½´Ù. ±×¸®°í ÀÌ
½ºÅ©¸³Æ®´Â À¯ÀÏÇÑ Å×½ºÆ®ÄÉÀ̽ºÀÌ´Ù. make check
°¡ ÀÌ Å×½ºÆ®¸¦
½ÇÇàÇÒ °ÍÀÌ´Ù.
½ÇÁ¦·Î ¸ðµç ÀÛ¾÷ÀÌ ÀϾ´Â `src/Makefile.am'À» º¸ÀÚ:
bin_PROGRAMS = hello hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h hello_LDADD = @INTLLIBS@ @ALLOCA@ localedir = $(datadir)/locale INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
¿©±â¿¡ ¶Ç´Ù¸¥, Æ®¸¯ÀÌ ´õ ¸¹ÀÌ »ç¿ëµÈ ¿¹Á¦°¡ ÀÖ´Ù. ÀÌ ¿¹Á¦¿¡¼´Â °°Àº
¼Ò½º ÆÄÀÏ(`etags.c')¿¡¼ ¾î¶»°Ô µÎ°³ÀÇ ÇÁ·Î±×·¥(ctags
¿Í
etags
)À» ¸¸µé¾î ³¾ ¼ö ÀÖ´ÂÁö ¾Ë¼ö ÀÖ´Ù. ¿©±â¼ ¾î·Á¿î ºÎºÐÀº
`etags.c'¸¦ °¢°¢ ÄÄÆÄÀÏÇÒ¶§ ´Ù¸¥ cpp
¿É¼ÇÀÌ ÇÊ¿äÇÏ´Ù´Â
°ÍÀÌ´Ù.
bin_PROGRAMS = etags ctags ctags_SOURCES = ctags_LDADD = ctags.o etags.o: etags.c $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags.o: etags.c $(COMPILE) -DCTAGS -o ctags.o -c etags.c
ctags_SOURCES
´Â °ªÀÌ ¾ø´Â º¯¼ö·Î Á¤Àǵȴٴ °Í¿¡
À¯ÀÇÇÏÀÚ---ÀÌ·¸°Ô Çϸé ÀÌ º¯¼öÀÇ °ªÀ¸·Î ¾î¶² ³»Æ÷ÀûÀÎ °ªÀÌ »ç¿ëµÇÁö
¾Ê´Â´Ù. ÇÏÁö¸¸, `etags.o'¿¡¼ etags
¸¦ ¸¸µå´Â °ÍÀº ³»Æ÷ÀûÀÎ
±ÔÄ¢ÀÌ´Ù.
¸µÅ© ¸í·É¿¡ `ctags.o'°¡ µé¾î°¡µµ·Ï Çϱâ À§ÇØ ctags_LDADD
°¡
¾²ÀδÙ. ÇÑÆí ctags_DEPENDENCIES
´Â Automake·Î ¸¸µé¾îÁø´Ù.
¸¸¾à ÄÄÆÄÀÏ·¯°¡ `-c'¿Í `-o' ¿É¼ÇÀ» µ¿½Ã¿¡ ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Ù¸é,
À§ÀÇ ·ê(rule)Àº µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ÀÌ°É °£´ÜÈ÷ °íÄ¡´Â ¹æ¹ýÀº °¡Â¥
ÀÇÁ¸¼ºÀ» Çϳª Ãß°¡½ÃÅ°´Â °ÍÀÌ´Ù (º´·ÄÀûÀ¸·Î make
½ÇÇàÇÒ¶§ ¹®Á¦¸¦
ÇÇÇϱâ À§Çؼ).
etags.o: etags.c ctags.o $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags.o: etags.c $(COMPILE) -DCTAGS -c etags.c && mv etags.o ctags.o
¶Ç, ¸¸¾à ANSI C ¹®¹ýÀ» ¾ø¾Ö´Â ±â´ÉÀ» »ç¿ëÇÑ´Ù¸é(see section ÀÚµ¿ ANSI¹®¹ý ¾ø¾Ö±â), ÀÌ ·êÀº µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù; ANSI C ¹®¹ýÀ» ¾ø¾Ö´Â ±â´É±îÁö Áö¿øÇÏ·Á¸é Á¶±Ý ´õ ÀÛ¾÷ÇØ¾ß ÇÑ´Ù:
etags._o: etags._c ctags.o $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags._o: etags._c $(COMPILE) -DCTAGS -c etags.c && mv etags._o ctags.o
Go to the first, previous, next, last section, table of contents.