Next: , Previous: Preset Output Variables, Up: Makefile Substitutions   [Contents][Index]


4.7.2 ¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊÑ¿ô

°Ê²¼¤ÎÊÑ¿ô¤Ï¡¤¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡¥¾ÜºÙ¤Ï¡¤ Variables for Installation Directories in The GNU Coding Standards¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥¤³¤ì¤é ¤ÎÊÑ¿ô¤ò»ÈÍѤ¹¤ë¤È¤­¤È¤½¤ÎÊýË¡¤Î¾ÜºÙ¤Ï¡¤¤³¤Î¥»¥¯¥·¥ç¥ó¤Î½ª¤ê¤ò»²¾È¤·¤Æ¤¯ ¤À¤µ¤¤¡¥

Variable: bindir

¥æ¡¼¥¶¤¬¼Â¹Ô¤¹¤ë¼Â¹Ô·Á¼°¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: datadir

ÆÉ¤ß¹þ¤ßÀìÍѤΥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤Ê¤¤¥Ç¡¼¥¿¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯ ¥È¥ê¤Ç¤¹¡¥

Variable: exec_prefix

¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥×¥ì¥Õ¥£¥¯¥¹¤Ç¤¹¡¥¥Ç¥Õ¥© ¥ë¥È¤Ïprefix¤ÈƱ¤¸¤Ç¤¹¡¥exec_prefix¤Ë¤¤¤í¤¤¤í¤Ê¤â¤Î¤òľÀÜ¥¤ ¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤ÏÈò¤±¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡¥¤·¤«¤·¡¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸ ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¤exec_prefix ¤«¤éÁêÂÐŪ¤Ê¤â¤Î¤Ë¤¹¤Ù¤­¤Ç¤¹¡¥

Variable: includedir

C¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: infodir

Info·Á¼°¤Î¥É¥­¥å¥á¥ó¥È¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: libdir

¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: libexecdir

¾¤Î¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤¹¤ë¡¤¼Â¹Ô²Äǽ¤Ê¥×¥í¥°¥é¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯ ¥È¥ê¤Ç¤¹¡¥

Variable: localstatedir

½¤Àµ²Äǽ¤Ê¥·¥ó¥°¥ë¥Þ¥·¥ó¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: mandir

man·Á¼°¤Î¥É¥­¥å¥á¥ó¥È¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: oldincludedir

GCC¥³¥ó¥Ñ¥¤¥é°Ê³°¤Î¤¿¤á¤ÎC¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç ¤¹¡¥

Variable: prefix

Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¶¦Ä̤Υ¤¥ó¥¹¥È¡¼¥ë¥×¥ì¥Õ¥£¥¯¥¹¤Ç¤¹¡¥ exec_prefix¤¬°Û¤Ê¤ëÃͤÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤prefix¤Ï¥¢¡¼¥­¥Æ ¥¯¥Á¥ãÈó°Í¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤Î¤ß»ÈÍѤµ¤ì¤Þ¤¹¡¥

Variable: sbindir

¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬¼Â¹Ô¤¹¤ë¼Â¹Ô·Á¼°¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

Variable: sharedstatedir

½¤Àµ²Äǽ¤Ê¡¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤Ê¤¤¥Ç¡¼¥¿¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È ¥ê¤Ç¤¹¡¥

Variable: sysconfdir

ÆÉ¤ß¹þ¤ßÀìÍѤΡ¤¥·¥ó¥°¥ë¥Þ¥·¥ó¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡¥

¤³¤ì¤é¤ÎÊÑ¿ô¤Î¤Û¤È¤ó¤É¤Ï¡¤prefix¤äexec_prefix¤Ë°Í¸¤¹¤ëÃÍ ¤Ë¤Ê¤ê¤Þ¤¹¡¥¥Ç¥£¥ì¥¯¥È¥êÊÑ¿ô¤Î½ÐÎÏÃͤ¬Å¸³«¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¹Í褵¤ì¤Æ¤¤¤Þ¤¹¡¥ ŵ·¿Åª¤ÊÎã¤È¤·¤Æ¡¤‘@datadir@’¤Ï¡¤‘/usr/local/share’ ¤Ç¤Ï¤Ê¤¯ ‘${prefix}/share’¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡¥

°Ê²¼¤Îưºî¤Ï¡¤GNU coding standards¤Ç¼¨¤µ¤ì¤ì¤Æ¤¤¤Æ¡¤¥æ¡¼¥¶¤¬¼Â ¹Ô»þ¤Ë¤½¤¦¤Ê¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥

make

configure¤Ë»ØÄꤵ¤ì¤ë¤â¤Î¤È¤Ï°Û¤Ê¤ë¥×¥ì¥Õ¥£¥¯¥¹¤ò»ØÄꤹ¤ë¤³¤È ¤¬¤Þ¤À²Äǽ¤Ç¡¤¤½¤Î¾ì¹ç¤ËɬÍפ¬¤¢¤ì¤Ð¡¤¥Ñ¥Ã¥±¡¼¥¸¤Ïmake¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥× ¥ì¥Õ¥£¥¯¥¹¤ËÂбþ¤¹¤ë¤è¤¦¤Ë°Í¸À­¤¬¥Ï¡¼¥É¥³¡¼¥É²½¤µ¤ì¤Þ¤¹¡¥

make install

°Û¤Ê¤ë¥¤¥ó¥¹¥È¡¼¥ë°ÌÃÖ¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¡¤¤½¤Î¾ì¹ç¡¤¥Ñ¥Ã¥±¡¼¥¸¤Ï¥³¥ó ¥Ñ¥¤¥ë¤Ç»ØÄꤷ¤¿¾ì½ê¤Ë¡¤¤Þ¤À°Í¸¤·¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¤ ‘make install’¤ò¼Â¹Ô¤¹¤ë¤È¤­¤ÏºÆ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤»¤ó)¡¥¤ª¸ß¤¤¤Ë¥°¥ë¡¼ ¥×²½¤µ¤ì¤¿Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¡¤¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë·èÄꤹ¤ë¿Í¤â¿¤¤¤Î¤Ç¡¤¤³¤ì¤Ï Èó¾ï¤Ë½ÅÍ×¤ÊÆÃħ¤Ç¡¤¤½¤³¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¸å¤ËºÇ½ªÅª¤Ê¾ì½ê¤Ë¥ê¥ó¥¯¤¬Ä¥¤é¤ì ¤Þ¤¹¡¥

¤³¤ì¤é¤Îµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¤datadir¤¬prefix¤Î¸½ºß¤Î Ãͤ˰͸¤¹¤ë‘${prefix}/share’¤È¤·¤ÆÄêµÁ¤µ¤ì¤¿¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È ¤¬½ÅÍפǤ¹¡¥

ÅöÁ³¤Î¤³¤È¤Ç¤¹¤¬¡¤¤³¤ì¤é¤ÎÊÑ¿ô¤òMakefiles¤Ç»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤» ¤ó¡¥Î㤨¤Ð¡¤configure¤Çdatadir¤òɾ²Á¤¹¤ëÂå¤ï¤ê¤Ë¡¤ Makefile¤Ç¡¤Î㤨¤Ð‘AC_DEFINE_UNQUOTED(DATADIR, "$datadir")’ ¤È¤·¤Æ¥Ï¡¼¥É¥³¡¼¥É¤¹¤ë¾ì¹ç¤Ï¡¤‘-DDATADIR="$(datadir)"’¤ò CPPFLAGS¤Ë²Ã¤¨¤ë¤Ù¤­¤Ç¤¹¡¥

ƱÍͤˡ¤datadir¤È¤½¤ÎÃç´Ö¤ò¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ä¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¤Ç ÃÖ´¹¤¹¤ë¤¿¤á¤Ë¡¤AC_OUTPUT_FILES¤ËÍê¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¯¡¤¤½¤ÎÂå¤ï¤ê¤Ë make¤Ë¤½¤ÎÃÖ´¹¤ò¹Ô¤Ê¤ï¤»¤Æ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð¡¤Autoconf¤Ï ‘.in’¤Ç½ª¤ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÇÛÉÛ¤·¤Æ¤¤¤Æ¡¤°Ê²¼¤Î¤è¤¦ ¤ÊMakefile¤Î°ìÉô¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡¥

edit = sed \
        -e 's,@datadir\@,$(pkgdatadir),g' \
        -e 's,@prefix\@,$(prefix),g'
autoconf: Makefile $(srcdir)/autoconf.in
        rm -f autoconf autoconf.tmp
        $(edit) $(srcdir)/autoconf.in >autoconf.tmp
        chmod +x autoconf.tmp
        mv autoconf.tmp autoconf
autoheader: Makefile $(srcdir)/autoheader.in
        rm -f autoheader autoheader.tmp
        $(edit) $(srcdir)/autoconf.in >autoheader.tmp
        chmod +x autoheader.tmp
        mv autoheader.tmp autoheader

ÃíÌܤ¹¤Ù¤­¤³¤È¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡¥

@datadir\@

¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Çconfigure¤¬‘@datadir@’¤òsed¤Î¼°¼«¿È¤Ë ÃÖ´¹¤¹¤ë¤³¤È¤ò˸¤²¤Þ¤¹¡¥

$(pkgdatadir)

@pkgdatadir@’¤ò»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡ª Âå¤ï¤ê¤Ë¡¤makefileÊÑ¿ô¤Î¥Þ¥Ã ¥Á¥ó¥°¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥

,

$(pkgdatadir)’¤Î¤è¤¦¤Ë‘/’¤ò´Þ¤ó¤Ç¤¤¤ëÊÑ¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤¢¤ë ¤Î¤Ç¡¤sed¤Î¼°¤Ç‘/’¤ò»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡¥

Makefile¤Ø¤Î°Í¸À­

edit¤Ï¡¤¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥óÆÃÍ­¤ÎÃÍ(prefixÅù)¤Ë°Í¸¤·¡¤ VERSION¤ä¤½¤ì¤Î°ÊÁ°¤Î¤â¤Î¤Ë¤Ï°Í¸¤·¤Ê¤¤Ãͤò»ÈÍѤ¹¤ë¤Î¤Ç¡¤½ÐÎÏ¤Ï configure.ac¤Ç¤Ï¤Ê¤¯Makefile¤Ë°Í¸¤·¤Þ¤¹¡¥

°Í¸À­¤Îʬ³ä¤Èñ°ì¤Î¥µ¥Õ¥£¥Ã¥¯¥¹¥ë¡¼¥ë

¤½¤ì¤é¤ò»ÈÍѤ¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¹¡ª¾åµ­¤ÎÃÇÊÒ¤ò¡¤(¤ª¤½¤é¤¯)°Ê²¼¤Î¤è¤¦¤Ë½ñ ¤­´¹¤¨¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¹.

autoconf autoheader: Makefile
.in:
        rm -f $@ $@.tmp
        $(edit) $< >$@.tmp
        chmod +x $@.tmp
        mv $@.tmp $@

¾ÜºÙ¤Ï¡¤See Limitations of Make.

$(srcdir)

¥½¡¼¥¹¤Ø¤Î¥Ñ¥¹¤ò³Î¼Â¤Ë»ØÄꤷ¡¤¤½¤¦¤·¤Ê¤¤¾ì¹ç¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ïʬ³ä¥Ó¥ë¥É¤ò¥µ ¥Ý¡¼¥È¤·¤Ê¤¤¤Ç¤·¤ç¤¦¡¥


Next: , Previous: Preset Output Variables, Up: Makefile Substitutions   [Contents][Index]