? .libtool.texi.swp ? < ? cvs.diff ? libtool.html Index: libtool.texi =================================================================== RCS file: /cvsroot/libtool/libtool/doc/libtool.texi,v retrieving revision 1.192 diff -u -p -u -r1.192 libtool.texi --- libtool.texi 30 Apr 2005 09:30:14 -0000 1.192 +++ libtool.texi 11 Aug 2005 11:09:22 -0000 @@ -497,29 +497,29 @@ position-dependent code. @cindex @samp{.lo} files @cindex object files, library Since this is a library implementation detail, libtool hides the -complexity of PIC compiler flags by using separate library object files -(that end in @samp{.lo} instead of @samp{.o}). On systems without shared -libraries (or without special PIC compiler flags), these library object -files are identical to ``standard'' object files. +complexity of PIC compiler flags and uses separate library object files +(the PIC one lives in the @address@hidden subdirectory and the +static one lives in the current directory). On systems without shared +libraries (or without special PIC compiler flags), the PIC library object +files are not created. To create library object files for @file{foo.c} and @file{hello.c}, simply invoke libtool with the standard compilation command as arguments (@pxref{Compile mode}): @example -a23$ @kbd{libtool compile gcc -g -O -c foo.c} +a23$ @kbd{libtool --mode=compile gcc -g -O -c foo.c} gcc -g -O -c foo.c -o foo.o -a23$ @kbd{libtool compile gcc -g -O -c hello.c} +a23$ @kbd{libtool --mode=compile gcc -g -O -c hello.c} gcc -g -O -c hello.c -o hello.o a23$ @end example -Note that libtool silently creates an additional control file for each +Note that libtool silently creates an additional control file on each @samp{compile} invocation. The @samp{.lo} file is the libtool object, which Libtool uses to determine what object file may be built into a -shared library, and the @samp{.o} file is a standard object file. On address@hidden, only static libraries are supported so the library objects -look like this: +shared library. On @samp{a23}, only static libraries are supported so +the library objects look like this: @example # foo.lo - a libtool object file @@ -540,13 +540,16 @@ additional PIC object by inserting the a flags into the compilation command: @example -burger$ @kbd{libtool compile gcc -g -O -c foo.c} +burger$ @kbd{libtool --mode=compile gcc -g -O -c foo.c} mkdir @value{objdir} gcc -g -O -c foo.c -fPIC -DPIC -o @value{objdir}/foo.o gcc -g -O -c foo.c -o foo.o >/dev/null 2>&1 burger$ @end example +Note that Libtool automatically created @address@hidden directory +upon its first execution, where PIC library object files will be stored. + Since @samp{burger} supports shared libraries, and requires PIC objects to build them, Libtool has compiled a PIC object this time, and made a note of it in the libtool object: @@ -573,7 +576,7 @@ inside @samp{#ifdef PIC} for example), y the @option{-no-suppress} option to libtool's compile mode: @example -burger$ @kbd{libtool compile gcc -no-suppress -g -O -c hello.c} +burger$ @kbd{libtool --mode=compile gcc -no-suppress -g -O -c hello.c} gcc -g -O -c hello.c -fPIC -DPIC -o @value{objdir}/hello.o gcc -g -O -c hello.c -o hello.o burger$