Next: , Previous: File Inclusion, Up: File Inclusion   [Contents][Index]


8.1 ̾Á°¤ò»ØÄꤷ¤Æ¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë

m4¤Ë¤Ï¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤¿¤á¤ÎÁȤ߹þ¤ß¥Þ¥¯¥í¤¬2¤Ä¤¢¤ê¤Þ¤¹¡£

include(filename)
sinclude(filename)

¤É¤Á¤é¤âfilename¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òm4¤ËÆÉ¤ß¹þ¤Þ¤»¤Þ¤¹¡£ ¤½¤Î¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Ë㤹¤ë¤È°ÊÁ°¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤éÆþÎϤòºÆ³«¤·¤Þ¤¹¡£

¤·¤¿¤¬¤Ã¤Æinclude¤Èsinclude¤ÏŸ³«¸å¤Ë filename¤ÎÆâÍÆ¤È¤Ê¤ê¤Þ¤¹¡£

include¤Ë»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤È¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÈò¤±¤¿¤¤¤È¤­¤Ï sinclude¤ò»È¤¤¤Þ¤¹¡£ sinclude¤Ï¡¢¤â¤·¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¡¢ ¸ºß¤·¤Ê¤±¤ì¤Ð¾ÃÌǤ·¤Þ¤¹¡£

include(`no-such-file')
⇒
error→30.include:2: m4: Cannot open no-such-file: No such file or directory
sinclude(`no-such-file')
⇒

¤³¤ì°Ê¹ß¥Õ¥¡¥¤¥ëincl.m4¤ÎÆâÍÆ¤Ï²¾¤Ë°Ê²¼¤Î¤â¤Î¤À¤È¤·¤Þ¤¹¡£

Include file start
foo
Include file end

Ä̾¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ï¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÁÞÆþ¤¹¤ë¤¿¤á¤Ë »ÈÍѤµ¤ì¤Þ¤¹¡£ ¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ïm4¤Ë¤è¤Ã¤ÆÆÉ¤Þ¤ì¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¥Þ¥¯¥í¤Î¸Æ¤Ó½Ð¤·¤ÏŸ³«¤µ¤ì¤Þ¤¹¡£

define(`foo', `FOO')
⇒
include(`incl.m4')
⇒Include file start
⇒FOO
⇒Include file end
⇒

include¤Èsinclude¤¬¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ËŸ³«¤µ¤ì¤ë¤³¤È¤òÍøÍѤ·¤Æ¡¢ ¥Õ¥¡¥¤¥ëÁ´ÂΤ˺îÍѤ¹¤ë¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¼¡¤ÎÎã¤Ç¤Ï‘bar’¤¬incl.m4¤ÎÆâÍÆ¤ËŸ³«¤µ¤ì¤ë¤è¤¦¤ËÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£

define(`bar', include(`incl.m4'))
⇒
This is `bar':  >>>bar<<<
⇒This is bar:  >>>Include file start
⇒foo
⇒Include file end
⇒<<<

¤â¤Ã¤È¤â¡¢¤³¤ì¤Ïinclude¤Î¤è¤¯¤¢¤ë»È¤¤Êý¤È¤Ï¸À¤¨¤Þ¤»¤ó¡£ ¤Ê¤¼¤Ê¤é¥Õ¥¡¥¤¥ë¤Ë¤Ï¥¯¥©¡¼¥È¡¢¥³¥ó¥Þ¡¢¥«¥Ã¥³¤È¤¤¤Ã¤¿ m4¤Î¥Ñ¡¼¥µ¡Êparser¡Ë¤ÎƯ¤­Êý¤Ë´³¾Ä¤¹¤ë¤â¤Î¤¬¥é¥ó¥À¥à¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬ ¤¢¤ë¤«¤é¤Ç¤¹¡£

ÁȤ߹þ¤ß¥Þ¥¯¥íinclude¤Èsinclude¤Ï°ú¿ô¤òÍ¿¤¨¤¿¤È¤­¤À¤±Ç§¼±¤µ¤ì¤Þ¤¹¡£