ライブラリのコンパイル・ビルド・
lightside:% libtool cc -c foo/x.c -o foo/x.lo
other
--config
--debug
-n, --dry-run
--features
--finish
--mode=MODE
compile
execute
finish
install
link
uninstall
--features
--help
--version
-lNAME
-o OUTPUT-FILE
-LLIBDIR
-R LIBDIR
-all-static
-avoid-version
-dlopen FILE
-dlpreopen FILE
-export-dynamic
-export-symbols FILE
-export-symbols-regex REGEX
-module
-no-undefined
-release RELEASE
-rpath LIBDIR
-static
-version-info CURRENT[:REVISION[:AGE]]
-dlopen FILE
CURRENT
REVISION
AGE
config.guess
config.sub
ltconfig
ltmain.sh
struct lt_dlsymlist { const char *NAME; lt_ptr_t ADDRESS; }
const lt_dlsymlist * lt_preloaded_symbols;
lightside:~% libtool cc -c foo.c cc -c -fPIC -DPIC foo.c -o .libs/foo.lo cc -c foo.c >/dev/null 2>&1 lightside:~% libtool cc -c bar.c cc -c -fPIC -DPIC bar.c -o .libs/bar.lo cc -c bar.c >/dev/null 2>&1
lightside:~% libtool cc -o libbaz.a foo.o bar.o ar cru libbaz.a foo.o bar.o ranlib libbaz.a
lightside:~% libtool cc -o libbaz.la foo.lo bar.lo \ -rpath /usr/local/lib cc -shared -Wl,-soname -Wl,libbaz.so.0 \ ar cru .libs/libbaz.a foo.o bar.o creating libbaz.la
lightside:/tmp% libtool -n install libbaz.la /usr/local/lib (cd /usr/local/lib && ln -s libbaz.so.0.0.0 libbaz.so.0) (cd /usr/local/lib && ln -s libbaz.so.0.0.0 libbaz.so) install libbaz.la /usr/local/lib/libbaz.la ranlib /usr/local/lib/libbaz.a chmod 644 /usr/local/lib/libbaz.a
cc -c a.c
cc a.c -lbaz -L/usr/local/lib
lightside:~% libtool cc a.o libbaz.la -o a -lm cc a.o -Wl,--rpath -Wl,/usr/local/lib \ -o .libs/a -lm lightside:~% libtool gdb a [複雑なデバッグのセッションは省略] lightside:~% libtool install -c a /usr/local/bin/a install -c .libs/a /usr/local/bin/a
AC_DEFUN(AM_INIT_AUTOMAKE) AC_INIT(a.c) AM_INIT_AUTOMAKE(a, 1.0) AC_PROG_CC AM_PROG_LIBTOOL AC_OUTPUT(Makefile)
# ライブラリのビルド lib_LTLIBRARIES=libbaz.la libbaz_la_SOURCES = foo.c bar.c libbaz_la_LDFLAGS = -version-info 0:0:0
bin_PROGRAMS = a a.debug
# a.c と libbaz.la から a をビルド a_SOURCES = a.c a_LDADD = libbaz.la
# 静的デバッグバージョンを作成 a_debug_SOURCES = a.c a_debug_LDADD = libbaz.la a_debug_LDFLAGS = -static
lightside:~% aclocal; libtoolize; automake --add-missing; autoconf