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 [email protected], 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
[email protected]
http://mail.gnome.org/mailman/listinfo/ekiga-devel-list

Reply via email to