Previous: Particular Functions, Up: Library Functions [Contents][Index]
¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¤“ÆÃÄê¤Î”¥Æ¥¹¥È¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ¥«¥Ð¡¼¤Æ¤¤¤Ê¤¤´Ø¿ô¤ò¸«¤Ä
¤±¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡¥´Ø¿ô¤¬¡¤¥Ç¥Õ¥©¥ë¥È¤ÎC¥é¥¤¥Ö¥é¥ê°Ê³°¤Î¥é¥¤¥Ö¥é¥ê
¤Ë¤¢¤ë¾ì¹ç¡¤ºÇ½é¤Ë¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤ÆAC_CHECK_LIB
¤ò¸Æ¤Ó½Ð
¤·¤Æ¤¯¤À¤µ¤¤¡¥Â¸ºß¤Î³Îǧ¤À¤±¤Ç¤Ê¤¯Æ°ºî¤âÄ´ºº¤·¤¿¤¤¾ì¹ç¡¤ÆÈ¼«¤Î¥Æ¥¹¥È¤ò½ñ
¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹(see Writing Tests)¡¥
C¤Î´Ø¿ôfunction¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¡¤¥·¥§¥ë¥³¥Þ¥ó¥É
action-if-found¤ò¡¤¤½¤ì°Ê³°¤Ç¤Ïaction-if-not-found¤ò¼Â¹Ô¤·¤Þ
¤¹¡¥´Ø¿ô¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ë¥·¥ó¥Ü¥ë¤òÄêµÁ¤·¤¿¤¤¤À¤±¤Ê¤é¤Ð¡¤Âå¤ï¤ê¤Ë
AC_CHECK_FUNCS
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤ C¤Î¤Û¤¦¤¬C++¤è¤ê
ɸ½à²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤AC_LANG_CPLUSPLUS
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ç¤â¡¤C
¤Ë¥ê¥ó¥¯¤µ¤ì¤ë´Ø¿ô¤òÄ´ºº¤·¤Þ¤¹¡¥(¸À¸ì¤ÎÁªÂò¤ÎÄ´ºº¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤
see Language Choice¡¥)
¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿°ú¿ô¤Î¥ê¥¹¥È¤ÇÍ¿¤¨¤é¤ì¤Æ¤¤¤ë¤½¤ì¤¾¤ì¤Îfunction¤ËÂÐ
¤·¡¤ÍøÍѲÄǽ¤Ê¾ì¹ç¤ÏHAVE_function
¤ò(Á´¤ÆÂçʸ»ú¤Ç)ÄêµÁ¤·¤Þ¤¹¡¥
action-if-found¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¤´Ø¿ô¤Î°ì¤Ä¤¬¸«¤Ä¤«¤Ã¤¿¤È¤¼Â
¹Ô¤¹¤ë¡¤ÄɲäΥ·¥§¥ë¥³¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡¥ºÇ½é¤Ë°ìÃפ·¤¿¥ë¡¼¥×¤Ç¥Ö¥ì¥¤¥¯¤¹¤ë
¤¿¤á¤Ë¤Ï¡¤‘break’¤òÍ¿¤¨¤ë¤³¤È¤Ç²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡¥
action-if-not-found¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¤¤½¤ì¤Ï´Ø¿ô¤¬°ì¤Ä¤Ç¤â¸«¤Ä
¤«¤é¤Ê¤¤¤È¤¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡¥
Autoconf¤Ï¡¤°Ü¿¢À¤Ë¤Ä¤¤¤Æ¶ì¿´¤·¤Æ¤¤¿¿Í¡¹¤Ë¤è¤Ã¤Æ¡¤²¿Ç¯¤â¤«¤±¤Æ·Áºî¤é¤ì ¤Æ¤¤¿Å¯³Ø¤Ë½¾¤¤¤Þ¤¹¡¥ÆÃÄê¤Î¥Õ¥¡¥¤¥ë¤Î°Ü¿¢À¤ÎÌäÂê¤È¡¤POSIX´Ä ¶¤Ë¤¤¤ë¤«¤Î¤è¤¦¤ÊÌäÂê¤È¤ÏÊÌʪ¤Ç¤¹¡¥´Ø¿ô¤Ë¤è¤Ã¤Æ¤Ï¡¤Ìµ¤¤¤â¤Î¤¬¤¢¤Ã¤¿¤ê½¤ ÀµÉÔ²Äǽ¤À¤Ã¤¿¤ê¤¹¤ë¤â¤Î¤â¤¢¤ê¡¤¥Ñ¥Ã¥±¡¼¥¸¤Ç¤Ï¤½¤ì¤é¤òÃÖ¤´¹¤¨¤ë½àÈ÷¤¬É¬ Íפˤʤê¤Þ¤¹¡¥
̵¤«¤Ã¤¿¤ê²õ¤ì¤¿¤ê¤·¤Æ¤¤¤ëfunction¤Î¼ÂÁõ¤òÃÖ´¹¤¹¤ë¤¿¤á¤Ë¡¤¼Â¹Ô·Á¼° ¤Ë´Þ¤á¤ëɬÍפ¬¤¢¤ë‘function.c’¤ò»ØÄꤷ¤Þ¤¹¡¥
µ»½ÑŪ¤Ë¤Ï¡¤¤½¤ì¤Ï‘function.$ac_objext’¤ò¡¤¤½¤ì¤¬¤Þ¤À̵¤¤¾ì¹ç
¤Ï½ÐÎÏÊÑ¿ôLIBOBJS
¤ËÄɲä·¡¤‘function.c’¤ËÂФ·
AC_LIBSOURCE
¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡¥LIBOBJS
¤ÏÄÉÀ×ÉÔ²Äǽ¤Ê¤Î¤Ç¡¤Ä¾
ÀÜLIBOBJS
¤òÊѹ¹¤¹¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
¥×¥í¥¸¥§¥¯¥È¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤ËɬÍפˤʤëfile¤ò»ØÄꤷ¤Þ¤¹¡¥
configure.ac¤ÇɬÍפˤʤë¥Õ¥¡¥¤¥ë¤òÃΤëɬÍפ¬¤¢¤ë¾ì¹ç¡¤
AC_LIBSOURCE
¤òÄÉÀ×Ä´ºº¤·¤Æ¤¯¤À¤µ¤¤¡¥file¤Ï¥ê¥Æ¥é¥ë¤Ë¤¹¤ëɬ
Íפ¬¤¢¤ê¤Þ¤¹¡¥
¤³¤Î¥Þ¥¯¥í¤Ï¡¤¼«Æ°Åª¤ËAC_LIBOBJ
¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¤¬¡¤¥·¥§¥ëÊÑ¿ô¤Ë
AC_LIBOBJ
¤òÅϤ¹¾ì¹ç¡¤ÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤³¤Î¾ì¹ç¡¤¥·¥§
¥ëÊÑ¿ô¤ÏÀÅŪ¤ÊÄÉÀ×Ä´ºº¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¡¤AC_LIBOBJ
¤òÀ¸À®¤¹¤ë¤¿¤á¤Ëɬ
Íפˤʤꤽ¤¦¤Ê¤¢¤é¤æ¤ë¥·¥§¥ëÊÑ¿ô¤ò¡¤AC_LIBSOURCE
¤ËÅϤ¹É¬Íפ¬¤¢¤ê
¤Þ¤¹¡¥Î㤨¤Ð¡¤"foo"
¤Þ¤¿¤Ï"bar"
¤òÊÝ»ý¤·¤Æ¤¤¤ë
AC_LIBOBJ
¤ËÊÑ¿ô$foo_or_bar
¤òÅϤ·¤¿¤¤¾ì¹ç¤Ï¡¤°Ê²¼¤Î¤è¤¦¤Ë¤¹
¤Ù¤¤Ç¤·¤ç¤¦¡¥
AC_LIBSOURCE(foo.c) AC_LIBSOURCE(bar.c) AC_LIBOBJ($foo_or_bar)
¤·¤«¤·¡¤¤³¤ì¤òÈò¤±¤ë°ìÈÌŪ¤ÊÊýË¡¤â¤¢¤ê¡¤¤½¤ì¤Ë¤Ïñ½ã¤Ë¥ê¥Æ¥é¥ë¤Î°ú¿ô¤Ç
AC_LIBOBJ
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡¥
¤³¤Î¥Þ¥¯¥í¤Ï¡¤»þÂåÃÙ¤ì¤ÎAC_LIBOBJ_DECL
¤ò¼ã´³°Û¤Ê¤ë°ÕÌ£¤ÇÃÖ´¹¤¹¤ë
¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¸Å¤¤¥Þ¥¯¥í¤Ï¡¤¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤Ê¤¯´Ø¿ô̾¡¤Î㤨¤Ð
foo
¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¤Þ¤¹¡¥
AC_LIBSOURCE
¤Ë»÷¤Æ¤¤¤Þ¤¹¤¬¡¤¥«¥ó¥Þ¤Çʬ¤±¤é¤ì¤Æ¤¤¤ëM4¥ê¥¹¥È¤Ë¡¤°ì
¤Ä°Ê¾å¤Îfiles¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡¥¤³¤Î¤¿¤á¡¤¾åµ¤ÎÎã¤Ï°Ê²¼¤Î¤è¤¦¤Ë½ñ¤
´¹¤¨¤é¤ì¤ë¤Ç¤·¤ç¤¦¡¥
AC_LIBSOURCES([foo.c, bar.c]) AC_LIBOBJ($foo_or_bar)
AC_LIBOBJ
¤ÇÃÖ´¹¤¹¤ë¥Õ¥¡¥¤¥ë¤¬directory¤Ç¸«¤Ä¤«¤ë¤è¤¦¤Ë¡¤¥½¡¼
¥¹¥Ä¥ê¡¼¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤«¤é»Ï¤Þ¤ëÁêÂХѥ¹¤ò»ØÄꤷ¤Þ¤¹¡¥ÃÖ´¹¥Ç¥£¥ì¥¯¥È¥ê¤Î
¥Ç¥Õ¥©¥ë¥È¤Ï¥È¥Ã¥×¥ì¥Ù¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Î.¤Ç¡¤ºÇ¤â°ìÈÌŪ¤ÊÃͤÏ
lib¤Ç¡¤‘AC_CONFIG_LIBOBJ_DIR(lib)’¤ÇÂбþ¤·¤Þ¤¹¡¥
configure
¤Ï°Ê²¼¤ÎÍýͳ¤Ç¡¤ÃÖ´¹¥Ç¥£¥ì¥¯¥È¥ê¤òÃΤëɬÍפ¬¤Ê¤¤¤«¤â
¤·¤ì¤Þ¤»¤ó¡¥(i)ÃÖ´¹¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ëÄ´ºº¤â¤¢¤ê¤Þ¤¹¡¥(ii)ÃÖ´¹¥Ø¥Ã¥À¤Î¥ê
¥ó¥¯¤òƳÆþ¤¹¤ë¤³¤È¤Ç¡¤²õ¤ì¤¿¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¥Þ¥¯¥í¤â¤¢¤ê¤Þ¤¹¡¥
Åù¡¹¡¥
AC_LIBOBJ
¤¬Ìµ¤¤¾ì¹ç¡¤Ã±¤Ë´Ø¿ô¤Î¸ºß¤òÄ´ºº¤·¡¤ÃÖ´¹¤¹¤ë¤«¤É¤¦¤«¿Ò¤Í
¤ë¤À¤±¤Î¤³¤È¤Ï°ìÈÌŪ¤Ç¤¹¡¥°Ê²¼¤Î¥Þ¥¯¥í¤Ï¡¤ÊØÍø¤Ç¼êû¤Ê¤â¤Î¤Ç¤¹¡¥
AC_CHECK_FUNCS
¤Ë»÷¤Æ¤¤¤Þ¤¹¤¬¡¤action-if-not-found ¤È¤·¤Æ
‘AC_LIBOBJ(function)’¤ò»ÈÍѤ·¤Þ¤¹¡¥‘#if
!HAVE_function’¤Ë¥×¥í¥È¥¿¥¤¥×¤ò´Þ¤á¤ë¤³¤È¤Ç¡¤ÃÖ´¹¤¹¤ë´Ø¿ô¤òÀë¸À¤¹
¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¥·¥¹¥Æ¥à¤Ë´Ø¿ô¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¤¤ª¤½¤é¤¯¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ
¤¤¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤Àë¸À¤¬¾×ÆÍ¤·¤Ê¤¤¤è¤¦¤Ë¡¤¤½¤ì¤òºÆ
ÄêµÁ¤¹¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥