Next: Directory Variables, Previous: Utilities in Makefiles, Up: Makefile Conventions [Contents]
Makefile¤Ï¤¢¤ë¥³¥Þ¥ó¥É¤ä¥ª¥×¥·¥ç¥ó¤Ê¤É¤ò¾å½ñ¤¤¹¤ë¤¿¤á¤ËÊÑ¿ô¤òÄ󶡤¹¤ë¤Ù ¤¤À¡£
¤È¤ê¤ï¤±¡¢¤Û¤È¤ó¤É¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¦¥×¥í¥°¥é¥à¤òÊÑ¿ô¤òÄ̤·¤ÆÁö¤é¤»¤ë¤Ù¤
¤À¡£¤À¤«¤é¡¢¤â¤·Bison¤ò»È¤¦¤Ê¤é¡¢BISON
¤È̾ÉÕ¤±¤é¤ì¤¿¡¢¤½¤Î¥Ç¥Õ¥©
¥ë¥È¤ÎÃͤ¬‘BISON = bison’¤ÈÀßÄꤵ¤ì¤Æ¤¤¤ëÊÑ¿ô¤ò»ý¤Á¡¢Bison¤ò»È¤¦É¬
Íפ¬¤¢¤ë¤È¤¤Ë¤Ï¤¤¤Ä¤Ç¤â$(BISON)
¤ò»È¤Ã¤Æ¤½¤ì¤ò»²¾È¤·¤Ê¤µ¤¤¡£
ln
¡¢rm
¡¢mv
¤Ê¤É¤Ê¤É¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë´ÉÍý¥æ¡¼¥Æ¥£¥ê¥Æ¥£
¤Ï¤³¤Î¤ä¤êÊý¤ÎÊÑ¿ô¤òÄ̤·¤¿»²¾È¤ò¤¹¤ëɬÍפϤʤ¤¡£¥æ¡¼¥¶¤Ï¤½¤ì¤é¤ò¾¤Î¥×¥í
¥°¥é¥à¤ÈÃÖ¤´¹¤¨¤ëɬÍפ¬¤Ê¤¤¤Î¤Ç¡£
¤½¤ì¤¾¤ì¤Î¥×¥í¥°¥é¥à̾ÊÑ¿ô¤Ï¡¢¥×¥í¥°¥é¥à¤Ë¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤ë¤Î¤Ë»È¤ï¤ì¤ë
¥ª¥×¥·¥ç¥óÊÑ¿ô¤È°ì½ï¤Ë»È¤ï¤ì¤ë¤Ù¤¤À¡£¥ª¥×¥·¥ç¥óÊÑ¿ô¤Î̾Á°¤òÆÀ¤ë¤Î¤Ë¥×¥í
¥°¥é¥à̾ÊÑ¿ô¤Î̾Á°¤Ë‘FLAGS’¤òÉÕ¤±²Ã¤¨¤Ê¤µ¤¤¡£—Î㤨¤Ð¡¢
BISONFLAGS
¤Î¤è¤¦¤Ë¡£(C¥³¥ó¥Ñ¥¤¥é¤ËÂФ¹¤ëCFLAGS
¡¢yacc¤ËÂФ¹
¤ëYFLAGS
¡¢lex¤ËÂФ¹¤ëLFLAGS
¤Î̾Á°¤Ï¤³¤Îµ¬Â§¤Ë¤ÏÎ㳰Ū¤À¤¬¡¢
²æ¡¹¤Ï¤½¤ì¤é¤Ïɸ½àŪ¤Ê¤Î¤Ç¤½¤¦¤·¤Æ¤ª¤¯¡£) ¥×¥ê¥×¥í¥»¥Ã¥µ¤òÁö¤é¤»¤ë¤É¤Î¥³
¥ó¥Ñ¥¤¥ë¤Î¥³¥Þ¥ó¥É¤Ç¤âCPPFLAGS
¤ò»È¤¤¡¢ld
¤ÎľÀÜŪ¤Ê»ÈÍѤÀ¤±
¤Ç¤Ï¤Ê¤¯¡¢¥ê¥ó¥¯¤ò¹Ô¤¦¤É¤Î¥³¥ó¥Ñ¥¤¥ë¤Î¥³¥Þ¥ó¥É¤Ç¤âLDFLAGS
¤ò»È¤¤¤Ê
¤µ¤¤¡£
¤â¤·¤¢¤ë¥Õ¥¡¥¤¥ë¤ÎŬÀڤʥ³¥ó¥Ñ¥¤¥ë¤Ë»È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤C¥³¥ó¥Ñ
¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ì¤Ð¡¢CFLAGS
¤Ë¤½¤ì¤é¤òÆþ¤ì¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¥æ¡¼
¥¶¤ÏCFLAGS
¤ò¼«Ê¬¤Ç¼«Í³¤Ë»ØÄê¤Ç¤¤ë¤È´üÂÔ¤¹¤ë¡£Âå¤ï¤ê¤Ë¡¢
CFLAGS
¤È¤ÏÆÈΩ¤ËɬÍפʥª¥×¥·¥ç¥ó¤òC¥³¥ó¥Ñ¥¤¥é¤ËÅϤ¹¤è¤¦¤ËÄ´À°¤·¤Ê
¤µ¤¤¡£¼¡¤Î¤è¤¦¤Ë¡¢¤½¤ì¤é¤òÌÀ¼¨Åª¤Ë¥³¥ó¥Ñ¥¤¥ë¤Î¥³¥Þ¥ó¥É¤Ë½ñ¤¯¤«¡¢°ÅÌۤε¬
§¤òÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡£
CFLAGS = -g ALL_CFLAGS = -I. $(CFLAGS) .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
‘-g’¥ª¥×¥·¥ç¥ó¤òCFLAGS
¤ËÆþ¤ì¤Ê¤µ¤¤¡£¤Ê¤¼¤Ê¤é¡¢¤½¤ì¤ÏŬÀڤʥ³
¥ó¥Ñ¥¤¥ë¤Ë¤ÏɬÍפǤϤʤ¤¤«¤é¤À¡£¤½¤ì¤òñ¤Ë¿ä¾©¤µ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Ç
¤¢¤ë¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤â¤·¥Ñ¥Ã¥±¡¼¥¸¤¬¥Ç¥Õ¥©¥ë¥È¤ÇGCC¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ
¤ì¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢CFLAGS
¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÃͤˑ-O’¤â
Æþ¤ì¤Æ¤â¤¤¤¤¡£
¥æ¡¼¥¶¤¬Â¾¤ò¾å½ñ¤¤¹¤ë¤Î¤ËCFLAGS
¤ò»È¤¦¤³¤È¤¬¤Ç¤¤ë¤Î¤Ç¡¢
CFLAGS
¤ò¥³¥ó¥Ñ¥¤¥ë¤Î¥³¥Þ¥ó¥É¤ÎºÇ¸å¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¤ò´Þ¤à
¾¤ÎÊÑ¿ô¤Î¸å¤ËÃÖ¤¤Ê¤µ¤¤¡£
CFLAGS
¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¦¤Î¤È¥ê¥ó¥¯¤ò¹Ô¤¦Î¾Êý¤Î¡¢C¥³¥ó¥Ñ¥¤¥é¤Î¤¢
¤é¤æ¤ëµ¯Æ°¤Ç»È¤ï¤ì¤ë¤Ù¤¤À¡£
¤¢¤é¤æ¤ëMakefile¤ÏINSTALL
¤È¤¤¤¦ÊÑ¿ô¤òÄêµÁ¤¹¤ë¤Ù¤¤Ç¡¢¤½¤ì¤Ï¥Õ¥¡¥¤
¥ë¤ò¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤¿¤á¤Î´ðËÜŪ¤Ê¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡£
¤¢¤é¤æ¤ëMakefile¤Ï¤Þ¤¿INSTALL_PROGRAM
¤ÈINSTALL_DATA
¤È¤¤¤¦
ÊÑ¿ô¤òÄêµÁ¤¹¤ë¤Ù¤¤À¡£(¤³¤ì¤é¤Ï³Æ¡¹¥Ç¥Õ¥©¥ë¥È¤Ï$(INSTALL)
¤Ç¤¢¤ë¤Ù
¤¤À¡£) ¤½¤·¤Æ¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ò¼ÂºÝ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Î¥³¥Þ¥ó¥É¤È¤·¤Æ¡¢¤½¤ì¤¾
¤ì¼Â¹Ô¥Õ¥¡¥¤¥ë¤È¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¤â¤Î¤ËÂФ·¤Æ»È¤¦¤Ù¤¤À¡£¤³¤ì¤é¤ÎÊÑ¿ô¤Ï
¼¡¤Î¤è¤¦¤Ë»È¤¤¤Ê¤µ¤¤¡£
$(INSTALL_PROGRAM) foo $(bindir)/foo $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
¥¤¥ó¥¹¥È¡¼¥ë¤Î¥³¥Þ¥ó¥É¤ÎÆóÈÖÌܤΰú¿ô¤È¤·¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê̾¤Ç¤Ï¤Ê¤¯¡¢¾ï¤Ë ¥Õ¥¡¥¤¥ë̾¤ò»È¤¤¤Ê¤µ¤¤¡£¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢ÊÌ¡¹ ¤Î¥³¥Þ¥ó¥É¤ò»È¤¤¤Ê¤µ¤¤¡£