Next: Conditional Programs, Previous: Linking, Up: A Program [Contents][Index]
configure
¤ÎÃÖ´¹¼°(Î㤨¤Ð¡¤AC_SUBST
¤ÇÄêµÁ¤µ¤ì¤ëFOO
¤òÍѤ¤¤¿‘@FOO@’¤ä‘$(FOO)’)¤ò‘_SOURCES’ ÊÑ¿ô¤Ë½ñ¤¹þ¤à
¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡¥¤³¤ÎÍýͳ¤òÀâÌÀ¤¹¤ë¤Î¤Ï¾¯¤·Æñ¤·¤¤¤Î¤Ç¤¹¤¬¡¤Ã±½ã¤Ë¸À¤Ã
¤ÆÆ°ºî¤·¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç½½Ê¬¤Ç¤·¤ç¤¦¡¥¤³¤ì¤ò»î¤ß¤¿¾ì¹ç¡¤Automake¤Ï¥¨¥é¡¼
¤òȯ¤·¤Þ¤¹¡¥
¹¬¤¤¡¤Æ±¤¸·ë²Ì¤òãÀ®¤¹¤ë¤¿¤á¤ËÆó¤Ä¤ÎÊ̤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡¥°ì¤Ä¤Ï¡¤
configure
¤ÎÃÖ´¹¼°¤ò_LDADD
ÊÑ¿ô¤Ç»ÈÍѤ¹¤ëÊýË¡¤Ç¡¤¤â¤¦°ì¤Ä
¤Ï¡¤Automake¤Î¾ò·ï¼°¤ò»ÈÍѤ¹¤ëÊýË¡¤Ç¤¹¡¥
_LDADD
¤ÎÃÖ´¹¼°¤ò»ÈÍѤ·¤¿¾ò·ï¥³¥ó¥Ñ¥¤¥ëAutomake¤Ï¡¤¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤¬Á´¤Æ¤Î¾õ¶·¤Ç¥Ó¥ë¥É¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¾ì¹ç
¤Ç¤â¡¤¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤Þ¤ì¤ë²ÄǽÀ¤¬¤¢¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¤¹¤Ù¤ÆÃΤäÆ
¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¾ò·ï¤Ë¤è¤Ã¤Æ¤Î¤ß¥Ó¥ë¥É¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¤Å¬ÀÚ¤Ê
‘EXTRA_’ÊÑ¿ô¤Ç¥ê¥¹¥È¥¢¥Ã¥×¤¹¤Ù¤¤Ç¤¹¡¥Î㤨¤Ð¡¤¾ò·ï¤Ë¤è¤Ã¤Æ
hello-linux.c¤ähello-generic.c¤òhello
¤ËÁȤ߹þ¤à¾ì
¹ç¡¤Makefile.am¤Ë°Ê²¼¤Î¤â¤Î¤ò´Þ¤á¤Þ¤¹¡¥
bin_PROGRAMS = hello hello_SOURCES = hello-common.c EXTRA_hello_SOURCES = hello-linux.c hello-generic.c hello_LDADD = $(HELLO_SYSTEM) hello_DEPENDENCIES = $(HELLO_SYSTEM)
configure.ac¤Ç$(HELLO_SYSTEM)
¤ÎÃÖ´¹¼°¤òÀßÄꤹ¤ë¤³¤È¤¬²Ä
ǽ¤Ç¤¹¡¥
… case $host in *linux*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;; *) HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;; esac AC_SUBST([HELLO_SYSTEM]) …
¤³¤Î¾ì¹ç¡¤HELLO_SYSTEM
¤Ïhello-linux.o¤ä
hello-generic.o¤ÇÃÖ´¹¤µ¤ì¡¤¥Ó¥ë¥É¤·¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Ë
hello_DEPENDENCIES
¤Èhello_LDADD
¤ËÄɲ䵤ì¤Þ¤¹¡¥
¾ò·ï¤Ë¤è¤Ã¤Æ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Î¤è¤ê´Êñ¤ÊÊýË¡¤È¤·¤Æ¤Ï¡¤ Automake¤Î¾ò·ï¼°¤ò»ÈÍѤ¹¤ë¤³¤È¤¬Â¿¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥Î㤨¤Ð¡¤Æ±¤¸ hello¤ÎÎã¤ò¥Ó¥ë¥É¤¹¤ë¤¿¤á¡¤°Ê²¼¤Î¤è¤¦¤ÊÆâÍÆ¤ÎMakefile.am ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤·¤ç¤¦¡¥
bin_PROGRAMS = hello if LINUX hello_SOURCES = hello-linux.c hello-common.c else hello_SOURCES = hello-generic.c hello-common.c endif
¤³¤Î¾ì¹ç¡¤configure.ac¤ÇAM_CONDITIONAL
¤ò»ÈÍѤ·¤Æ
LINUX
¾ò·ï¼°¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹(see Conditionals)¡¥
Automake¤Ï¡¤¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î´°Á´¤Ê¥ê¥¹¥È¤ò¹½À®¤¹¤ë¤¿¤á¤Ë¤½¤ì¤¾¤ì¤ÎÊÑ¿ô ¤ÎÆâÍÆ¤òÄ´ºº¤¹¤ë¤Î¤Ç¡¤¤³¤Î¤è¤¦¤Ê¾ò·ï¤ò»ÈÍѤ¹¤ë¤È¤¤Ï¡¤‘EXTRA_’ÊÑ ¿ô¤ò»ÈÍѤ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡¥
¥×¥í¥°¥é¥à¤Ç¿¤¯¤Î¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¤¤ª¤½¤é¤¯¾ò·ïÉÕ¤Î
+=
¤Î¤Û¤¦¤¬Ë¾¤Þ¤·¤¤¤Ç¤·¤ç¤¦¡¥
bin_PROGRAMS = hello hello_SOURCES = hello-common.c if LINUX hello_SOURCES += hello-linux.c else hello_SOURCES += hello-generic.c endif