Next: , Up: Dependencies Between Macros   [Contents][Index]


9.4.1 ¥Þ¥¯¥í¤ÎɬÍ×¾ò·ï

½ñ¤¤¤Æ¤¤¤ë¥Þ¥¯¥í¤¬¡¤°ÊÁ°¤Ë¾¤Î¥Þ¥¯¥í¤¬·×»»¤·¤¿Ãͤò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤«¤â ¤·¤ì¤Þ¤»¤ó¡¥Î㤨¤Ð¡¤AC_DECL_YYTEXT¤Ï¡¤flex¤älex ¤Î ½ÐÎϤòÄ´ºº¤¹¤ë¤Î¤Ç¡¤¥·¥§¥ëÊÑ¿ô LEX¤òÀßÄꤹ¤ë¤¿¤á¤Ë¡¤ AC_PROG_LEX¤¬ºÇ½é¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë°Í¸¤·¤Þ¤¹¡¥

¥Þ¥¯¥í¤Î¥æ¡¼¥¶¤Ë¤½¤ì¤é´Ö¤Î°Í¸À­¤òÄÉÀפµ¤»¤ë¤è¤ê¡¤¼«Æ°Åª¤Ë¤¹¤ë¤¿¤á¤Ë AC_REQUIRE¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥AC_REQUIRE¤Ï¡¤É¬Í×¤Ê ¾ì¹ç¤Î¤ß¥Þ¥¯¥í¤¬¸Æ¤Ó½Ð¤µ¤ì¡¤¤½¤·¤Æ°ìÅÙ¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Þ¤¹¡¥

Macro: AC_REQUIRE (macro-name)

M4¥Þ¥¯¥ímacro-name¤¬¤Þ¤À¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤¤½¤ì¤ò(°ú¿ô̵¤·¤Ç) ¸Æ¤Ó½Ð¤·¤Þ¤¹¡¥³Ñ¥«¥Ã¥³¤Çmacro-name¤ò°Ï¤ó¤Ç¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ ¤¤¡¥macro-name¤Ï¡¤AC_DEFUN¤ò»ÈÍѤ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¤¤Þ¤¿¤Ï ¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤¹AC_PROVIDE¤Î¸Æ¤Ó½Ð¤·¤ò´Þ¤ó¤Ç¤¤¤ëɬÍפ¬ ¤¢¤ê¤Þ¤¹¡¥

AC_REQUIRE¤ÏAC_DEFUN¥Þ¥¯¥í¤ÎÆâÉô¤Ç»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥ ¤½¤ì¤Ï¥È¥Ã¥×¥ì¥Ù¥ë¤«¤é¸Æ¤Ó½Ð¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡¥

AC_REQUIRE¤Ï¤è¤¯¸í²ò¤µ¤ì¤Þ¤¹¡¥°ì¤Ä¤Î¥Þ¥¯¥í¤¬Â¾¤Î¤â¤Î¤Ë°Í¸¤·¤Æ¤¤ ¤ë¾ì¹ç¡¤¸å¼Ô¤ÏÁ°¼Ô¤ÎËÜÂΤÎÁ°¤ËŸ³«¤µ¤ì¤ë¤è¤¦¤Ë¡¤¤½¤ì¤Ï¥Þ¥¯¥í´Ö¤Î °Í¸À­¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡¥ÆÃ¤Ë¡¤‘AC_REQUIRE(FOO)’¤Ï¡¤FOO ¤ÎËÜ ÂΤǤÏÃÖ´¹¤µ¤ì¤Þ¤»¤ó¡¥Î㤨¤Ð¡¤¥Þ¥¯¥í¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤¿¤È¤·¤Þ¤¹¡¥

AC_DEFUN([TRAVOLTA],
[test "$body_temperature_in_celsius" -gt "38" &&
  dance_floor=occupied])
AC_DEFUN([NEWTON_JOHN],
[test "$hair_style" = "curly" &&
  dance_floor=occupied])
AC_DEFUN([RESERVE_DANCE_FLOOR],
[if date | grep '^Sat.*pm' >/dev/null 2>&1; then
  AC_REQUIRE([TRAVOLTA])
  AC_REQUIRE([NEWTON_JOHN])
fi])

¤³¤ì¤òconfigure.ac¤Ç»ÈÍѤ·¤Þ¤¹¡¥

AC_INIT
RESERVE_DANCE_FLOOR
if test "$dance_floor" = occupied; then
  AC_MSG_ERROR([cannot pick up here, let's move])
fi

¤½¤ì¤Ï°Ê²¼¤Î¤è¤¦¤ËŸ³«¤µ¤ì¤ë¤Î¤Ç¡¤ÅÚÍËÆü¤ÎÌë°Ê³°¤ËÃç´Ö¤Ë²ñ¤¦µ¡²ñ¤¬»Ä¤Ã¤Æ ¤¤¤Þ¤»¤ó¡¥

test "$body_temperature_in_Celsius" -gt "38" &&
  dance_floor=occupied
test "$hair_style" = "curly" &&
  dance_floor=occupied
fi
if date | grep '^Sat.*pm' >/dev/null 2>&1; then


fi

¤³¤Îưºî¤Ï°Õ¿ÞŪ¤ËÁªÂò¤µ¤ì¤Þ¤·¤¿¡¥(i) ¤½¤ì¤ÏÍ׵ᤵ¤ì¤ë¥Þ¥¯¥í¤Î¥á¥Ã¥»¡¼¥¸ ¤¬¡¤Í׵ᤷ¤Æ¤¤¤ë¥Þ¥¯¥í¤Î¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤³¤È¤ò˸¤²¤Þ¤¹¡¥(ii) ¤½¤ì¤Ï¡¤¥·¥§¥ë¤Î¾ò·ïʸ¤¬»ÈÍѤµ¤ì¤ë¤È¤­¤Ò¤É¤¯¶Ã¤¯¤³¤È¤ò˸¤²¤Þ¤¹¡¥°Ê²¼¤Î¤è ¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥

if …; then
  AC_REQUIRE([SOME_CHECK])
fi
…
SOME_CHECK

¥Þ¥¯¥í¤ÎºÇ½é¤ËÁ´¤Æ¤ÎAC_REQUIRE¤ò½ñ¤­¹þ¤à¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡¥¶õ¤Î¹Ô ¤¬»Ä¤ë¤³¤È¤òÈò¤±¤ë¤¿¤á¡¤dnl¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥