8. 񃧯 template - configure.ac, Makefile.am

configure.ac, Makefile.am À» ÀÛ¼ºÇÒ¶§ ±âº»ÀûÀ¸·Î Àû¾î¾ßÇÏ´Â macro µîÀ» ¼³¸íÇϰڴÙ. À§ÀÇ Àüü È帧À» ÀÌÇØÇßÀ¸¸é Áö±ÝºÎÅÍÀÇ »çÇ×µéÀº Çѹø Àаí Áö³ªÃĵµ µÈ´Ù. ±×·¯³ª ±âº»ÀÎ ¸¸Å­ ÀÌ´ë·Î ¾²Áö ¾ÊÀ»°æ¿ì ÀüÇô ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. --;

8.1. configure.ac

configure.ac ¿¡¼­´Â check »çÇ×µéÀ» test ÇÏ´Â ÀϹÝÀûÀÎ ¼ø¼­°¡ Á¤ÇØÁ®ÀÖ´Ù. ÀÌ ¼ø¼­¸¦ µû¸£¸é¼­ ÇÊ¿äÇÑ »çÇ׵鸸 °Ë»çÇÏ¸é µÈ´Ù. ´ë·«ÀûÀÎ ¼ø¼­´Â

À§ÀÇ Ç׸ñµéÀº autoscan À» ÅëÇØ¼­ configure.scan À̶ó´Â ÆÄÀÏÀ» »ý¼ºÇÏ°Ô µÇ¸é ±×´ë·Î ³ª¿À°Ô µÈ´Ù. ÀÌ autoscan Àº configure.ac ÆÄÀÏÀÇ ÀÛ¼ºÀ» ½±°Ô ÇØÁÖ°íÀÚ ÇÏ´Â µµ±¸ÀÌ´Ù. Ç㳪 ¾ÆÁÖ ÀÚ¼¼ÇÑ °Í±îÁö Ãâ·ÂÀ» ÇØÁÖ°í ÇÊ¿ä¾ø´Â °ÍµéÀÌ ¸¹±â¶§¹®¿¡ configure.ac ´Â Á÷Á¢ ÀÛ¼ºÇϴ°ÍÀÌ ÁÁ´Ù°í »ý°¢µÈ´Ù. °£´ÜÈ÷ ¿¹¸¦ µé¾îº¸¸é

# Process this file with autoconf to produce a configure script.
AC_INIT(eostk, 1.0, sylee@inzen.com)
AM_INIT_AUTOMAKE(eostk, 1.0)
AM_CONFIG_HEADER(config.h:config.h.in)

# Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL

# Checks for libraries.
AC_CHECK_LIB(socket, connect)

# Checks for header files.
AC_HEADER_DIRENT

# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_UID_T
AC_TYPE_PID_T

# Checks for library functions.
AC_HEADER_STDC
AC_CHECK_FUNCS(strcpy bcopy)

# Finally, make output files
AC_CONFIG_FILES(
        Makefile
        solaris/Makefile
        linux/Makefile
)
AC_OUTPUT

¼øÀÌ µÉ¼öÀÖ´Ù. ÀÌ ¼ø¼­´ë·Î ÇÊ¿äÇÑ check »çÇ×À» Ãß°¡½Ãų¼öµµ ÀÖ°í ÇÊ¿ä¾ø´Â°ÍÀº Á¦¿Ü½Ãų¼öµµ ÀÖ´Ù.configure ½Ã¿¡ ¸ðµç ÇÊ¿äÇÑ Á¤º¸µéÀÌ ¼öÁýµÈ´Ù°í ÇÒ¶§ ÀÌÀÇ ÃʾÈÀÌ µÇ´Â configure.ac ÆÄÀÏÀÌ °¡Àå Áß¿äÇÏ´Ù°í ÇÒ¼öÀÖ´Ù.

8.2. Makefile.am

Makefile.am ÀÇ ±âÃÊ´Â À§¿¡¼­ ¼³¸íÇÑ °ÍÀ¸·Î ÃæºÐÇÏ´Ù°í »ý°¢ÇÑ´Ù. Ãß°¡ÀûÀ¸·Î ¾Ë°íÀÖÀ¸¸é ÁÁÀº »çÇ×µéÀ» Àû¾îº¸¸é check_ prefix ¿Í TESTS primary, install-exec-hook ÀÌ ÀÖ´Ù.

check_PROGRAMS = test1
test1_SOURCES = test1.c

check_SCRIPTS = test2

TESTS = test1 \
	test2


install-exec-hook :
	chmod +x INSTALL.solaris
	./INSTALL.solaris

ÀÌ·¸°Ô Çϸé test1 À̶ó´Â c ÇÁ·Î±×·¥°ú test2 ¶ó´Â script °¡ make check ½Ã ½ÇÇàµÉ TESTS ÆÄÀÏ·Î ÁöÁ¤ÀÌ µÇ°í make check ÀÌ ºÒ·ÁÁö±â Àü±îÁö´Â build µÇÁö ¾Ê´Â´Ù. make check ÀÌ ºÒ·¯Áö¸é test1 ÀÌ ºôµåµÇ°í test1 test2 ¼øÀ¸·Î ½ÇÇàµÈ´Ù. ±×·¯³ª install Àº µÇÁö ¾Ê´Â´Ù.

install-exec-hook À̶ó´Â target Àº make install À» Á¤»óÀûÀ¸·Î ½ÇÇàÇÑÈÄ ½ÇÇàµÈ´Ù. ÇöÀç directory °¡ solaris ¶ó°í ÇÒ¶§ solaris ÀÇ make install °úÁ¤À» ¸¶Ä£ÈÄ¿¡ ½ÇÇàÀÌ µÈ´Ù. ÀÌ ÈÄ¿¡ solaris2 ¶ó´Â directory ¸¦ ºôµåÇÏ°Ô µÇ¾îÀÖ´Ù ÇÏ´õ¶óµµ ÀÌ °úÁ¤Àº ÇØ´ç directory ÀÇ install À» ¸¶Ä£ÈÄ¿¡ ÀϾ´Ù. Áï solaris ÀÇ make install À» ¸¶Ä£ÈÄ¿¡ ÀÌ °úÁ¤ÀÌ ½ÇÇàµÈ´Ù. ±× ÈÄ¿¡ solaris2 ¸¦ build ÇÏ°Ô µÈ´Ù.