Win32, wishes for master

View: New views
2 Messages — Rating Filter:   Alert me  

Win32, wishes for master

by Michael Rickmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Let me start with the simple thing. There is a setenv in
src/gui/main.cpp:4367 which seems Pulseaudio related and stops
compilation under Mingw. Attached ekiga_pulseenv.diff disables it for
WIN32 without doing any harm.
Next, in the meantime, we have two boost::throw_exception functions one
in lib/engine/components/opal/opal-main.cpp and one in
lib/engine/framework/boost-exceptions.cpp and we still compile the
libekiga with -fexceptions. Can't we tidy up a bit. Attached
ekiga_exceptions.diff works for WIN32.

My last point is that I wish to have the ldap adressbook back in Win32
Ekiga. Since the libgmldap is a plugin we would have to activate the
plugin support for Win32 which Snark has founded back in June when I
started crying. Under Windows a plugin.dll can not import symbols from
the main executable by means of the linker, but it can from a different
dll. Consequently I would like to split Ekiga into an ekiga.exe and a
libekiga.dll. Attached ekiga_stacklib.diff does this, is Win32 specific
and works. Next thing is to compile the plugins libgmldap and
libgmloudmouth as dlls - those two can be used for Windows. That is what
attached ekiga_pluginlib.diff does. It activates PLUGIN_LIBTOOL_FLAGS in
configure.ac by renaming them to PLUGINS_LIBTOOL_FLAGS as the
makefile.am s of the plugins use (this may affect Linux !!) and then it
tells the linker where to find the missing symbols for the dlls, in
libekiga.la.
The result seems ok. I can call 500@..., fixed the VideoPreview
crash with it and can search the ldap adress book again, no crash on
exit. Process Explorer shows that also the libgmloudmouth.dll is loaded
but I do not know how to test it.
Michael

Binärdateien src/ekiga/.git/index and ekiga/.git/index sind verschieden.
diff -ur src/ekiga/src/gui/main.cpp ekiga/src/gui/main.cpp
--- src/ekiga/src/gui/main.cpp 2009-09-29 06:59:50.000000000 +0200
+++ ekiga/src/gui/main.cpp 2009-10-03 09:24:35.000000000 +0200
@@ -4364,7 +4364,9 @@
 
   /* Application name */
   g_set_application_name (_("Ekiga Softphone"));
+#ifndef WIN32
   setenv ("PULSE_PROP_application.name", _("Ekiga Softphone"), true);
+#endif
 
   /* initialize platform-specific code */
   gm_platform_init ();


diff -ur ekiga.orig/lib/engine/components/opal/opal-main.cpp ekiga/lib/engine/components/opal/opal-main.cpp
--- ekiga.orig/lib/engine/components/opal/opal-main.cpp 2009-10-04 17:43:45.000000000 +0200
+++ ekiga/lib/engine/components/opal/opal-main.cpp 2009-10-04 17:44:20.000000000 +0200
@@ -177,12 +177,3 @@
   kickstart.add_spark (spark);
 }
 
-
-// FIXME: I have no clue why this is needed only for the opal code!
-#ifdef BOOST_NO_EXCEPTIONS
-
-void
-boost::throw_exception (const std::exception&)
-{
-}
-#endif
diff -ur ekiga.orig/lib/Makefile.am ekiga/lib/Makefile.am
--- ekiga.orig/lib/Makefile.am 2009-10-04 17:43:45.000000000 +0200
+++ ekiga/lib/Makefile.am 2009-10-04 17:44:02.000000000 +0200
@@ -52,10 +52,9 @@
  $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GCONF_CFLAGS) \
  $(DBUS_CFLAGS) $(GNOME_CFLAGS)
 
-# FIXME: here we add -fexceptions because ptlib&opal put them out and that's a problem for boost...
 AM_CPPFLAGS = \
  $(BOOST_CPPFLAGS) $(GLIB_CFLAGS) $(XML_CFLAGS) $(GTK_CFLAGS) \
- $(DBUS_CFLAGS) $(GNOME_CFLAGS) $(PTLIB_CFLAGS) $(OPAL_CFLAGS) -fexceptions
+ $(DBUS_CFLAGS) $(GNOME_CFLAGS) $(PTLIB_CFLAGS) $(OPAL_CFLAGS)
 AM_LIBS = \
  $(BOOST_LIBS) $(GLIB_LIBS) $(XML_LIBS) $(GTK_LIBS)
 

diff -ur ekiga.orig/lib/Makefile.am ekiga/lib/Makefile.am
--- ekiga.orig/lib/Makefile.am 2009-10-04 20:24:00.000000000 +0200
+++ ekiga/lib/Makefile.am 2009-10-04 20:27:16.000000000 +0200
@@ -1,7 +1,16 @@
+if WIN32
+stacklib_LTLIBRARIES = libekiga.la
+
+libekiga_la_LDFLAGS = $(STACKLIB_LDFLAGS) $(BOOST_LIBS) $(GLIB_LIBS) $(XML_LIBS) $(GTK_LIBS)
+
+else
+
 noinst_LTLIBRARIES = libekiga.la
 
-libekiga_la_SOURCES =
 libekiga_la_LDFLAGS = -export-dynamic
+endif
+
+libekiga_la_SOURCES =
 
 CLEANFILES =
 

diff -ur src/ekiga/configure.ac ekiga/configure.ac
--- src/ekiga/configure.ac 2009-09-29 06:59:49.000000000 +0200
+++ ekiga/configure.ac 2009-10-06 10:11:40.000000000 +0200
@@ -855,13 +855,13 @@
         ;;
 esac
 
-PLUGIN_LIBTOOL_FLAGS="-no-undefined -avoid-version -module"
+PLUGINS_LIBTOOL_FLAGS='-no-undefined -avoid-version -module'
 STACKLIB_LDFLAGS='-shared -module -no-undefined -avoid-version'
 
 AC_SUBST(bindir)
 AC_SUBST(stacklibdir)
 AC_SUBST(plugindir)
-AC_SUBST(PLUGIN_LIBTOOL_FLAGS)
+AC_SUBST(PLUGINS_LIBTOOL_FLAGS)
 AC_SUBST(PLUGIN_DIR)
 AC_SUBST(STACKLIB_LDFLAGS)
 
diff -ur src/ekiga/plugins/ldap/Makefile.am ekiga/plugins/ldap/Makefile.am
--- src/ekiga/plugins/ldap/Makefile.am 2009-09-29 06:59:49.000000000 +0200
+++ ekiga/plugins/ldap/Makefile.am 2009-10-06 10:10:44.000000000 +0200
@@ -20,5 +20,5 @@
  $(ldap_dir)/ldap-main.cpp
 
 libgmldap_la_LDFLAGS = $(PLUGINS_LIBTOOL_FLAGS)
-libgmldap_la_LIBADD = \
+libgmldap_la_LIBADD = $(top_builddir)/lib/libekiga.la \
  $(LDAP_LIBS) $(BOOST_LDFLAGS) $(BOOST_LIBS) $(GLIB_LIBS) $(XML_LIBS)
diff -ur src/ekiga/plugins/loudmouth/Makefile.am ekiga/plugins/loudmouth/Makefile.am
--- src/ekiga/plugins/loudmouth/Makefile.am 2009-09-01 07:44:32.000000000 +0200
+++ ekiga/plugins/loudmouth/Makefile.am 2009-10-06 10:10:44.000000000 +0200
@@ -30,4 +30,6 @@
  $(loudmouth_dir)/loudmouth-dialect.cpp
 
 libgmloudmouth_la_LDFLAGS = $(PLUGINS_LIBTOOL_FLAGS)
-libgmloudmouth_la_LIBADD = $(BOOST_LDFLAGS) $(BOOST_LIBS) $(XML_LIBS) $(LOUDMOUTH_LIBS)
\ Kein Zeilenumbruch am Dateiende.
+libgmloudmouth_la_LIBADD = $(top_builddir)/lib/libekiga.la \
+ $(BOOST_LDFLAGS) $(BOOST_LIBS) $(XML_LIBS) $(LOUDMOUTH_LIBS)
+

_______________________________________________
Ekiga-devel-list mailing list
Ekiga-devel-list@...
http://mail.gnome.org/mailman/listinfo/ekiga-devel-list

Re: Win32, wishes for master

by Julien PUYDT :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Michael Rickmann a écrit :
> Let me start with the simple thing. There is a setenv in
> src/gui/main.cpp:4367 which seems Pulseaudio related and stops
> compilation under Mingw. Attached ekiga_pulseenv.diff disables it for
> WIN32 without doing any harm.

It's in.

> Next, in the meantime, we have two boost::throw_exception functions one
> in lib/engine/components/opal/opal-main.cpp and one in
> lib/engine/framework/boost-exceptions.cpp and we still compile the
> libekiga with -fexceptions. Can't we tidy up a bit. Attached
> ekiga_exceptions.diff works for WIN32.

I checked : it compiles. It's in.

> My last point is that I wish to have the ldap adressbook back in Win32
> Ekiga. Since the libgmldap is a plugin we would have to activate the
> plugin support for Win32 which Snark has founded back in June when I
> started crying. Under Windows a plugin.dll can not import symbols from
> the main executable by means of the linker, but it can from a different
> dll. Consequently I would like to split Ekiga into an ekiga.exe and a
> libekiga.dll.

Ok.

> Attached ekiga_stacklib.diff does this, is Win32 specific
> and works. Next thing is to compile the plugins libgmldap and
> libgmloudmouth as dlls - those two can be used for Windows.

Good. We'll pluginize more of ekiga later (I'm thinking about the avahi
code for example).

> That is what
> attached ekiga_pluginlib.diff does. It activates PLUGIN_LIBTOOL_FLAGS in
> configure.ac by renaming them to PLUGINS_LIBTOOL_FLAGS as the
> makefile.am s of the plugins use (this may affect Linux !!) and then it
> tells the linker where to find the missing symbols for the dlls, in
> libekiga.la.

I don't get what that renaming is about, but it's still mostly in (I
made it do the split on non-win32 too).

> The result seems ok. I can call 500@..., fixed the VideoPreview
> crash with it and can search the ldap adress book again, no crash on
> exit.

That sounds good.

> Process Explorer shows that also the libgmloudmouth.dll is loaded
> but I do not know how to test it.

If you already have an existing jabber account on a server, then in
ekiga you just have to go in the accounts window and add a jabber
account there.

Snark
_______________________________________________
Ekiga-devel-list mailing list
Ekiga-devel-list@...
http://mail.gnome.org/mailman/listinfo/ekiga-devel-list