arguments (@pxref{Compile mode}):
@example
-a23$ @kbd{libtool gcc -g -O -c foo.c}
+a23$ @kbd{libtool --mode=compile gcc -g -O -c foo.c}
gcc -g -O -c foo.c
echo timestamp > foo.lo
-a23$ @kbd{libtool gcc -g -O -c hello.c}
+a23$ @kbd{libtool --mode=compile gcc -g -O -c hello.c}
gcc -g -O -c hello.c
echo timestamp > hello.lo
a23$
object and the standard object differ:
@example
-burger$ @kbd{libtool gcc -g -O -c foo.c}
+burger$ @kbd{libtool --mode=compile gcc -g -O -c foo.c}
gcc -g -O -c -fPIC -DPIC foo.c
mv -f foo.o foo.lo
gcc -g -O -c foo.c >/dev/null 2>&1
-burger$ @kbd{libtool gcc -g -O -c hello.c}
+burger$ @kbd{libtool --mode=compile gcc -g -O -c hello.c}
gcc -g -O -c -fPIC -DPIC hello.c
mv -f hello.o hello.lo
gcc -g -O -c hello.c >/dev/null 2>&1
@file{libhello.la} with your compiler (@pxref{Link mode}):
@example
-a23$ @kbd{libtool gcc -g -O -o libhello.la foo.o hello.o}
+a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o}
libtool: cannot build libtool library `libhello.la' from non-libtool \
objects
a23$
archive, not a shared library (@pxref{Static libraries}).}:
@example
-a23$ @kbd{libtool gcc -g -O -o libhello.la foo.lo hello.lo \
+a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
-rpath /usr/local/lib -lm}
mkdir @value{objdir}
ar cru @value{objdir}/libhello.a foo.o hello.o
Now, let's try the same trick on the shared library platform:
@example
-burger$ @kbd{libtool gcc -g -O -o libhello.la foo.lo hello.lo \
+burger$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
-rpath /usr/local/lib -lm}
mkdir @value{objdir}
ld -Bshareable -o @value{objdir}/libhello.so.0.0 foo.lo hello.lo -lm
(@pxref{Link mode}):
@example
-a23$ @kbd{libtool gcc -g -O -o hell main.o libhello.la -lm}
+a23$ @kbd{libtool --mode=link gcc -g -O -o hell main.o libhello.la -lm}
gcc -g -O -o hell main.o ./@value{objdir}/libhello.a -lm
a23$
@end example
On @samp{burger} the situation is different:
@example
-burger$ @kbd{libtool gcc -g -O -o hell main.o libhello.la -lm}
+burger$ @kbd{libtool --mode=link gcc -g -O -o hell main.o libhello.la -lm}
gcc -g -O -o @value{objdir}/hell main.o -L./@value{objdir} -R/usr/local/lib -lhello -lm
creating hell
burger$
Thing (TM) for you:
@example
-burger$ @kbd{libtool gcc -g -O -o test test.o /usr/local/lib/libhello.la}
+burger$ @kbd{libtool --mode=link gcc -g -O -o test test.o /usr/local/lib/libhello.la}
gcc -g -O -o @value{objdir}/test test.o -Wl,--rpath
-Wl,/usr/local/lib /usr/local/lib/libhello.a -lm
creating test
the executable wrapper (@pxref{Execute mode}):
@example
-burger$ @kbd{libtool gdb hell}
+burger$ @kbd{libtool --mode=execute gdb hell}
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is no warranty for GDB; type "show warranty" for details.
(@pxref{Install mode}):
@example
-a23# @kbd{libtool cp libhello.la /usr/local/lib/libhello.la}
+a23# @kbd{libtool --mode=install cp libhello.la /usr/local/lib/libhello.la}
cp libhello.la /usr/local/lib/libhello.la
cp @value{objdir}/libhello.a /usr/local/lib/libhello.a
ranlib /usr/local/lib/libhello.a
Here is the shared library example:
@example
-burger# @kbd{libtool install -c libhello.la /usr/local/lib/libhello.la}
+burger# @kbd{libtool --mode=install install -c libhello.la /usr/local/lib/libhello.la}
install -c @value{objdir}/libhello.so.0.0 /usr/local/lib/libhello.so.0.0
install -c libhello.la /usr/local/lib/libhello.la
install -c @value{objdir}/libhello.a /usr/local/lib/libhello.a
@cindex postinstallation
@cindex installation, finishing
@cindex libraries, finishing installation
-Then, running @samp{libtool -n --finish @var{libdir}} can give you
+Then, running @samp{libtool -n --mode=finish @var{libdir}} can give you
further hints on what to do (@pxref{Finish mode}):
@example
-burger# @kbd{libtool -n --finish /usr/local/lib}
+burger# @kbd{libtool -n --mode=finish /usr/local/lib}
PATH="$PATH:/sbin" ldconfig -m /usr/local/lib
-----------------------------------------------------------------
Libraries have been installed in:
(but you probably don't want to) using libtool:
@example
-burger$ @kbd{libtool ./install-sh -c libhello.a /local/lib/libhello.a}
+burger$ @kbd{libtool --mode=install ./install-sh -c libhello.a /local/lib/libhello.a}
./install-sh -c libhello.a /local/lib/libhello.a
ranlib /local/lib/libhello.a
burger$
@file{libhello} that depends on @file{libm}:
@example
-burger$ @kbd{libtool gcc -g -O -o libhello.la foo.lo hello.lo \
+burger$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
-rpath /usr/local/lib -lm}
burger$
@end example
@samp{-module} to the other link flags:
@example
-burger$ @kbd{libtool gcc -module -o libhello.la foo.lo \
+burger$ @kbd{libtool --mode=link gcc -module -o libhello.la foo.lo \
hello.lo -rpath /usr/local/lib -lm}
burger$
@end example
dlopen:
@example
-burger$ @kbd{libtool gcc -export-dynamic -o hell-dlopener main.o}
+burger$ @kbd{libtool --mode=link gcc -export-dynamic -o hell-dlopener main.o}
burger$
@end example