Previous: Standard Targets, Up: Makefile Conventions [Contents]
install
¥¿¡¼¥²¥Ã¥È¤ò½ñ¤¯¤È¤¡¢»°¤Ä¤ÎÉôÎà¤Ë¤½¤Î¥³¥Þ¥ó¥ÉÁ´¤Æ¤òʬÎष
¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÉáÄ̤Τâ¤Î¤È¡¢pre-installation¥³¥Þ¥ó¥É¤È¡¢
post-installation¥³¥Þ¥ó¥É¤Ë¡£
ÉáÄ̤Υ³¥Þ¥ó¥É¤ÏŬÀڤʾì½ê¤Ë¥Õ¥¡¥¤¥ë¤ò°Üư¤·¡¢¤½¤ì¤é¤Î¥â¡¼¥É¤òÀßÄꤹ¤ë¡£ ¤½¤ì¤é¤Ï¤É¤ó¤Ê¥Õ¥¡¥¤¥ë¤â¡¢´°Á´¤Ë¤½¤ì¤é¤¬Â°¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤«¤é¼ê¤ËÆþ¤ë¤â¤Î ¤ò½ü¤¤¤Æ¡¢ÊѲ½¤µ¤»¤Ê¤¤¤Î¤¬Îɤ¤¡£
pre-installation¤Èpost-installation¤Î¥³¥Þ¥ó¥É¤Ï¾¤Î¥Õ¥¡¥¤¥ë¤òÊѤ¨¤Æ¤âÎÉ ¤¤¡£ÆÃ¤Ë¡¢¤½¤ì¤é¤ÏÂç°èŪ¤ÊÀßÄê¥Õ¥¡¥¤¥ë¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊÔ½¸¤·¤ÆÎɤ¤¡£
pre-installation¥³¥Þ¥ó¥É¤Ïŵ·¿Åª¤Ë¤ÏÉáÄ̤Υ³¥Þ¥ó¥É¤ÎÁ°¤Ë¼Â¹Ô¤µ¤ì¡¢ post-installation¥³¥Þ¥ó¥É¤Ïŵ·¿Åª¤Ë¤ÏÉáÄ̤Υ³¥Þ¥ó¥É¤Î¸å¤ËÁö¤é¤µ¤ì¤ë¡£
post-installation¥³¥Þ¥ó¥É¤ÎºÇ¤âÉáÄ̤ÎÍøÍѤÏinstall-info
¤òÁö¤é¤»¤ë
¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤ÏÉáÄ̤Υ³¥Þ¥ó¥É¤Ç¤Ï¹Ô¤ï¤ìÆÀ¤Ê¤¤¡£¤½¤ì¤Ï¡¢´°Á´¤Ë¤Ï¡¢¤½¤·
¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥Ñ¥Ã¥±¡¼¥¸¤À¤±¤«¤é¤Ï¼ê¤ËÆþ¤é¤Ê¤¤¥Õ¥¡¥¤¥ë(Info¥Ç¥£¥ì
¥¯¥È¥ê)¤òÊѲ½¤µ¤»¤ë¡£¤½¤ì¤Ï¥Ñ¥Ã¥±¡¼¥¸¤ÎInfo¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÉá
Ä̤Υ³¥Þ¥ó¥É¤Î¸å¤Ë¹Ô¤ï¤ì¤ëɬÍפ¬¤¢¤ë¤Î¤Çpost-installation¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£
¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤Ïpre-installation¥³¥Þ¥ó¥É¤òɬÍפȤ·¤Ê¤¤¤¬¡¢²æ¡¹¤Ï¤½ ¤ì¤¬É¬ÍפȤµ¤ì¤ë¾ì¹ç¤Ë¤À¤±¤½¤Îµ¡Ç½¤ò»ý¤Ä¡£
install
µ¬Â§¤Î¥³¥Þ¥ó¥É¤ò¤³¤ì¤é»°¤Ä¤ÎÉôÎà¤ËʬÎह¤ë¤¿¤á¤Ë¡¢¤½¤ì¤é¤Î
Ãæ¤ËÉôÎà¹Ô¤òÁÞÆþ¤·¤Ê¤µ¤¤¡£ÉôÎà¹Ô¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤ÎÉôÎà¤ò»ØÄꤹ¤ë¡£
ÉôÎà¹Ô¤Ï¥¿¥Ö¤ÈÆÃÊ̤ÊMakeÊÑ¿ô¤Ø¤Î»²¾È¤Ë²Ã¤¨¤Æ¡¢ºÇ¸å¤ËÉÕ²ÃŪ¤Ê¥³¥á¥ó¥È¤«¤é À®¤ë¡£¤½¤ì¤¾¤ì¤ÎÉôÎà¤ËÂФ·¤Æ°ì¤Ä¡¢»È¤¦¤³¤È¤¬¤Ç¤¤ë»°¤Ä¤ÎÊÑ¿ô¤¬¤¢¤ë¡£ÊÑ¿ô ̾¤ÏÉôÎà¤ò»ØÄꤹ¤ë¡£ÉôÎà¹Ô¤Ï¡¢¤³¤ì¤é»°¤Ä¤ÎMakeÊÑ¿ô¤ÏÉáÄÌ̤ÄêµÁ(¤½¤·¤Æ¡¢ ¤½¤ì¤é¤òmakefile¤ÇÄêµÁ¤¹¤ë¤Ù¤¤Ç¤Ï¤Ê¤¤)¤Î¤Ç¡¢ÉáÄ̤μ¹ԤǤϲ¿¤â¹Ô ¤ï¤Ê¤¤¡£
¤³¤³¤Ç¡¢¤½¤ì¤¾¤ì¤½¤ì¤¬²¿¤ò°ÕÌ£¤¹¤ë¤Î¤«ÀâÌÀ¤¹¤ë¥³¥á¥ó¥È¤È¶¦¤Ë¡¢¤½¤Î»°¤Ä¤Î ¤¢¤êÆÀ¤ëÉôÎà¹Ô¤òµó¤²¤ë¡£
$(PRE_INSTALL) # Pre-install commands follow. $(POST_INSTALL) # Post-install commands follow. $(NORMAL_INSTALL) # Normal commands follow.
¤â¤·install
µ¬Â§¤Î»Ï¤á¤ËÉôÎà¹Ô¤ò»È¤ï¤Ê¤¤¤Ê¤é¡¢Á´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï¡¢ºÇ
½é¤ÎÉôÎà¹Ô¤Þ¤ÇÉáÄ̤Τâ¤Î¤ÈʬÎव¤ì¤ë¡£¤â¤·¤É¤ÎÉôÎà¹Ô¤â»È¤ï¤Ê¤¤¤Ê¤é¡¢Á´¤Æ
¤Î¥³¥Þ¥ó¥É¤ÏÉáÄ̤Τâ¤Î¤ÈʬÎव¤ì¤ë¡£
¤³¤ì¤é¤Ïuninstall
¤Î¤¿¤á¤ÎÉôÎà¹Ô¤Ç¤¢¤ë¡£
$(PRE_UNINSTALL) # Pre-uninstall commands follow. $(POST_UNINSTALL) # Post-uninstall commands follow. $(NORMAL_UNINSTALL) # Normal commands follow.
ŵ·¿Åª¤Ë¤Ï¡¢pre-uninstall¥³¥Þ¥ó¥É¤ÏInfo¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¹àÌܤòºï½ü¤¹¤ë¤¿ ¤á¤Ë»È¤ï¤ì¤ë¤À¤í¤¦¡£
¤â¤·install
¤äuninstall
¥¿¡¼¥²¥Ã¥È¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Î¥µ¥Ö¥ë¡¼¥Á
¥ó¤È¤·¤Æ¿¶¤ëÉñ¤¦°Í¸´Ø·¸¤ò»ý¤Ä¤Ê¤é¡¢¤½¤ì¤¾¤ì¤Î°Í¸´Ø·¸¤Î¥³¥Þ¥ó¥É
¤òÉôÎà¹Ô¤Ç»Ï¤á¤ë¤Ù¤¤Ç¡¢¼çÍפʥ¿¡¼¥²¥Ã¥È¤Î¥³¥Þ¥ó¥É¤âÉôÎà¹Ô¤Ç»Ï¤á¤ë¤Ù¤¤À¡£
¤³¤¦¤·¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥³¥Þ¥ó¥É¤¬¡¢°Í¸´Ø·¸¤Î¤½¤ì¤¬¼ÂºÝ¤ËÁö¤ë¤«¤É¤¦¤«¤Ë´Ø·¸
¤Ê¤¯¡¢Àµ¤·¤¤ÉôÎà¤Ë°ÌÃÖ¤¹¤ë¤è¤¦¤ËÊݾڤǤ¤ë¡£
pre-installation¤Èpost-installation¤Î¥³¥Þ¥ó¥É¤Ï¤³¤ì¤é°Ê³°¤Î¥×¥í¥°¥é¥à¤ò Áö¤é¤»¤ë¤Ù¤¤Ç¤Ï¤Ê¤¤¡£
[ basename bash cat chgrp chmod chown cmp cp dd diff echo egrep expand expr false fgrep find getopt grep gunzip gzip hostname install install-info kill ldconfig ln ls md5sum mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee test touch true uname xargs yes
¤³¤ÎÊýË¡¤Ç¥³¥Þ¥ó¥É¤ò¶èÊ̤¹¤ëÍýͳ¤Ï¥Ð¥¤¥Ê¥ê¡¦¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë¤¿¤á¤Ç¤¢¤ë¡£ ŵ·¿Åª¤Ë¤Ï¥Ð¥¤¥Ê¥ê¡¦¥Ñ¥Ã¥±¡¼¥¸¤ÏÁ´¤Æ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ëɬ Íפ¬¤¢¤ë¾¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤ß¡¢¤½¤ì¤é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡¢¤½¤ì¼«¿È¤ÎÊýË¡¤ò»ý ¤Ä—¤À¤«¤é¡¢¤½¤ì¤ÏÉáÄ̤Υ¤¥ó¥¹¥È¡¼¥ë¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤ëɬÍפ¬¤Ê¤¤¡£¤· ¤«¤·¡¢¥Ð¥¤¥Ê¥ê¡¦¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ïpre-installation¤È post-installation¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤ë¤³¤È¤òɬÍפȤ¹¤ë¡£
¥Ð¥¤¥Ê¥ê¡¦¥Ñ¥Ã¥±¡¼¥¸¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤Ïpre-installation¤È post-installation¤Î¥³¥Þ¥ó¥É¤òÈ´¿è¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÆ¯¤¯¡£¤³¤³¤Ç pre-installation¥³¥Þ¥ó¥É¤òÈ´¿è¤¹¤ë°ì¤Ä¤ÎÊýË¡¤ò¼¨¤¹¡£
make -n install -o all \ PRE_INSTALL=pre-install \ POST_INSTALL=post-install \ NORMAL_INSTALL=normal-install \ | gawk -f pre-install.awk
¤³¤³¤Çpre-install.awk¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¼¡¤Î¤â¤Î¤ò´Þ¤à¡£
$0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0} on {print $0} $0 ~ /^\t[ \t]*pre_install[ \t]*$/ {on = 1}
pre-installation¥³¥Þ¥ó¥É¤Î·ë²ÌÀ¸¤¸¤ë¥Õ¥¡¥¤¥ë¤Ï¥Ð¥¤¥Ê¥ê¡¦¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó ¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Î°ìÉô¤È¤·¤Æ¡¢¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¡£