[Ekiga-devel-list] Win32, wishes for master



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 ekiga net, 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)
+


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