+2007-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/libtool.texi (Invoking libtool): Document `--tag'.
+ (Tags): New node, backported from HEAD.
+ (Other languages): Adjust.
+ * NEWS: Update.
+
2007-01-27 James Su <james.su@gmail.com>
* libltdl/ltdl.c (lt_dlmutex_register): Fix usage of old unlock
* Initial support for the Sun compiler suite on GNU/Linux.
* Improved support for GNU/kFreeBSD and GNU/NetBSD.
* Search paths with GCC on multilib systems like x86_64 have been fixed.
+* The libtool --tag argument which has been supported since version 1.5
+ is documented now.
* Bug Fixes.
\f
New in 1.5.22: 2005-12-18; CVS version 1.5.21a, Libtool team:
Using libtool with other languages
-* C++ libraries::
+* C++ libraries:: Writing libraries for C++
+* Tags:: Tags
Troubleshooting
Display basic configuration options. This provides a way for packages
to determine whether shared or static libraries will be built.
+@item --tag=@var{tag}
+Use configuration variables from tag @var{tag} (@pxref{Tags}).
+
@item --preserve-dup-deps
Do not remove duplicate dependencies in libraries. When building packages
with static libraries, the libraries may depend circularly on each other
and what special considerations you need to make if you do not use C.
@menu
-* C++ libraries::
+* C++ libraries:: Writing libraries for C++
+* Tags:: Tags
@end menu
@node C++ libraries
initialized.
+@node Tags
+@section Tags
+@cindex tag names
+@cindex language names
+@cindex inferring tags
+
+Libtool supports multiple languages through the use of tags. Technically
+a tag corresponds to a set of configuration variables associated with a
+language. These variables tell @command{libtool} how it should create
+objects and libraries for each language.
+
+Tags are defined at @command{configure}-time for each language activated
+in the package. Here is the correspondence between language names and tags
+names.
+
+@multitable {Windows Resource} {Tag name}
+@item Language name @tab Tag name
+@item C @tab CC
+@item C++ @tab CXX
+@item Java @tab GCJ
+@item Fortran 77 @tab F77
+@item Windows Resource @tab RC
+@end multitable
+
+@command{libtool} tries to automatically infer which tag to use from
+the compiler command being used to compile or link. If it can't infer
+a tag, then it defaults to the configuration for the @code{C} language.
+
+The tag can also be specified using @command{libtool}'s
+@option{--tag=@var{tag}} option (@pxref{Invoking libtool}). It is a good
+idea to do so in @file{Makefile} rules, because that will allow users to
+substitute the compiler without relying on @command{libtool} inference
+heuristics. When no tag is specified, @command{libtool} will default
+to @code{CC}; this tag always exists.
+
+
@node Troubleshooting
@chapter Troubleshooting
@cindex troubleshooting