Next: , Up: Writing Autoconf Macros   [Contents][Index]


9.1 ¥Þ¥¯¥í¤ÎÄêµÁ

Autoconf¥Þ¥¯¥í¤Ï¡¤M4ÁȤ߹þ¤ß¤Îm4_define¥Þ¥¯¥í¤Ë»÷¤¿ AC_DEFUN¥Þ¥¯¥í¤ò»ÈÍѤ·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¥Þ¥¯¥íÄêµÁ¤Ë²Ã¤¨¤ëºÝ¡¤ AC_DEFUN¤Ï¡¤¥Þ¥¯¥í¤ò¸Æ¤Ó½Ð¤¹½çÈÖ¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥³¡¼¥É ¤ò²Ã¤¨¤Þ¤¹(see Prerequisite Macros)¡¥

Autoconf¥Þ¥¯¥íÄêµÁ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥

AC_DEFUN(macro-name, macro-body)

¥Þ¥¯¥í¤ËÅϤ¹°ú¿ô¤Ï¡¤‘$1’¡¤‘$2’Åù¤Î¤è¤¦¤Ë»²¾È¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥ M4¥Þ¥¯¥í¤ò½ñ¤¯ºÝ¤Î´°Á´¤Ê¾ðÊó¤Ï¡¤See How to define new macros in GNU m4.

¥Þ¥¯¥í¤¬¶öÁ³Á°¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¤Ë¡¤ macro-body¤Èmacro-name¤ÎξÊý¤ò¡¤Å¬Àڤ˰úÍÑÉä¤Ç°Ï¤ó¤Ç ¤¤¤ë¤³¤È¤ò³Î¤«¤á¤Æ¤¯¤À¤µ¤¤¡¥

¤½¤ì¤¾¤ì¤Î¥Þ¥¯¥í¤Ë¤Ï¡¤¤½¤Î¥×¥í¥È¥¿¥¤¥×¤Èû¤¤ÀâÌÀ¤òÉÕÍ¿¤¹¤ë¤¿¤á¡¤¥Ø¥Ã¥À¤Î ¥³¥á¥ó¥È¤ò½ñ¤¯¤Ù¤­¤Ç¤¹¡¥°ú¿ô¤¬¥Ç¥Õ¥©¥ë¥ÈÃͤξì¹ç¡¤¤½¤Î¥×¥í¥È¥¿¥¤¥×¤òɽ¼¨ ¤·¤Æ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡¥

# AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1])
# --------------------------------------
m4_define([AC_MSG_ERROR],
[{ _AC_ECHO([configure: error: $1], 2); exit m4_default([$2], 1); }])

¥Þ¥¯¥í¤Ë´Ø¤¹¤ë¥³¥á¥ó¥È¤Ï¡¤¥Ø¥Ã¥À¥³¥á¥ó¥È¤Ë»Ä¤¹¤Ù¤­¤Ç¤¹¡¥¤½¤Î¾¤Î¤Û¤È¤ó¤É ¤Î¥³¥á¥ó¥È¤Ï¡¤¾¡¼ê¤Ëconfigure¤ËÆþ¤ë¤Î¤Ç¡¤¥³¥á¥ó¥È¤òƳÆþ¤¹¤ë¤¿¤á¤Ë ‘#’¤ò»ÈÍѤ·Â³¤±¤ë¤À¤±¤Ç·ë¹½¤Ç¤¹¡¥

¥Ô¥å¥¢¤ÊM4¥³¡¼¥É¤Ë´Ø¤·¤Æ¡¤Èó¾ï¤ËÆÃ¼ì¤Ê¥³¥á¥ó¥È¤¬¤¢¤ë¾ì¹ç¤Ï¡¤¥³¥á¥ó¥È¤ò configure¤È¥Ø¥Ã¥À¥³¥á¥ó¥È¤ËÆþ¤ì¤ë°ÕÌ£¤¬¤Ê¤¤¤Î¤Ç¡¤ÁȤ߹þ¤ß¤Î dnl¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤ì¤ÇM4¤Ï¡¤¼¡¤Î²þ¹Ô¤Þ¤Ç¤Î¥Æ¥­¥¹¥È¤òÇÑ´þ¤· ¤Þ¤¹¡¥

dnl¤¬¥³¥á¥ó¥È¤ÎƳÆþ¤ËɬÍפˤʤ뤳¤È¤ÏÌÇ¿¤Ë¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò³Ð¤¨¤Æ ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡¥dnl¤Ï¡¤AC_REQUIRE¤Î¤è¤¦¤Ê¡¤½ÐÎϤòÀ¸À®¤·¤Ê ¤¤¥Þ¥¯¥í¤Ë³¤¯²þ¹Ô¤ò½üµî¤¹¤ë¤È¤­¤Ë¡¤¤è¤êÌò¤ËΩ¤Á¤Þ¤¹¡¥