[Ekiga-devel-list] Win32, wishes for master
- From: Michael Rickmann <mrickma gwdg de>
- To: Ekiga development mailing list <ekiga-devel-list gnome org>
- Subject: [Ekiga-devel-list] Win32, wishes for master
- Date: Tue, 06 Oct 2009 18:58:45 +0200
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]