Building XFCE on Cygwin

Brian J. Tarricone bjt23 at cornell.edu
Fri Jul 9 16:37:39 CEST 2004


On Fri, 9 Jul 2004, Maarten Boekhold wrote:

> Maarten Boekhold wrote:
>
> > Brian J. Tarricone wrote:
> > 
> >> i spent some time trying to build xfce4 cvs under cygwin.  i got most 
> >> of the base pacakges built, but i can't get any .dlls to build.  i 
> >> tried adding -no-undefined, but that just spewed out a list of unresolved  
> 
> I did some more building, and I now have at least the following 
> correctly built, with minimal changes:
> 
> libxfce4util            - OK    - libxfce4util/Makefile.am
> libxfcegui4             - OK    - libxfcegui4/Makefile.am
> libxfce4mcs             - OK    - libxfce4mcs/Makefile.am (2 places)
> xfce-mcs-manager        - OK    - xfce-mcs-manager/Makefile.am
> gtk-xfce-engine-2       - OK    - src/Makefile.am
> xfce4-appfinder         - OK    - None

i'm rebuilding libxfce4util and the other libs with -no-undefined added 
to *_LDFLAGS.  seems to be working ok, and the changes i'm making are 
probably the same as yours.

> But you're right about many shared libraries. For some of them the 
> problem might be that they reference symbols in the panel binary 
> (mcs-manager as well?).

yeah, this is going to be a problem.  i _think_ all of the mcs plugins 
should be ok; i don't believe they reference symbols in the mcs manager 
- all of them should be handled by libxfce4mcs-manager.so and 
libxfce4mcs-client.so.  but panel plugins definitely do reference global 
symbols in xfce4-panel, so if there's no way to get this effect on 
windows, i honestly don't see much of a point in continuing further.

> However, it seems to me that many libraries just 
> fail to build because they are not linked explicitly against the 
> glib/gtk libraries!
> 
> For example, libxfce4util has the following in libxfce4util/Makefile.am:
> 
> libxfce4util_la_LIBADD =                                        \
>          @GOBJECT_LIBS@
> 
> libxfce4util_la_CFLAGS =                                        \
>          -I$(top_srcdir)                                         \
>          @GOBJECT_CFLAGS@
> 
> 
> This causes the library to be explicitly linked against the gobject 
> library, which satisfies the link requirements of cygwin. However, 
> xfce4-session/settings/Makefile.am doesn't have a LIBADD, and doesn't 
> have any additional CFLAGS for glib/gtk, which causes its building to 
> fail spectacularly with loads of missing _g_../_gdk_... etc symbols.
> 
> I tried adding a LIBADD section to xfce4-session/settings/Makefile.am, 
> but either I don't know which automake vars I can use there, or the 
> required autoconf support that defines those vars is not present.
> 
> Brian, do you know what needs to be added to the various _la_LIBADD and 
> _la_CFLAGS sections?

yeah, for the ones that are missing the appropriate _LIBADD or _LDFLAGS 
section, you can simply add them.  all of the variables look like 
*_CFLAGS and *_LDFLAGS, and the first half is just the all-caps prefix 
given in the configure.ac line that checks for its presence (the 
BM_DEPEND() and BM_DEPEND_CHECK() lines).

> btw. Regarding adding -no-undefined everywhere, originally I was 
> planning to add this only to the _la_LDFLAGS when we are on cygwin. But 
> one of the cygwin developers told me that this flag doesn't hurt on 
> other platforms at all, so we could easily just add it everywhere. How 
> do the XFCE developers feel about this?

if that really is the case, i personally don't care.  however, i'm no 
libtool expert, and i'd like to hear it from someone who knows a bit 
more than i do.  benny?  olivier?  jasper?  ...?

	-brian




More information about the Xfce4-dev mailing list