Re: Question about Makefile templates for gtk



On Mon, Nov 08, 1999 at 12:03:52PM -0500, Owen Taylor wrote:
> To hopefully cut through some of the confusion:

    And clarify where AIX is "wierd" (in the sense of not being ELF).

>  - On some systems, linking one shared library against another is meaningless,
>    so libtool does not do it.
> 
>  - On sane systems, linking one shared library against another means that 
>    the linked against library is added as a dependency to the library
>    that is being linked.

    This is what AIX does.  However, it tries to verify the symbols are
sane before it defines the dependancy.  Sometimes a definite pain, but
perfectly solvable.

>    The library being linked against must be installed on many systems.
>    (I think because these systems actually put a full path to the 
>    library in the dependency.) This is not necessary on other systems,
>    such as ELF systems. However, libtool never allows you to link one 
>    library against another uninstalled library.

    On AIX, you can specify the path, so that non-installed libraries
can be linked against.  This is what my copy of libtool does.  AFAICT,
ELF systems don't care, and I'm not sure of any system that can't really
handle this.  eg, for an AIX link, it ends up:

ld -o libgtk.so.x.y $(OBJECTS) -blibpath:/usr/lib:/lib -L ../gdk/.libs -l gdk $(OTHER LIBS)

While the linker would want to add "../gdk/.libs" to libgtk's paths, it
won't because the paths are specified by the -blibpath option.  libtool
is afraid of the former, so it doesn't try to do the latter.

>    This flag was added to libtool; I presume with some testing.

    Libtool may have the flag, but it still does the wrong thing.  It
still postpones linking libgtk until libgdk is installed (in "make
install").  It cannot therefore link testgtk, and you cannot find out if
gtk is working for you until "make install" completes (for the normal
libtool).

> We can't simply link against gdk in the gtk/ Makefile.am because
> libtool will barf on it since that library isn't installed.

    That's what it comes down to.  Should libtool barf?  IMHO no, but
until they fix it (or I find all the machines necessary to test my
fix:-) we have to go that way.  That's why I no longer advocate such
a change in the GTK build files.  I simply uncomment the libgdk.la line
whenever I build.

Joel

-- 

"Only a life lived for others is a life worth while."
							-Albert Einstein  

                                  jlbec@evilplan.org
                                  http://ocala.cs.miami.edu/~jlbec



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]