Previous: Alternative, Up: Directories   [Contents][Index]


6.4 Æþ¤ì»Ò¾õ¤Î¥Ñ¥Ã¥±¡¼¥¸

GNU¥Ó¥ë¥É¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¤¥Ñ¥Ã¥±¡¼¥¸¤òǤ°Õ¤Î¿¼¤µ¤ËÆþ¤ì»Ò¾õ¤Ë¤¹¤ë¤³¤È¤¬ ²Äǽ¤Ç¤¹¡¥¤³¤ì¤Ï¡¤ÆÈ¼«¤Îconfigure¡¤Makefile¤Ê¤É¤¬¤¢¤ë¾ ¤Î¥Ñ¥Ã¥±¡¼¥¸¤òËä¤á¹þ¤ó¤À¥Ñ¥Ã¥±¡¼¥¸¤¬²Äǽ¤Ë¤Ê¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡¥

¤³¤ì¤é¤Î¤½¤Î¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¤¿Æ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸ºß¤¹¤ë ¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¹¡¥¤½¤ì¤é¤Ï¡¤Â¾¤ÎÉáÄ̤Υǥ£¥ì¥¯¥È¥ê¤ÈƱÍÍ¤Ë SUBDIRS¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤·¤«¤·¡¤¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸ ¤ÎMakefile¤Ï¡¤¿Æ¤Îconfigure¤Ç¤Ï¤Ê¤¯¡¤ÆÈ¼«¤Î configure¥¹¥¯¥ê¥×¥È¤Ç½ÐÎϤ¹¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¹¡¥¤³¤ì¤ÏAutoconf¥Þ ¥¯¥í¤ÎAC_CONFIG_SUBDIRS¤ò»ÈÍѤ·¤ÆÃ£À®¤·¤Þ¤¹ (see Configuring Other Packages in Subdirectories in The Autoconf Manual)¡¥

¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Îhand/¤Ë¤¢¤ëÆþ¤ì»Ò¾õ¤Î¥Ñ¥Ã¥±¡¼¥¸hand¥é ¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¡¤arm¥×¥í¥°¥é¥à¤Î¥Ñ¥Ã¥±¡¼¥¸Îã¤Ï¡¤°Ê²¼¤Î¤è¤¦ ¤Ë¤Ê¤ê¤Þ¤¹¡¥

arm¤Îconfigure.ac¤Ç¤¹¡¥

AC_INIT([arm], [1.0])
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
# Call hand's ./configure script recursively.
AC_CONFIG_SUBDIRS([hand])
AC_OUTPUT

arm¤ÎMakefile.am¤Ç¤¹¡¥

# Build the library in the hand subdirectory first.
SUBDIRS = hand

# Include hand's header when compiling this directory.
AM_CPPFLAGS = -I$(srcdir)/hand

bin_PROGRAMS = arm
arm_SOURCES = arm.c
# link with the hand library.
arm_LDADD = hand/libhand.a

¤µ¤Æ¡¤hand¤Îhand/configure.ac¤Ç¤¹¡¥

AC_INIT([hand], [1.2])
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_PROG_RANLIB
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

¤½¤·¤Æ¤½¤Îhand/Makefile.am¤Ç¤¹¡¥

lib_LIBRARIES = libhand.a
libhand_a_SOURCES = hand.c

make dist¤¬¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤µ¤ì¤ë¤È¤­¡¤ hand¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤À¤±¤Ç¤Ê¤¯¡¤arm¥³¡¼¥É¤â´Þ¤à¥¢¡¼¥«¥¤ ¥Öarm-1.0.tar.gz¤òºîÀ®¤·¤Þ¤¹¡¥¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¤Ä̾ï¤Î¥Ñ¥Ã¥±¡¼ ¥¸¤ÈƱ¤¸¤è¤¦¤Ë¡¤¤¤¤Ä¤â¤Î./configure && make && make install¤Ç¥Ó ¥ë¥É¤·¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹(hand¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¤½èÍý Ãæ¤Ë¥Ó¥ë¥É¤È¥¤¥ó¥¹¥È¡¼¥ë¤¬¤Ê¤µ¤ì¤Þ¤¹¡¥)¡¥

make dist¤¬hand¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤µ¤ì¤ë¤È¤­¡¤¤½¤ì¼«¿È¤¬ ´Þ¤Þ¤ì¤Æ¤¤¤ëhand-1.2.tar.gz¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡¥Â¾¤Î¥Ñ¥Ã¥±¡¼ ¥¸¤ËËä¤á¹þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¤ÊÌ¡¹¤Ë»ÈÍѤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡¥

AC_CONFIG_AUX_DIR([.])µ¡Ç½¤ÎÌÜŪ¤Ï¡¤Automake¤ÈAutoconf¤ËÄɲå¹ ¥¯¥ê¥×¥È¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Çõ¤¹¤è¤¦¤Ë¶¯À©¤¹¤ë¤³¤È¤Ç¤¹¡¥Î㤨¤Ð¡¤Æó ¤Ä¤Îinstall-sh¤Î¥³¥Ô¡¼¤¬¤¢¤Ã¤Æ¡¤°ì¤Ä¤Ï¥È¥Ã¥×¥ì¥Ù¥ë¤Îarm ¥Ñ¥Ã¥±¡¼¥¸¡¤¤â¤¦°ì¤Ä¤Ïhand¥Ñ¥Ã¥±¡¼¥¸¤Îhand/¥µ¥Ö¥Ç¥£¥ì¥¯ ¥È¥ê¤Ë¤¢¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡¥

Îò»ËŪ¤Ê¥Ç¥Õ¥©¥ë¥È¤Ï¡¤¤³¤ì¤é¤ÎÄɲå¹¥¯¥ê¥×¥È¤òľÀܤοƤȹ¹¤Ë¤½¤Î¿Æ¤Î¥Ç¥£ ¥ì¥¯¥È¥ê¤Çõ¤·¤Þ¤¹¡¥¤½¤Î¤¿¤á¡¤AC_CONFIG_AUX_DIR([.])¹Ô¤¬ hand/configure.ac¤«¤é¤Ê¤¯¤Ê¤ë¤È¡¤¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤Ïarm¥Ñ¥Ã ¥±¡¼¥¸¤ÎÄɲå¹¥¯¥ê¥×¥È¤ò¶¦Í­¤·¤Þ¤¹¡¥¤³¤ì¤Ï¼ã´³¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ë(¿ôK¥Ð ¥¤¥È)¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¤hand¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤Î¥â¥¸¥å¡¼¥ëÀ­¤¬¼ÂºÝ¤Ë ¤Ê¤¯¤Ê¤ê¡¤¼«¿È¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹(¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ç make dist¤·¤Æ¤âưºî¤·¤Þ¤»¤ó)¡¥

Automake¤ò»ÈÍѤ·¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¤¤³¤ÎÊýË¡¤ÇÅý¹ç¤¹¤ë¤¿¤á¤Ë¡¤¤µ¤é¤Ê¤ëºî ¶È¤¬É¬ÍפǤ¹See Third-Party Makefiles.