Configuring libtool
* AC_PROG_LIBTOOL:: Configuring @code{libtool} in @file{configure.in}.
+* Configure notes:: Platform-specific notes for configuration.
Including libtool in your package
@menu
* AC_PROG_LIBTOOL:: Configuring @code{libtool} in @file{configure.in}.
+* Configure notes:: Platform-specific notes for configuration.
@end menu
@node AC_PROG_LIBTOOL
@code{aclocal}. This may lead to weird errors when versions don't
match.
+
+@node Configure notes
+@subsection Platform-specific configuration notes
+
+While Libtool tries to hide as many platform-specific features as possible,
+some have to be taken into account when configuring either the Libtool package
+or a libtoolized package.
+
+@itemize
+
+@item
+On AIX there are two different styles of shared linking, one in which symbols
+are bound at link-time and one in which symbols are bound at runtime only,
+similar to ELF@. In case of doubt use @code{LDFLAGS=-Wl,-brtl} for the latter style.
+
+@item
+On AIX, native tools are to be preferred over binutils; especially for C++ code,
+if using the AIX Toolbox GCC 4.0 and binutils, configure with
+@code{AR=/usr/bin/ar LD=/usr/bin/ld NM='/usr/bin/nm -B'}.
+
+@item
+On AIX, the @command{/bin/sh} is very slow due to its inefficient handling
+of here-documents. A modern shell is preferable:
+@example
+CONFIG_SHELL=/bin/bash; export $CONFIG_SHELL
+$CONFIG_SHELL ./configure [...]
+@end example
+
+@item
+For C++ code with templates, it may be necessary to specify the way the compiler
+will generate the instantiations. For Portland pgCC version5, use
+@code{CXX='pgCC --one_instantiation_per_object'} and avoid parallel @command{make}.
+
+@item
+On Darwin, for C++ code with templates you need two level shared libraries.
+Libtool builds these by default if @env{MACOSX_DEPLOYMENT_TARGET} is set to
+10.3 or later at @command{configure} time. See @url{rdar://problem/4135857}
+for more information on this issue.
+
+@c @item
+@c FreeBSD @command{make} does not conform to @sc{posix} in its handling
+@c of file modification times, which causes it to loop while building libtool.
+@c Consider using a different @command{such} as GNU make instead.
+
+@item
+The default shell on UNICOS 9, a ksh 88e variant, is too buggy to
+correctly execute the libtool script. Users are advised to install a
+modern shell such as GNU bash.
+
+@item
+Some HP-UX @command{sed} programs are horribly broken, and cannot handle
+libtool's requirements, so users may report unusual problems. There
+is no workaround except to install a working @command{sed} (such as GNU sed)
+on these systems.
+
+@item
+The vendor-distributed NCR MP-RAS @command{cc} programs emits copyright
+on standard error that confuse tests on size of @file{conftest.err}. The
+workaround is to specify @env{CC} when run configure with
+@code{CC='cc -Hnocopyr'}.
+
+@item
+Any earlier DG/UX system with ELF executables, such as R3.10 or
+R4.10, is also likely to work, but hasn't been explicitly tested.
+
+@item
+On Reliant Unix libtool has only been tested with the Siemens C-compiler
+and an old version of @command{gcc} provided by Marco Walther.
+
+@item
+@file{libtool.m4}, @file{ltdl.m4} and the @file{configure.ac} files are marked
+to use autoconf-mode, which is distributed with GNU Emacs 21, Autoconf itself,
+and all recent releases of XEmacs.
+
+@item
+When building on some linux systems for multilib targets
+@command{libtool} sometimes guesses the wrong paths that the linker
+and dynamic linker search by default. If this occurs, you may override
+libtool's guesses at @command{configure} time by setting the
+@command{autoconf} cache variables
+@code{lt_cv_sys_lib_search_path_spec} and
+@code{lt_sys_lib_dlsearch_path_spec} respectively to the correct search
+paths.
+
+@end itemize
@node Distributing
@section Including libtool in your package