.o .libs/hello.o -lm ar cr .libs/libhello.a foo.o hello.o ranlib .libs/libhello.a creating libhello.la (cd .libs && rm -f libhello.la && ln -s ../libhello.la libhello.la) burger$ Now that's significantly cooler... Libtool just ran an obscure 'ld' command to create a shared library, as well as the static library. Note how libtool creates extra files in the '.libs' subdirectory, rather than the current directory. This feature is to make it easier to clean up the build directory, and to help ensure that other programs fail horribly if you accidentally forget to use libtool when you should. Again, you may want to have a look at the '.la' file to see what Libtool stores in it. In particular, you will see that Libtool uses this file to remember the destination directory for the library (the argument to '-rpath') as well as the dependency on the math library ('-lm'). ---------- Footnotes ---------- (1) If you don't specify an 'rpath', then libtool builds a libtool convenience archive, not a shared library (*note Static libraries::).