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