Build problem on Cygwin



Hallo dia-list,

I got a problem here with Dia on Cygwin.

I use libtool and all works fine, besides some minor modifications to
the base files for the autogenerated files (and recreation of
Makefile.in & configure et.al) I have not changed the source to build
it.  However, I doesn't work.  The first problem seems to be in
lib/plug-ins.c.  It should figure out that libtool is used (which is
default on non Windows platform, then use the .la file to find the
real name of the module/plug-in to load.  But as I ran into the
problems, I saw that dia requires the modules to be named in the usual
unix fashion (libxyz.so instead of cygxyz.dll as it is on Cygwin).

It is probably this part of plug-ins.c (this_is_a_plugin()) where .so
is hardcoded and the name of the library is basename of 'libxyz.la'
(='libxyz') plus '.so': 

#if USING_LIBTOOL
  basename = g_strndup(name,len-PLUG_IN_EXT_LEN);
  soname = g_strconcat(basename,".so",NULL);
...

This is wrong, since we have already the function which looks up the
filename: find_real_filename(), it should also be used?

I changed this to be:
#if USING_LIBTOOL
  basename = g_strndup(name,len-PLUG_IN_EXT_LEN);
  soname = find_real_filename(name);
...

and it works as expected.

Now I can run dia (without renaming cygxzy.dll files to libxyz.so
files), however, another error came up, it says "cannot load
/usr/lib/cygxslt.dll" which is probably a similar problem (but not the
same), because the imortlib used for linking is 'libxslt.la' but the
name of the DLL in the klibtool library is '../bin/cygxslt-1.dll', the
importlib is 'libxslt.dll.a' and therefore, I have no idea why dia
wants to load a "cygxslt.dll".  I also have not looked up the relevant
part in the code.

I have no patch attached yet, see it as a heads-up because it seems
there are some more parts which need to be fixed for a successful
build on Cygwin (and other, non-.so platforms).

Anyway, many thanks for providing such an interesting piece of code to
the open source community,

Gerrit
-- 
=^..^=




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