Previous: Extending, Up: Not Enough   [Contents][Index]


22.2 ¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤ÎMakefile

¤Û¤È¤ó¤É¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¡¤¤¹¤Ù¤Æ¤ÎMakefile¤ÏAutomake¤ÇÀ¸À®¤µ¤ì ¤Þ¤¹¡¥¤·¤«¤·¡¤¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï¼ê½ñ¤­¤ÎMakefile¤ò¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê ¤ËÇÛÃÖ¤¹¤ëɬÍפ¬¤¢¤ë¥×¥í¥¸¥§¥¯¥È¤â¤¢¤ê¤Þ¤¹¡¥Î㤨¤Ð¡¤¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï ÆÈ¼«¤Î¥Ó¥ë¥É¥·¥¹¥Æ¥à¤òÍѤ¤¤¿¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¡¤¤½¤ì°Ê³° ¤ÏAutomake¤ò»ÈÍѤ·¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¤Ç¤·¤ç¤¦¡¥

°Ê²¼¤ÎºÆµ¢Åª¤Ê¥¿¡¼¥²¥Ã¥È¤ò¤¹¤Ù¤ÆÇ§¼±¤¹¤ëMakefile¤¬¤¢¤ë¥Ç¥£¥ì¥¯ ¥È¥ê¤Ç¤¢¤ì¤Ð¡¤Ç¤°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òSUBDIRS¤äDIST_SUBDIRS ¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

¥æ¡¼¥¶¤¬°Ê²¼¤Î¥¿¡¼¥²¥Ã¥È¤ò¼Â¹Ô¤·¤¿¤È¤­¡¤¥¿¡¼¥²¥Ã¥È¤Ï¤¹¤Ù¤Æ¤Î¥µ¥Ö¥Ç¥£¥ì ¥¯¥È¥ê¤ÇºÆµ¢Åª¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡¥¤³¤ì¤Ï¡¤¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Makefile¤¬¤½¤ì¤é¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤¬½ÅÍפǤ¢¤ëÍýͳ¤Ç¤¹¡¥

all

¥Ñ¥Ã¥±¡¼¥¸¤ò´°Á´¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤Automake¤¬À¸À®¤¹¤ë Makefile¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤¹¤¬¡¤¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Makefile¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡¥

distdir

tarball¤¬¹½ÃÛ¤µ¤ì¤ëÁ°¤Ë$(distdir)¤ËÇÛÉÛ¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤· ¤Þ¤¹¡¥¤â¤Á¤í¤ó¡¤¤³¤Î¥¿¡¼¥²¥Ã¥È¤âno-dist¥ª¥×¥·¥ç¥ó (see Options¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÉÔÍפǤ¹¡¥

ÊÑ¿ô$(top_distdir)¤È$(distdir)(see Dist)¤Ï¡¤ distdir¥¿¡¼¥²¥Ã¥È¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¤­¡¤¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤È¤Ê¤ë³°Éô¥Ñ¥Ã ¥±¡¼¥¸¤«¤éÅϤµ¤ì¤Þ¤¹¡¥¤³¤ì¤éÆó¤Ä¤ÎÊÑ¿ô¤Ï¡¤ºÆµ¢Åª¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È ¥ê¤ÇÄ´À°¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤¤¹¤Ç¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡¥

install
install-data
install-exec
uninstall

¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤ê¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤ê¤·¤Þ¤¹ (see Install)¡¥

install-info

Texinfo¥É¥­¥å¥á¥ó¥È¤À¤±¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹(see Texinfo)¡¥

installdirs

¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤¹¤¬¡¤¥Õ¥¡¥¤¥ë¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤»¤ó¡¥

check
installcheck

¥Ñ¥Ã¥±¡¼¥¸¤òÄ´ºº¤·¤Þ¤¹(see Tests)¡¥

mostlyclean
clean
distclean
maintainer-clean

¥¯¥ê¡¼¥ó¥ë¡¼¥ë¤Ç¤¹(see Clean)¡¥

dvi
pdf
ps
info
html

¤µ¤Þ¤¶¤Þ¤Ê½ñ¼°¤Î¥É¥­¥å¥á¥ó¥È¤ò¥Ó¥ë¥É¤·¤Þ¤¹(see Texinfo)¡¥

tags
ctags

TAGS¤ÈCTAGS¤ò¥Ó¥ë¥É¤·¤Þ¤¹(see Tags)¡¥

¥×¥í¥¸¥§¥¯¥È¤ÇGettext¤ò»ÈÍѤ·¤¿¤³¤È¤¬¤¢¤ë¾ì¹ç¡¤¤³¤ì¤Ï¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ ¤ÎMakefile¤¬Automake¤¬»ÈÍѲÄǽ¤À¤È¤¤¤¦Îɤ¤Îã¤Ë¤Ê¤ê¤Þ¤¹¡¥ po/¤Èintl/¤Ë¤¢¤ëgettextize¤µ¤ì¤¿ Makefile¤Ï¡¤¤³¤ì¤é¤¹¤Ù¤Æ¤Î¥¿¡¼¥²¥Ã¥È¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¼ê½ñ¤­¤Î Makefile¤Ç¤¹¡¥¤¹¤Ê¤ï¤Á¡¤Automake¥Ñ¥Ã¥±¡¼¥¸¤ÎSUBDIRS¤ËÄÉ ²Ã¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

DIST_SUBDIRS¤À¤±¤Ç¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤Æ¡¤SUBDIRS¤Ç¥ê¥¹ ¥È¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¤distclean¡¤ maintainer-clean¡¤¤½¤·¤Ædistdir¥ë¡¼¥ë¤À¤±¤¬É¬ÍפǤ¹ (see Conditional Subdirectories)¡¥

Ä̾¤³¤ì¤é¤Î¥ë¡¼¥ë¤Î¿¤¯¤Ï¡¤¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î¥µ¥Ö¥×¥í¥¸¥§¥¯¥È¤Ë¤Ï̵ ´Ø·¸¤Ç¤¹¤¬¡¤¥Ñ¥Ã¥±¡¼¥¸Á´ÂΤ¬¤¦¤Þ¤¯Æ°ºî¤¹¤ë¤¿¤á¤ËÍ׵ᤵ¤ì¤Þ¤¹¡¥²¿¤â¤·¤Ê ¤¤¥ë¡¼¥ë¤âOK¤Ê¤Î¤Ç¡¤¥É¥­¥å¥á¥ó¥È¤â¥¿¥°¤Î¥µ¥Ý¡¼¥È¤â¤Ê¤¤¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ ¤Î¥×¥í¥¸¥§¥¯¥È¤òÅý¹ç¤¹¤ë¾ì¹ç¤Ï¡¤Ã±½ã¤ËMakefile¤Ë¤òÄɲ乤뤳¤È ¤â²Äǽ¤Ç¤·¤ç¤¦¡¥

EMPTY_AUTOMAKE_TARGETS = dvi pdf ps info html tags ctags
.PHONY: $(EMPTY_AUTOMAKE_TARGETS)
$(EMPTY_AUTOMAKE_TARGETS):

¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î¥Ó¥ë¥É¥·¥¹¥Æ¥à¤È¤ÎÅý¹ç¤Î¤â¤¦°ì¤Ä¤Î¦Ì̤ϡ¤¤½¤ì¤é¤¬ VPATH¤Î¥Ó¥ë¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ë¤è¤ê¤Þ¤¹¡¥ÌÀ¤é¤«¤Ë¡¤¥µ¥Ö¥Ñ¥Ã ¥±¡¼¥¸¤¬VPATH¤Î¥Ó¥ë¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤¥Ñ¥Ã¥±¡¼¥¸Á´ÂΤǤÏVPATH ¤Î¥Ó¥ë¥É¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥¸À¤¤Âؤ¨¤ë¤È¡¤make distcheck¤ÏVPATH¤Î¥Ó¥ë¥É¤Ë°Í¸¤¹¤ë¤¿¤áưºî¤·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡¥¤³ ¤ì¤òÍøÍѤ·¤Ê¤¤¤³¤È¤â²Äǽ¤Ç¤¹(¼ÂºÝ¡¤Automake¥æ¡¼¥¶¤Ë¤Ïmake distcheck¤òʹ¤¤¤¿¤³¤È¤â¤Ê¤¤¿Í¤¬¤¿¤¯¤µ¤ó¤¤¤Þ¤¹)¡¥¤½¤ì°Ê³°¤Î¿Í¡¹¤Ï¡¤´û ¸¤ÎMakefile¤òVPATH¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë²þ¤¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥ ¤½¤¦¤¹¤ë¤³¤È¤ÎɬÍ×À­¤òAutomake¤¬Í׵᤹¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¥Autoconf ¤À¤±¤ÏɬÍפȤ·¤Þ¤¹(see Build Directories in The Autoconf Manual)¡¥É¬ÍפȤʤëÂåÆþ¤Ï¡¤Makefile¤Î½è Íý¤Çconfigure¤ÇÄêµÁ¤µ¤ì¤ë@scrdir@¡¤ @top_srcdir@¡¤¤½¤·¤Æ@top_buildir@¤Ç(see Preset Output Variables in The Autoconf Manual)¡¤¤½¤ì¤é¤ÏÁ°½Ò¤Î$(distdir)¤È$(top_distdir)ÊÑ¿ô¤Î ¤è¤¦¤ËMakefile¤Ç·×»»¤µ¤ì¤Þ¤»¤ó¡¥

¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤ÎMakefile¤¬¾åµ­¤ÇÍ׵ᤵ¤ì¤ë¥¿¡¼¥²¥Ã¥È¤òƳÆþ¤¹ ¤ë¤è¤¦¤ËÊÔ½¸¤¹¤ë¤Î¤Ï¡¤ÉÔÊØ¤Ê¤³¤È¤â»þ¡¹¤¢¤ê¤Þ¤¹¡¥Î㤨¤Ð¡¤¿·¤·¤¤¥Ð¡¼¥¸¥ç ¥ó¤Ë´Êñ¤Ë¹¹¿·¤Ç¤­¤ë¤è¤¦¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¤Î¥½¡¼¥¹¤ò¤¤¤¸¤é¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤ ¿Í¤â¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥

¾¤Ë¤âÆó¤Ä¤Î¹Í¤¨¤¬¤¢¤ê¤Þ¤¹¡¥GNU make¤È²¾Äꤹ¤ë¾ì¹ç¡¤°ì¤Ä¤ÎÊýË¡¤È¤·¤Æ¡¤ Í׵ᤵ¤ì¤ë¥¿¡¼¥²¥Ã¥È¤òÄɲä·¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¤ÎMakefile¤ò¥¤¥ó¥¯¥ë¡¼ ¥É¤·¤¿GNUmakefile¤ò¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÄɲ乤뤳¤È¤¬²Äǽ¤Ç¤¹¡¥ VPATH¤Î¥Ó¥ë¥É¤Ç¤³¤ì¤òưºî¤¹¤ë¤¿¤á¡¤GNUmakefile¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î ¥Ó¥ë¥É¤Ç¤À¤Þ¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥¤³¤¦¤¹¤ë¤¿¤á¤ÎºÇ¤â´Êñ¤ÊÊýË¡¤Ï¡¤Âå¤ï¤ê¤Ë ¤³¤ì¤òGNUmakefile.in¤Ë½ñ¤­¡¤³°Éô¥Ñ¥Ã¥±¡¼¥¸¤«¤é AC_CONFIG_FILES¤Ç½èÍý¤µ¤»¤ë¤³¤È¤Ç¤¹¡¥Î㤨¤Ð¡¤Makefile¤Ç ¥É¥­¥å¥á¥ó¥È¤Î¥¿¡¼¥²¥Ã¥È°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥¿¡¼¥²¥Ã¥È¤òÄêµÁ¤·¤Æ¤¤¤ë¤È²¾Äꤷ¡¤ check¥¿¡¼¥²¥Ã¥È¤Ï¼ÂºÝ¤Ë¤Ïtest¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¾ì¹ç¡¤ GNUmakefile(¤Þ¤¿¤ÏGNUmakefile.in)¤ò°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤Ç¤·¤ç ¤¦¡¥

# First, include the real Makefile
include Makefile
# Then, define the other targets needed by Automake Makefiles.
.PHONY: dvi pdf ps info html check
dvi pdf ps info html:
check: test

include¤ò»ÈÍѤ·¤Ê¤¤Æ±¤¸¤è¤¦¤Ê¹Í¤¨¤Ï¡¤ËÜʪ¤ÎMakefile¤Ë¥ë¡¼ ¥ë¤òÁ÷¤ë¡¤Âå¤ï¤ê¤ÎMakefile¤ò½ñ¤¯¤³¤È¤Ç¡¤$(MAKE) -f Makefile.real $(AM_MAKEFLAGS) target (¥ª¥ê¥¸¥Ê¥ë¤ÎMakefile¤Î̾ Á°¤òÊѹ¹¤Ç¤­¤ë¾ì¹ç)¡¤¤Þ¤¿¤Ï¡¤cd subdir && $(MAKE) $(AM_MAKEFLAGS) target (¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î¥×¥í¥¸¥§¥¯¥È¤Î³¬Áؤò¤â¤¦°ì ¤Ä¿¼¤¯¤Ç¤­¤ë¾ì¹ç)¤Î¤¤¤º¤ì¤«¤òÍѤ¤¤Þ¤¹¡¥¤³¤ÎÂå¤ï¤ê¤ÎMakefile¤ò Automake¤ÇÀ¸À®²Äǽ¤À¤È¤¤¤¦¤Î¤Ï¡¤Îɤ¤ÃΤ餻¤Ç¤·¤ç¤¦¡¥¥ë¡¼¥ë¤òÁ÷¤ê¤Ä¤±¤ë -local ¥¿¡¼¥²¥Ã¥È(see Extending)¤À¤±¤¬É¬ÍפǤ¹¡¥¤â¤Á¤í¤ó¡¤¤½¤ì°Ê³° ¤ÎAutomake¤Îµ¡Ç½¤âÍøÍѲÄǽ¤Ê¤Î¤Ç¡¤Automake¤ËÇÛÉۤȥ¤¥ó¥¹¥È¡¼¥ë¤ò¼Â¹Ô¤µ ¤»¤ë¤³¤È¤ò·èÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤·¤ç¤¦¡¥°Ê²¼¤Ï¡¤¼Â¹Ô²Äǽ¤Ê Makefile.am¤Ç¤¹¡¥

all-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) all
check-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) test
clean-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) clean

# Assuming the package knows how to install itself
install-data-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) install-data
install-exec-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) install-exec
uninstall-local:
        cd subdir && $(MAKE) $(AM_MAKEFLAGS) uninstall

# Distribute files from here.
EXTRA_DIST = subdir/Makefile subdir/program.c ...

¤³¤Î¥¢¥¤¥Ç¥£¥¢¤ÏºÇ¸å¤Î¼êÃʤǡ¤¥µ¥Ö¥×¥í¥¸¥§¥¯¥È¤Î¥Ó¥ë¥É¥·¥¹¥Æ¥à¤ò̵»ë¤·¡¤ ¤¹¤Ù¤Æ¤ò¤³¤ÎÂå¤ï¤ê¤ÎMakefile.am¤ÇÀ¸À®¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤VPATH¤Î¥Ó ¥ë¥É¤¬É¬Íפǥµ¥Ö¥×¥í¥¸¥§¥¯¥È¤¬¤½¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤Èó¾ï¤ËÍý¤Ë ¤«¤Ê¤Ã¤¿¤â¤Î¤Ë´¶¤¸¤ë¤Ç¤·¤ç¤¦¡¥


Previous: Extending, Up: Not Enough   [Contents][Index]