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