Next: , Previous: Libtool Libraries, Up: A Shared Library   [Contents][Index]


7.3.3 Libtool¥é¥¤¥Ö¥é¥ê¤Î¥Ó¥ë¥É¤Î¾ò·ïʬ´ô

¥×¥í¥°¥é¥à¤Î¾ò·ï¼°¤Î¤è¤¦¤Ë(see Conditional Programs)¡¤¥é¥¤¥Ö¥é¥ê¤Î ¾ò·ïÉÕ¤­¥Ó¥ë¥É¤Ë¤â¼ç¤ËÆó¤Ä¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡¥Automake¤Î¾ò·ï¼°¤ò»ÈÍѤ¹¤ë ÊýË¡¤È¡¤Autoconf¤ÎAC_SUBST¤ò»ÈÍѤ¹¤ëÊýË¡¤Ç¤¹¡¥

µ¤¤òÉÕ¤±¤ë¤Ù¤­½ÅÍפʼÂÁõ¤Î¾ÜºÙ¤Ï¡¤¥é¥¤¥Ö¥é¥ê¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¾ì½ê¤¬ libtool¤Ë¤È¤Ã¤Æ½ÅÍפÀ¤È¤¤¤¦¤³¤È¤Ç¤¹¡¥¤½¤ì¤Ï¡¤-rpath¥ª¥×¥·¥ç¥ó¤ò »ÈÍѤ·¤Æ¥ê¥ó¥¯»þ¤Ë¼¨¤µ¤ì¤ë¤â¤Î¤¬É¬Íפˤʤê¤Þ¤¹¡¥

Automake¤Î¼Â¹Ô»þ¤Ë¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê ¤ËÂФ·¡¤Automake¤Ï¼«Æ°Åª¤ËŬÀڤʑ-rpath’¥ª¥×¥·¥ç¥ó¤òlibtool¤Ë¶¡µë ¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤lib_LTLIBRARIES¤Î¤è¤¦¤Ë¡¤¥¤¥ó¥¹¥È¡¼¥ë²Äǽ¤Ê _LTLIBRARIES¤ËÌÀ¼¨Åª¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ç ¤¹¡¥

¤·¤«¤·¡¤configure»þ¤Ë·èÄꤵ¤ì¤ë(EXTRA_LTLIBRARIES¤Ëµ­½Ò¤µ¤ì¤Æ¤¤ ¤ë)¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¡¤Automake¤ÏºÇ½ªÅª¤Ê¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤¬Ê¬ ¤«¤ê¤Þ¤»¤ó¡¥¤½¤Î¤è¤¦¤Ê¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¡¤Å¬Àڤʑ_LDFLAGS’ÊÑ¿ô¤Ë ‘-rpath’¥ª¥×¥·¥ç¥ó¤ò¼êư¤ÇÄɲ乤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥

°Ê²¼¤ÎÎã¤Ç¡¤¤³¤ì¤éÆó¤Ä¤Î¼êË¡¤Î°ã¤¤¤òÀâÌÀ¤·¤Þ¤¹¡¥

¤³¤ÎÎã¤Ï¡¤$(WANTEDLIBS)¤¬AC_SUBST¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤Ç¡¤ ./configure»þ¤Ëlibfoo.la¡¤libbar.la¡¤¤½¤ÎξÊý¡¤¤Þ ¤¿¤Ï¶õ¤ÇÀßÄꤵ¤ì¤Þ¤¹¡¥$(WANTEDLIBS)¤Ïlib_LTLIBRARIES¤Ë½ñ ¤«¤ì¤Æ¤¤¤Þ¤¹¤¬¡¤Automake¤Ï¡¤¤½¤ì¤¬libfoo.la¤Þ¤¿¤Ï libbar.la¤Ë´ØÏ¢ÉÕ¤±¤µ¤ì¤ë¤³¤È¤ò¡¤¤³¤ì¤éÆó¤Ä¤Î¥é¥¤¥Ö¥é¥ê¤ËÂФ¹¤ë ¥ê¥ó¥¯¥ë¡¼¥ë¤¬ºîÀ®¤µ¤ì¤ë¤È¤­¤Þ¤Ç¿ä¬¤¹¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ç¤¹¡¥¤³¤Î¤¿¤á¡¤ÆÃ ¤Ë-rpath°ú¿ô¤òÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥

EXTRA_LTLIBRARIES = libfoo.la libbar.la
lib_LTLIBRARIES = $(WANTEDLIBS)
libfoo_la_SOURCES = foo.c …
libfoo_la_LDFLAGS = -rpath '$(libdir)'
libbar_la_SOURCES = bar.c …
libbar_la_LDFLAGS = -rpath '$(libdir)'

¤³¤ì¤Ï¡¤Æ±¤¸Makefile.am¤Ç¡¤WANT_LIBFOO¤È WANT_LIBBAR¤È¤¤¤¦Ì¾Á°¤ÎAutomake¤Î¾ò·ï¼°¤ò»ÈÍѤ·¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ê ¤Þ¤¹¡¥Automake¤Ï¡¤Î¾Êý¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¡¤·ë¶É $(libdir)¤Ë¤Ê¤ë¤³¤È¤¬ÌÀ¤é¤«¤Ê¤Î¤Ç¡¤-rpath¤ÎÀßÄê¤ò¼«Ê¬¤Ç ·×»»¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

lib_LTLIBRARIES =
if WANT_LIBFOO
lib_LTLIBRARIES += libfoo.la
endif
if WANT_LIBBAR
lib_LTLIBRARIES += libbar.la
endif
libfoo_la_SOURCES = foo.c …
libbar_la_SOURCES = bar.c …