libtool/TODO
1997-08-27 18:21:56 +00:00

94 lines
3.9 KiB
Plaintext

For next public release:
************************
* Document `execute' mode, and the experimental nature of -dlopen and
-dlpreopen.
* Some packages, such as GIMP, choose to put a note about
`--disable-shared' in their README:
----------------------------------------------------------------------
The GIMP uses GNU libtool in order to build shared libraries on a
variety of systems. While this is very nice for making usable
binaries, it can be a pain when trying to debug a program. For that
reason, compilation of shared libraries can be turned off by
specifying the "--disable-shared" option to "configure".
----------------------------------------------------------------------
Simply invoke configure in the top-level directory. Besides the usual
GNU configure options, there are the following SANE specific options:
--disable-shared
Don't use shared libraries. Useful for debugging or when there
is a problem building shared libraries.
----------------------------------------------------------------------
Perhaps a similar note could be added to ABOUT-NLS.
I'll add a suggestion to the libtool documentation, so that other
maintainers add this kind of note to their package documentation.
In the future:
**************
* Implement full multi-language support. Currently, this is only for
C++, but there are beginnings of this in the manual (Other Languages).
This includes writing libtool not to be so dependent on the compiler
used to configure it.
We especially need this for C++ linking, for which libtool currently
does not handle static constructors properly, even on operating
systems that support them. ``Don't use static constructors'' is no
longer a satisfactory answer.
* Writing libtool as a shell script means that proper variable quoting
is a real problem. Be careful when `eval'ing a string that the
arguments are properly quoted. Note that arguments with embedded
whitespace probably will cause problems (because of IFS).
I don't have good ideas on to fix the problems with whitespace, other
than subverting IFS entirely, perhaps always using an `eval "set
$quoted_args"' sequence.
* Another form of convenience library, suggested by Alexandre Oliva,
is to have undocumented utility libraries, where only the shared
version is installed.
* We could use libtool object convenience libraries that resolve
symbols to be included in a libtool archive.
* Somehow we need to make sure that static libraries never appear in
$deplibs. If a program linked against a library doesn't contain the
basename of the library (or is the same size), then the library is
probably static.
* Need to finalize the documentation, and give a specification of
`.la' files so that people can depend on their format. This also
needs to be done so that DLD uses a public interface to libtool
archives. This would be a good thing to put before the maintainance
notes.
Things to think about:
**********************
* Implement full support for other orthogonal library types
(libhello_g, libhello_p). Make these types configurable. Some
thinking will have to be done about the defaults, and what libhello
(standard type) should be.
Maybe we should just add an autoconf macro and get creative with
library_transform_name, or something. These changes should be
partially driven by the needs of packaging tools, such as RPM and
dpkg.
* Talk with RMS about his so-called `automatic package generation
tool.' This is probably what Thomas has been murmuring about for the
Hurd. We'll need to integrate package-supplied programs such as
libtool into that scheme, since it manages some of the preinstall and
postinstall commands, but isn't installed itself. Probably, things
like libtool should be distributed as part of such a binary package.
* Add support for windoze DLL's, and maybe other jumptable libs.
Check out Lesstif and Tcl configuration again (maybe they would be
interested in libtool by now?). The Cygnus win32 project may also be
of value, though it still seems pretty rudimentary right now.