[PATCH]: creating la files also for static libraries

Ralf Habacker ralf.habacker at freenet.de
Wed Oct 26 10:56:37 CEST 2005


Am Mittwoch, 26. Oktober 2005 03:19 schrieb Thiago Macieira:
> Ralf Habacker wrote:
> >Are there any other types beside shared (including module, kioslave and
> > so one)  and static (including convencience) ?
>
> There are only two types: modules and shared libraries. Both ioslaves and
> kdeinit programs are modules.

do I understand right that shared library under linux are not loadable while 
modules are ? Under windows such a difference does not exist. 

> >> >Would be fine for me too. BTW, do you also think about removing
> >> > requirement for .la files in libltdl? In case of kdelibs3 ("qmake"
> >> > times) I was just copying .la files to win32 partition to make sure
> >> > KTrader can find KDE services. Maybe, in that case, .desktop files
> >> > are enough.
> >>
> >> libltdl should be able to find the modules without the .la files, I
> >> hope.
> >
> >not on windows for versioned libraries. How do libltdl could find a
> > library libkdecore-6.dll, when the requested name is kdecore and not
> > symlinks are used ? Only by a directory search which require additional
> > time and may lead to the wrong results, if more than one library
> > version is installed.
>
> You can't load libraries with libltdl (more to the point, you shouldn't
> and we won't).
> Modules aren't versioned at all, even on Unix. The only 
> versioning they have is the fact that they are in a kde3/ or kde4/ subdir
> ($KDEDIR/lib/kde3 on Unix).
>
> >Or does anyone have a better idea ?
>
> No versioning, just like on Unix modules.
>
> >> KTrader should have a compile-time constant that sets the
> >> platform-defined suffix for loadable modules (dll, so, dylib, etc.),
> >> so that it can check whether the file pointed to by a .desktop file
> >> actually exists.
> >>
> >> Aside from that, the .la files are a convenience for the build system,
> >> in that they can check for a library's existence by verifying that the
> >> .la file exists: in that case, we could have empty .la files just to
> >> tag, but I wouldn't want them to be installed or have any content.
> >
> >Why not ? If any other external KDE applications uses autotools based
> >buildsystem it requires valid libtool files.May be it be also good to
> > support pkgconfig too for the similar reasons.
>
> Well, we won't install empty files. That's pointless, especially if it'll
> confuse other projects' libtool.
>
> However, libtool does not require the .la file. It can link fine to system
> libraries (-lkdecore). Same for pkgconfig: the .la file is completely
> unnecessary.

But would not using empty la files confuse others who know the real intention 
also as internal file.  
I think it would  be better to use a new extension independently from already 
established standards for example .dep or similar. 

> So we're back to my point: .la are used to:
> 1) track static library dependency
> 2) "symlink" to the versioned binary file
>
> We won't use #2 for modules. As for #1, I think I asked a while ago if
> Win32/cygwin/mingw can already cope with indirect dependencies. 
I'm not sure, I understand what exactly do you mean with indirect 
dependencies. 
cygwin provides unix like file system including symlinks, while all other 
environments linke mingw, msvc does not have symlink support. 

> I think you guys told me it was ok.
>
> There's also a reason against installing .la: it creates package
> dependencies, by pathname no less.

Regards 

Ralf 


More information about the Kde-buildsystem mailing list