Next: , Previous: Subdirectories, Up: Directories   [Contents][Index]


6.2 ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ò·ï

GNU Inetutils¤Î¤è¤¦¤Ë¡¤¥Ñ¥Ã¥±¡¼¥¸Á´ÂΤΥµ¥Ö¥»¥Ã¥È¤ò¥Ó¥ë¥É¤·¤¿¤¤ ¤À¤±¤Î¾ì¹ç¡¤SUBDIRSÊÑ¿ô¤ò¾ò·ïŪ¤ËÄêµÁ¤¹¤ë¤³¤È¤¬¤¬²Äǽ¤Ç¤¹¡¥

¤³¤ì¤¬¤É¤Î¤è¤¦¤Ëưºî¤¹¤ë¤«¤òÀâÌÀ¤¹¤ë¤¿¤á¡¤Æó¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê src/ ¤Èopt/¤¬¤¢¤ë¤È²¾Äꤷ¤Þ¤·¤ç¤¦¡¥src/¤Ï¾ï¤Ë¥Ó¥ë ¥É¤µ¤ì¤Þ¤¹¤¬¡¤opt/¤Ï./configure¤Ç¥Ó¥ë¥É¤¹¤ë¤«¤É¤¦¤«¤ò·è Äꤷ¤¿¤¤¤È»×¤¤¤Þ¤¹¡¥(¤³¤ÎÎã¤Ç¤Ï¡¤ÊÑ¿ô$want_opt¤¬yes¤ËÀß Äꤵ¤ì¤Æ¤¤¤ë¤È¤­opt/¤ò¥Ó¥ë¥É¤¹¤ë¤È²¾Äꤷ¤Þ¤¹¡¥)

make¤È¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¤src/¤Ï¾ï¤ËºÆµ¢¤µ¤ì¡¤opt/¤â ¤½¤¦¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥

¤·¤«¤·¡¤make dist¤Ç¤Ï¾ï¤Ësrc/¤Èopt/¤ÎξÊý¤òºÆµ¢¤¹ ¤Ù¤­¤Ç¤¹¡¥¤Ä¤Þ¤ê¡¤¸½ºß¤Îconfigure¤Ç¤ÏÉÔÍפʾì¹ç¤Ç¤â¡¤opt/¤ÏÇÛÉÛ ¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡¥¤³¤ì¤Ï¡¤opt/Makefile¤Ï¾ò·ï¤Ë°Í¸¤»¤ººîÀ® ¤µ¤ì¤ë¤Ù¤­¤À¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡¥

¤³¤Î¤è¤¦¤Ë¥×¥í¥¸¥§¥¯¥È¤òÀßÄꤹ¤ëÊýË¡¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥Automake¤Î¾ò·ï¼° (see Conditionals)¤ò»ÈÍѤ·¤¿¤ê¡¤Autoconf¤ÎAC_SUBST¥Þ¥¯¥í (see Setting Output Variables in The Autoconf Manual)¤ò»ÈÍѤ·¤¿¤ê¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥ Automake¤Î¾ò·ï¼°¤Î»ÈÍѤϡ¤¤è¤ê¹¥¤Þ¤ì¤ë²ò¤È¤Ê¤ê¤Þ¤¹¡¥¤³¤ì¤éÆó¤Ä¤Î²ÄǽÀ­ ¤ò¼¨¤¹Á°¤Ë¡¤DIST_SUBDIRS¤ò¾Ò²ð¤·¤Þ¤·¤ç¤¦¡¥

6.2.1 SUBDIRSÂÐDIST_SUBDIRS

Automake¤Ï¡¤SUBDIRS¤ÈDIST_SUBDIRS¤ÇÄêµÁ¤µ¤ì¤ë¡¤Æó¤Ä¤Î¥Ç¥£ ¥ì¥¯¥È¥ê¡¦¥»¥Ã¥È¤ò¹Íθ¤·¤Þ¤¹¡¥

SUBDIRS¤Ï¡¤¥Ó¥ë¥É¤¹¤ëɬÍפ¬¤¢¤ë¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Î¥µ¥Ö¥Ç¥£ ¥ì¥¯¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹(see Subdirectories)¡¥¤½¤ì¤Ï¼êư¤ÇÄêµÁ¤¹¤ëɬ Íפ¬¤¢¤ê¤Þ¤¹¡¥Automake¤Ï¡¤¥Ó¥ë¥É¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤É¤¦¤«¤òȽÄꤹ¤ë¤³¤È ¤Ï¤¢¤ê¤Þ¤»¤ó¡¥°Ê²¼¤ÎÆó¤Ä¤Î¥»¥¯¥·¥ç¥ó¤Çʬ¤«¤ë¤è¤¦¤Ë¡¤¥Ó¥ë¥É¤¹¤ë¥Ç¥£¥ì¥¯ ¥È¥ê¤«¤é¤¤¤¯¤Ä¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¾ò·ï¤òÄêµÁ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

DIST_SUBDIRS¤Ï¤¹¤Ù¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢¤¹¤ëɬÍפ¬¤¢¤ë¥ë¡¼¥ë¤Ç »ÈÍѤµ¤ì¡¤¥Ó¥ë¥É¤µ¤ì¤ë¾ò·ï¤«¤é³°¤ì¤Æ¤¤¤Æ¤â»ÈÍѤµ¤ì¤Þ¤¹¡¥¥µ¥Ö¥Ç¥£¥ì¥¯¥È ¥êopt/¤Ï¥Ó¥ë¥É¤·¤Ê¤¤¤Î¤Ë¡¤¤½¤ì¤òÇÛÉÛ¤·¤¿¤¤¤È¤¤¤¦Îã¤ò»×¤¤½Ð¤·¤Þ ¤·¤¿¤«¡©¤³¤ì¤ÏDIST_SUBDIRS¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡¥opt¤Ï SUBDIRS¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¤DIST_SUBDIRS¤Ë¤Ï¸ºß¤¹¤ëɬÍפ¬ ¤¢¤ê¤Þ¤¹¡¥

¸·Ì©¤Ë¤¤¤¦¤È¡¤DIST_SUBDIRS¤Ïmake dist¡¤make distclean¡¤¤½¤·¤Æmake maintainer-clean¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡¥¤½¤ì°Ê³° ¤ÎºÆµ¢Åª¤Ê¥ë¡¼¥ë¤Ç¤ÏSUBDIRS¤¬»ÈÍѤµ¤ì¤Þ¤¹¡¥

SUBDIRS¤¬Automake¤Î¾ò·ïʸ¤ò»ÈÍѤ·¾ò·ïŪ¤ËÄêµÁ¤µ¤ì¤ë¾ì¹ç¡¤ Automake¤Ï¡¤¤¹¤Ù¤Æ¤Î¾ò·ï¤ÇSUBDIRS¤¬¤È¤êÆÀ¤ëÃͤǡ¤ DIST_SUBDIRS¤ò¼«Æ°Åª¤ËÄêµÁ¤·¤Þ¤¹¡¥

SUBDIRS¤¬AC_SUBSTÊÑ¿ô¤ò´Þ¤à¾ì¹ç¡¤Automake¤Ï¤³¤ì¤é¤ÎÊÑ¿ô ¤¬¤È¤êÆÀ¤ëÃͤ¬Ê¬¤«¤é¤Ê¤¤¤Î¤Ç¡¤DIST_SUBDIRS¤ÏÀµ³Î¤ËÄêµÁ¤Ç¤­¤Þ¤» ¤ó¡¥¤³¤Î¾õ¶·¤Ç¤Ï¡¤DIST_SUBDIRS ¤ò¼êư¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥

6.2.2 AM_CONDITIONAL¤òÍѤ¤¤¿¾ò·ïÉÕ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê

configure¤Ç¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎMakefile¤ò½ÐÎϤ·¡¤ opt/¤ò¥Ó¥ë¥É¤¹¤ë¤«¤É¤¦¤«¤Î¾ò·ï¤òÄêµÁ¤¹¤Ù¤­¤Ç¤¹¡¥

…
AM_CONDITIONAL([COND_OPT], [test "$want_opt" = yes])
AC_CONFIG_FILES([Makefile src/Makefile opt/Makefile])
…

SUBDIRS¤Ï¡¤ºÇ¾å°Ì¤ÎMakefile.am¤Ç¡¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤³ ¤È¤¬²Äǽ¤Ç¤¹¡¥

if COND_OPT
  MAYBE_OPT = opt
endif
SUBDIRS = src $(MAYBE_OPT)

¸æÍ÷¤Î¤è¤¦¤Ë¡¤make¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¤src/¤È¡¤¤ª¤½¤é¤¯ opt/¤ËºÆµ¢¤·¤Æ¤¤¤¯¤Ç¤·¤ç¤¦¡¥

¸«¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¤make dist¤Ïmake all¤È¤Ï°Û¤Ê¤ê¡¤ SUBDIRSÊÑ¿ô¤ò»ÈÍѤ·¤Ê¤¤¤Î¤Ç¡¤make dist¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¤ src/¤Èopt/¤ÎξÊý¤ËºÆµ¢Åª¤Ë¹Ô¤Ê¤¤¤Þ¤¹¡¥¤½¤ì¤Ï DIST_SUBDIRSÊÑ¿ô¤ò»ÈÍѤ·¤Þ¤¹¡¥

¤³¤Î¾ì¹ç¡¤Automake¤ÏMAYBE_OPT¤¬¾ò·ï¤Ë¤è¤Ã¤Æ¤Ïopt¤ò´Þ¤à¤³ ¤È¤òÃΤäƤ¤¤ë¤Î¤Ç¡¤DIST_SUBDIRS = src opt¤ò¼«Æ°Åª¤ËÄêµÁ¤·¤Þ¤¹¡¥

6.2.3 AC_SUBST¤òÍѤ¤¤¿¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ò·ï¼°

¤â¤¦°ì¤Ä¤Î²Äǽ¤ÊÊýË¡¤Ï¡¤AC_SUBST¤ò»ÈÍѤ·¤Æ¡¤./configure ¤ÇMAYBE_OPT¤òÄêµÁ¤¹¤ë¤³¤È¤Ç¤¹¡¥

…
if test "$want_opt" = yes; then
  MAYBE_OPT=opt
else
  MAYBE_OPT=
fi
AC_SUBST([MAYBE_OPT])
AC_CONFIG_FILES([Makefile src/Makefile opt/Makefile])
…

¤³¤Î¾õ¶·¤Ç¤Ï¡¤ºÇ¾å°Ì¤ÎMakefile.am¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡¥

SUBDIRS = src $(MAYBE_OPT)
DIST_SUBDIRS = src opt

·çÅÀ¤Ï¡¤Automake¤¬MAYBE_OPT¤ÎÊÑ¿ô¤¬²¿¤«¤ò¿ä¬¤¹¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê ¤Î¤Ç¡¤DIST_SUBDIRS¤ËÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡¥

6.2.4 ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤µ¤ì¤Ê¤¤¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê

DIST_SUBDIRS¤Î°ÕÌ£¤Ï¡¤¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò¾ò·ïŪ¤Ë¥³¥ó¥Õ¥£ ¥°¥ì¡¼¥·¥ç¥ó¤·¥Ó¥ë¥É¤·¤è¤¦¤È¤¹¤ë¥æ¡¼¥¶¤Ë¸í²ò¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¯¤Ê¤Ã ¤Æ¤¤¤Þ¤¹¡¥¤³¤³¤Ç¤Î¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤È¤Ï¡¤Makefile¤ÎºîÀ®¤ò°Õ Ì£¤·¤Þ¤¹(Æþ¤ì»Ò¾õ¤Îconfigure¥¹¥¯¥ê¥×¥È¤Î¸Æ¤Ó½Ð¤·¤Î²ÄǽÀ­¤â¤¢ ¤ê¤Þ¤¹¡¥¤³¤ì¤Ï¥³¥¹¥È¤Î¤«¤«¤ë½èÍý¤Ç¡¤¾ò·ïŪ¤Ë¤·¤¿¤¤¸À¤¤Ìõ¤Ë¤·¤Þ¤¹¤¬¡¤ Makefile¤Ë´Ø¤¹¤ë¤³¤È¤À¤±¤òµÄÏÀ¤·¤Þ¤¹)¡¥

¾åµ­¤ÎÎã¤Ç¤Ï¤¹¤Ù¤Æ¡¤¥Ó¥ë¥É¤µ¤ì¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤á¤Æ¡¤Á´Éô¤Î Makefile¤ÎºîÀ®¤ò²¾Äꤷ¤Æ¤¤¤Þ¤¹¡¥Ã±½ã¤ÊÍýͳ¤È¤·¤Æ¡¤make dist¤Ç¥Ó¥ë¥É¤µ¤ì¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤âÇÛÉÛ¤·¤¿¤¤¤³¤È¤¬¤¢¤ê(Î㤨¤Ð¡¤¥×¥é¥Ã ¥È¥Õ¥©¡¼¥à°Í¸¤Î¥³¡¼¥É)¡¤¤³¤Î¤¿¤ámake dist¤Ç¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò ºÆµ¢Åª¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¡¤¹¹¤Ë¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤· DIST_SUBDIRS¤Ë¸ºß¤µ¤»¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥

¤¹¤Ù¤Æ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¥Ñ¥Ã¥±¡¼ ¥¸¤Î¥Ó¥ë¥É¤Ï¥È¥ê¥Ã¥­¡¼¤Êºî¶È¤Ë¤Ê¤ê¡¤´Ö°ã¤Ã¤ÆÉÔ´°Á´¤Êtarball¤òÀ¸À®¤·¤¬ ¤Á¤Ê¤Î¤Ç¡¤½é¿´¼Ô¤Ë¤Ï¤ª´«¤á¤·¤Þ¤»¤ó¡¥²æ¡¹¤Ï¤³¤Î¥È¥Ô¥Ã¥¯¤ò¤³¤³¤Ç¤Ï¿¼¤¯µÄ ÏÀ¤·¤Þ¤»¤ó¤¬¡¤¤Á¤ç¤Ã¤È´í¸±¤Ê¤Î¤Ç,¤¤¤¯¤Ä¤«¥ë¡¼¥ë¤¬¤¢¤ë¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤ ¤Æ²¼¤µ¤¤¡¥

  • SUBDIRS¤Ï¾ï¤ËDIST_SUBDIRS¤Î¥µ¥Ö¥»¥Ã¥È(²¼°Ì½¸¹ç)¤Ë¤¹¤Ù¤­¤Ç¤¹¡¥

    DIST_SUBDIRS¤Ë¤Ï̵¤¤¥Ç¥£¥ì¥¯¥È¥ê¤òSUBDIRS¤Ë½ñ¤¯¤³¤È¤Ë¤Ï ¤Á¤ç¤Ã¤È¤À¤±°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡¥Á°¼Ô¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤òÅÁ¤¨¤ëÊýË¡¤Ç¡¤ ¸å¼Ô¤Ï¥Ó¥ë¥É¤¹¤Ù¤­¤â¤Î¤Ç¤¹¡¥

  • DIST_SUBDIRS¤ÈSUBDIRS¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¤¤¹¤Ù¤Æ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤¹¤Ù¤­¤Ç¤¹¡¥

    ¤¹¤Ê¤ï¤Á¡¤Makefile¤¬Â¸ºß¤¹¤ëɬÍפ¬¤¢¤ê¡¤¤½¤¦¤·¤Ê¤±¤ì¤Ð¡¤ºÆµ¢Åª ¤Êmake¥ë¡¼¥ë¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡¥

  • ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤¹¤Ù¤ÆDIST_SUBDIRS¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥

    clean¥ë¡¼¥ë¤ÇÀ¸À®¤µ¤ì¤¿Makefile¤òºï½ü¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡¥ DIST_SUBDIRS¤¬ÊÑ¿ô¤È¤·¤Æ¡¤¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Ç¥£ ¥ì¥¯¥È¥ê¤ò¥ê¥¹¥È¥¢¥Ã¥×¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤Î¤¬²¦Æ»¤Ç¤¹¡¥

¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤µ¤ì¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢¤¹¤ë¤Î¤òÈò¤±¤ë¤¿¤á¡¤¤½¤Î ¥Ç¥£¥ì¥¯¥È¥ê¤¬³Î¼Â¤ËDIST_SUBDIRS(¤ÈSUBDIRS)¤Ë¸ºß¤·¤Ê¤¤ ¤³¤È¤ò³Î¤«¤á¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥Î㤨¤Ð¡¤AC_SUBST¤ò»ÈÍѤ·¤Æ SUBDIRS¤ò¾ò·ïŪ¤ËÄêµÁ¤·¤Æ¤¤¤Æ¡¤DIST_SUBDIRS¤¬ÌÀ¼¨Åª¤ËÄê µÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤¤½¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç$(SUBDIRS)¤Ë¤Ê¤ê¤Þ¤¹¡¥¤â ¤¦°ì¤Ä¤Î²ÄǽÀ­¤È¤·¤Æ¡¤DIST_SUBDIRS = $(SUBDIRS)¤ò¶¯À©¤·¤Þ¤¹¡¥