Next: , Previous: File Descriptors, Up: Portable Shell   [Contents][Index]


10.4 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ò·ï

autoconf¤È¤½¤ÎÃç´Öã¤Ï¡¤Ä̾ïÍÍ¡¹¤ÊUnix¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¤¬¡¤¤½¤ì¤Ï ¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤â»ÈÍѤµ¤ì¡¤ºÇ¤â¸²Ãø¤Ê¤â¤Î¤È¤·¤Æ¤ÏDOS¤ÎÃç´Ö ¤¬¤¢¤²¤é¤ì¤Þ¤¹¡¥¤³¤Î¤³¤È¤Ï¡¤¥Õ¥¡¥¤¥ë¤È¥Ñ¥¹Ì¾¤Ë´Ø¤¹¤ë²¾Äê¤Ë¾×ÆÍ¤·¤Þ¤¹¡¥

Î㤨¤Ð¡¤°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¹Í¤¨¤Þ¤¹¡¥

case $foo_dir in
  /*) # Absolute
     ;;
  *)
     foo_dir=$dots$foo_dir ;;
esac

¤½¤ì¤é¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥É¥é¥¤¥Ö¥¹¥Ú¥Ã¥¯¤ò»ÈÍѤ·¤Æ¤¤¤Æ¡¤Ä̾ï¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î ʬΥ»Ò¤È¤·¤Æ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò»ÈÍѤ·¤Æ¤¤¤ë¤¿¤á¡¤ÀäÂХѥ¹¤òÀµ¤·¤¯¸¡½Ð¤¹¤ë ¤³¤È¤Ë¼ºÇÔ¤¹¤ë¤Ç¤·¤ç¤¦¡¥ÀäÂХѥ¹¤ËÂФ¹¤ëÄ´ºº¤Îɸ½àŪ¤ÊÊýË¡¤Ï°Ê²¼¤Î¤È¤ª¤ê ¤Ç¤¹¡¥

case $foo_dir in
  [\\/]* | ?:[\\/]* ) # Absolute
     ;;
  *)
     foo_dir=$dots$foo_dir ;;
esac

ŬÀڤʾì¹ç¤Ï³Ñ¥«¥Ã¥³¤Î°úÍÑÉä¤Ç°Ï¤ß¡¤ºÇ½é¤Îʸ»ú¤È¤·¤Æ¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò ÊÝ»ý¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤(see Limitations of Builtins)¡¥

¤Þ¤¿¡¤¥³¥í¥ó¤¬¥Ç¥Ð¥¤¥¹»ØÄê¤Î°ìÉô¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤¤³¤ì¤é¤Î¥·¥¹¥Æ ¥à¤Ç¤Ï¤½¤ì¤ò¥Ñ¥¹¤ÎʬΥ»Ò¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó¡¥¥Ñ¥¹¤òºîÀ®¤·¤Æ¤¤¤ë¤È¤­¤ä ¥Ñ¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¤È¤­¤Ï¡¤Âå¤ï¤ê¤ËPATH_SEPARATOR½ÐÎÏÊÑ¿ô¤ò»È ÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥configure¤Ï¡¤³«»Ï»þ¤Ë¤³¤ì¤òŬÀÚ¤ÊÃÍ(‘:’ ¤Þ¤¿¤Ï‘;’)¤ËÀßÄꤷ¤Þ¤¹¡¥

¥Õ¥¡¥¤¥ë̾¤Ë¤â;·×¤ÊÃí°Õ¤¬É¬Íפˤʤê¤Þ¤¹¡¥(DJGPP¤Î¤è¤¦¤Ê) autoconf¤ò½½Ê¬¤Ë¼Â¹Ô¤Ç¤­¤ëUnix¤Î¤è¤¦¤ÊDOS¥Ù¡¼¥¹¤Î´Ä ¶­¤Ç¤Ï¡¤Ä̾ïŤ¤¥Õ¥¡¥¤¥ë̾¤òŬÀڤ˰·¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¤¬¡¤¥Ñ¥Ã¥±¡¼¥¸¤ò²õ¤· ¤Æ¤·¤Þ¤¦¿¼¹ï¤ÊÀ©¸Â¤â»Ä¤Ã¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤ÎÌäÂê¤Î¤¤¤¯¤Ä¤«¤Ï¡¤ doschk ¥Ñ¥Ã ¥±¡¼¥¸¤ÇÍÆ°×¤Ë¸¡½Ð¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

°Ê²¼¤Ï´Êñ¤ÊÁ´ÂÎÁü¤Ç¤¹¡¥ÌäÂê¤Ë¤Ï¡¤Å¬ÍѤò¼¨¤¹¤¿¤áSFN/LFN¤Ç°õ¤¬ ¤Ä¤¤¤Æ¤¤¤Þ¤¹¡¥SFN¤Ï¡¤Windows²¼¤ÎDOSÁë¤Ç¤Ï¤Ê¤¯¡¤¥×¥ì¡¼¥ó¤Ê DOS¤Ë¤Î¤ß´ØÏ¢¤¹¤ëÌäÂê¤ò°ÕÌ£¤·¡¤°ìÊýLFN¤Ï¡¤Windows¤Ç¤â¸ºß ¤¹¤ëÌäÂê¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡¥

Ê£¿ô¤Î¥É¥Ã¥È¤Î¶Ø»ß (SFN)

DOS¤Ï¥Õ¥¡¥¤¥ë̾¤ËÊ£¿ô¤Î¥É¥Ã¥È¤¬¤¢¤ë¤â¤Î¤ò°·¤¦¤³¤È¤¬ÉÔ²Äǽ¤Ç¤¹¡¥ ¤³¤ì¤Ï¡¤autoconf¤Ï.in¤ò¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ÎÀÜÈø»Ò¤Ë»È ÍѤ¹¤ë¤Î¤Ç¡¤°Ü¿¢À­¤Î¹â¤¤configure¥¹¥¯¥ê¥×¥È¤ò¹½ÃÛ¤·¤Æ¤¤¤ë¤È¤­¤Ë³Ð¤¨¤Æ¤ª ¤¯É¬Íפ¬¤¢¤ë¡¤ÆÃ¤Ë½ÅÍפʤ³¤È¤Ç¤¹¡¥

°Ê²¼¤ÏUnix¾å¤Ç¤Ï´°Á´¤ËOK¤Ç¤¹¡¥

AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([source.c foo.bar])
AC_OUTPUT

¤·¤«¤·¡¤¤½¤ì¤Ï‘config.h.in’¡¤‘source.c.in’¡¤¤½¤·¤Æ ‘foo.bar.in’¤¬É¬Íפˤʤë¤Î¤Ç¡¤DOS¤Ç¤ÏÌäÂ꤬¤¢¤ê¤Þ¤¹¡¥¥Ñ¥Ã ¥±¡¼¥¸¤òDOS¥Ù¡¼¥¹¤Î´Ä¶­¤Ç¤è¤ê°Ü¿¢À­¤ò¹â¤¯¤¹¤ë¤¿¤á¡¤¤½¤ÎÂå¤ï¤ê ¤Ë°Ê²¼¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¹¡¥

AC_CONFIG_HEADERS([config.h:config.hin])
AC_CONFIG_FILES([source.c:source.cin foo.bar:foobar.in])
AC_OUTPUT
¥É¥Ã¥È¤ÎÁ°ÃÖ¤Î¶Ø»ß (SFN)

DOS¤Ï¥É¥Ã¥È¤Ç»Ï¤Þ¤ë¥Õ¥¡¥¤¥ë̾¤ò°·¤¦¤³¤È¤¬ÉÔ²Äǽ¤Ç¤¹¡¥¤³¤ì¤ÏÄÌ ¾ï¡¤autoconf¤ËÂФ·¤Æ¤Ï¤¢¤Þ¤ê½ÅÍפǤϤʤ¤ÌäÂê¤Ç¤¹¡¥

Âçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ (LFN)

DOS¤ÏÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¤Î¤Ç¡¤Î㤨¤Ð¡¤‘INSTALL’¤È¤¤ ¤¦Ì¾¤Î¥Õ¥¡¥¤¥ë¤È‘install’¤È¤¤¤¦Ì¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÎξÊý¤ò»ý¤Ä¤³¤È¤¬¤Ç ¤­¤Þ¤»¤ó¡¥¤³¤ì¤Ï¡¤make¤Ë¤â±Æ¶Á¤·¤Þ¤¹¡¥¥Ç¥£¥ì¥¯¥È¥ê¤Ë ‘INSTALL’¤È¤¤¤¦Ì¾¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¾ì¹ç¡¤‘make install’¤Ï (‘install’¤¬PHONY ¤È¤·¤Æ°õ¤¬¤Ä¤¤¤Æ¤¤¤Ê¤¤¤È¤­)²¿¤â¤·¤Þ¤»¤ó¡¥

8+3¤ÎÀ©¸Â (SFN)

DOS¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¤¥Õ¥¡¥¤¥ë̾¤ÎºÇ½é¤Î8ʸ»ú¤ÈºÇ½é¤Î3ʸ»ú ¤Î³ÈÄ¥»Ò¤Î¤ßÊݸ¤µ¤ì¡¤¤½¤ì¤é¤Ï¥æ¥Ë¡¼¥¯¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤½¤ì¤Ï¡¤ foobar-part1.c¡¤foobar-part2.c¡¤¤½¤·¤Æ foobar-prettybird.c¤ÎÁ´¤Æ¤ÏƱ¤¸Ì¾Á°(FOOBAR-P.C)¤Ë¤Ê¤ê¤Þ¤¹¡¥ foo.bar¤Èfoo.bartender¤âƱ¤¸¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡¥

Ãí°Õ¡§¤³¤ì¤ÏÄ̾¥Õ¥¡¥¤¥ë̾¤ò¥æ¥Ë¡¼¥¯¤Ë¤¹¤ë¤¿¤á¤Ëû¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¿ô»ú ¤Î¸åÃÖ¤ò»ÈÍѤ¹¤ë¤Î¤Ç¡¤Windows¤Ç¤ÏÌäÂê¤Ë¤Ê¤ê¤Þ¤»¤ó¡¥¤·¤«¤·¡¤¥ì¥¸¥¹¥È¥ê¤Î ÀßÄê¤Ç¤³¤Îưºî¤òÄä»ß²Äǽ¤Ç¤¹¡¥¤³¤ì¤ÇŤ¤¥Õ¥¡¥¤¥ë̾¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Ä¥ê¡¼ ¤ò¡¤SFN¤ÈLFN¤Î´Ä¶­¤Ç¶¦Í­¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¤¾åµ­¤ÎÌäÂê ¤ÏÆ±Íͤ˸ºß¤·¤Þ¤¹¡¥

̵¸ú¤Êʸ»ú

DOS¥Õ¥¡¥¤¥ë̾¤Ç̵¸ú¤Êʸ»ú¤â¤¢¤ê¡¤¤½¤Î¤¿¤áÈò¤±¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç ¤¦¡¥LFN¤Î´Ä¶­¤Ç¤Ï¡¤‘/’¡¤‘\’¡¤‘?’¡¤‘*’¡¤‘:’¡¤ ‘<’¡¤‘>’¡¤‘|’¡¤¤½¤·¤Æ‘"’¤Ç¤¹¡¥SFN´Ä¶­¤Ç¤Ï¡¤¤½¤ì °Ê³°¤Ë¤â̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡¥¤³¤ì¤Ë¤Ï¡¤‘+’¡¤‘,’¡¤‘[’¡¤¤½¤·¤Æ ‘]’¤¬´Þ¤Þ¤ì¤Þ¤¹¡¥