pidgin.win32.autotools: 65b100ad: Create a branch for work to be done on m...

datallah at pidgin.im datallah at pidgin.im
Tue Nov 2 15:55:58 EDT 2010


----------------------------------------------------------------------
Revision: 65b100adddf7a54bb3530ad8b7f9b3f79272a10d
Parent:   7eb555d9d20df94a7bef577253c8effb724ab484
Author:   datallah at pidgin.im
Date:     11/02/10 15:54:16
Branch:   im.pidgin.pidgin.win32.autotools
URL: http://d.pidgin.im/viewmtn/revision/info/65b100adddf7a54bb3530ad8b7f9b3f79272a10d

Changelog: 

Create a branch for work to be done on making it possible to build the Windows
port using autotools.

These changes started off as a patch from "pier11" that I modified.

Refs #12218

Changes against parent 7eb555d9d20df94a7bef577253c8effb724ab484

  patched  configure.ac
  patched  finch/Makefile.am
  patched  finch/libgnt/wms/Makefile.am
  patched  finch/plugins/Makefile.am
  patched  libpurple/Makefile.am
  patched  libpurple/certificate.c
  patched  libpurple/dnsquery.c
  patched  libpurple/example/Makefile.am
  patched  libpurple/example/nullclient.c
  patched  libpurple/plugins/Makefile.am
  patched  libpurple/plugins/perl/Makefile.am
  patched  libpurple/plugins/ssl/Makefile.am
  patched  libpurple/plugins/tcl/Makefile.am
  patched  libpurple/protocols/bonjour/Makefile.am
  patched  libpurple/protocols/gg/Makefile.am
  patched  libpurple/protocols/irc/Makefile.am
  patched  libpurple/protocols/jabber/Makefile.am
  patched  libpurple/protocols/msn/Makefile.am
  patched  libpurple/protocols/mxit/Makefile.am
  patched  libpurple/protocols/myspace/Makefile.am
  patched  libpurple/protocols/novell/Makefile.am
  patched  libpurple/protocols/null/Makefile.am
  patched  libpurple/protocols/oscar/Makefile.am
  patched  libpurple/protocols/qq/Makefile.am
  patched  libpurple/protocols/sametime/Makefile.am
  patched  libpurple/protocols/simple/Makefile.am
  patched  libpurple/protocols/yahoo/Makefile.am
  patched  libpurple/win32/libc_interface.h
  patched  libpurple/win32/libpurplerc.rc.in
  patched  libpurple/win32/win32dep.c
  patched  libpurple/win32/win32dep.h
  patched  pidgin/Makefile.am
  patched  pidgin/plugins/Makefile.am
  patched  pidgin/plugins/cap/Makefile.am
  patched  pidgin/plugins/disco/Makefile.am
  patched  pidgin/plugins/gestures/Makefile.am
  patched  pidgin/plugins/gevolution/Makefile.am
  patched  pidgin/plugins/musicmessaging/Makefile.am
  patched  pidgin/plugins/musicmessaging/musicmessaging.c
  patched  pidgin/plugins/ticker/Makefile.am
  patched  pidgin/plugins/win32/winprefs/gtkappbar.c
  patched  pidgin/win32/MinimizeToTray.c
  patched  pidgin/win32/gtkdocklet-win32.c
  patched  pidgin/win32/pidgin_exe_rc.rc.in
  patched  pidgin/win32/winpidgin.c

-------------- next part --------------
============================================================
--- libpurple/protocols/irc/Makefile.am	46e38d6c53d483126f20fed27c5f092c164d2987
+++ libpurple/protocols/irc/Makefile.am	784dc3d7e7646b6ef9806a793cfa9e50b620c67e
@@ -13,7 +13,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libirc_la_LDFLAGS = -module -avoid-version
+libirc_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_IRC
 
@@ -27,7 +27,7 @@ libirc_la_SOURCES = $(IRCSOURCES)
 st =
 pkg_LTLIBRARIES   = libirc.la
 libirc_la_SOURCES = $(IRCSOURCES)
-libirc_la_LIBADD  = $(GLIB_LIBS)
+libirc_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -36,3 +36,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/jabber/Makefile.am	9c9c664e7262b61ad796bba3066f6813dcf5c613
+++ libpurple/protocols/jabber/Makefile.am	550da2c26a96fa682ab243b9aa16428b56c74826
@@ -92,7 +92,8 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libxmpp_la_LDFLAGS = -module -avoid-version
+libxmpp_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+libjabber_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED)
 
 if USE_CYRUS_SASL
 JABBERSOURCES += auth_cyrus.c
@@ -108,12 +109,20 @@ st =
 else
 
 st =
-pkg_LTLIBRARIES      = libjabber.la libxmpp.la
+pkg_LTLIBRARIES      = libxmpp.la
+
+if OS_WIN32
+lib_LTLIBRARIES     = libjabber.la
+else
+pkg_LTLIBRARIES    += libjabber.la
+endif
+
 libjabber_la_SOURCES = $(JABBERSOURCES)
 libjabber_la_LIBADD  = $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) $(IDN_LIBS)\
 	$(FARSIGHT_LIBS) \
 	$(GSTREAMER_LIBS) \
-	$(GSTINTERFACES_LIBS)
+	$(GSTINTERFACES_LIBS) \
+	$(PURPLE_LIBS)
 
 libxmpp_la_SOURCES = libxmpp.c
 libxmpp_la_LIBADD = libjabber.la
@@ -130,3 +139,10 @@ AM_CPPFLAGS = \
 	$(FARSIGHT_CFLAGS) \
 	$(GSTREAMER_CFLAGS) \
 	$(GSTINTERFACES_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/libpurple/protocols/jabber/win32
+endif
+
============================================================
--- libpurple/protocols/msn/Makefile.am	80f01c2f38b2628a3a351351fb4c796d5a0f5278
+++ libpurple/protocols/msn/Makefile.am	685b9cefa969854705a5e5a088bb78fda36d7f72
@@ -75,7 +75,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libmsn_la_LDFLAGS = -module -avoid-version
+libmsn_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_MSN
 
@@ -89,7 +89,7 @@ libmsn_la_SOURCES = $(MSNSOURCES)
 st =
 pkg_LTLIBRARIES   = libmsn.la
 libmsn_la_SOURCES = $(MSNSOURCES)
-libmsn_la_LIBADD  = $(GLIB_LIBS)
+libmsn_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -98,3 +98,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/oscar/Makefile.am	82385468a1eb3084fcf798753542304968742745
+++ libpurple/protocols/oscar/Makefile.am	33892a92352dd3e70b0f4afe2dfb45f29f92f9b7
@@ -50,8 +50,9 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libaim_la_LDFLAGS = -module -avoid-version
-libicq_la_LDFLAGS = -module -avoid-version
+libaim_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+libicq_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+liboscar_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED)
 if STATIC_OSCAR
 
 st = -DPURPLE_STATIC_PRPL
@@ -62,9 +63,16 @@ st =
 else
 
 st =
-pkg_LTLIBRARIES     = liboscar.la libaim.la libicq.la
+pkg_LTLIBRARIES     = libaim.la libicq.la
+
+if OS_WIN32
+lib_LTLIBRARIES     = liboscar.la
+else
+pkg_LTLIBRARIES    += liboscar.la
+endif
+
 liboscar_la_SOURCES = $(OSCARSOURCES)
-liboscar_la_LIBADD  = $(GLIB_LIBS)
+liboscar_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 libaim_la_SOURCES   = libaim.c
 libaim_la_LIBADD    = liboscar.la
@@ -79,3 +87,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/yahoo/Makefile.am	e9d9993f55ec5505a065b7892b98df4be11a6288
+++ libpurple/protocols/yahoo/Makefile.am	11f0e63ae499e7ec1bf38159ed5095b69ce96fa9
@@ -27,8 +27,9 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libyahoo_la_LDFLAGS = -module -avoid-version
-libyahoojp_la_LDFLAGS = -module -avoid-version
+libyahoo_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+libyahoojp_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+libymsg_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED)
 
 if STATIC_YAHOO
 
@@ -40,10 +41,16 @@ st =
 else
 
 st =
-pkg_LTLIBRARIES     = libymsg.la libyahoo.la libyahoojp.la
+pkg_LTLIBRARIES     = libyahoo.la libyahoojp.la
 
+if OS_WIN32
+lib_LTLIBRARIES     = libymsg.la
+else
+pkg_LTLIBRARIES    += libymsg.la
+endif
+
 libymsg_la_SOURCES = $(YAHOOSOURCES)
-libymsg_la_LIBADD  = $(GLIB_LIBS)
+libymsg_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 libyahoo_la_SOURCES = libyahoo.c
 libyahoo_la_LIBADD = libymsg.la
@@ -58,3 +65,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- configure.ac	624d91edc37de137e19f7cf74465e6af3e0677d0
+++ configure.ac	17ff51e3963757857de0aa951276ac270d5cb91f
@@ -120,10 +120,42 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"
 dnl Check for Sun compiler
 AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 
+dnl ******************************
+dnl Win32
+dnl ******************************
+AC_MSG_CHECKING([for Win32])
+case "$host" in
+*-mingw*)
+	os_win32=yes
+	not_os_win32=no
+	NO_UNDEFINED='-no-undefined'
+	AVOID_VERSION='-avoid-version'
+	AC_CHECK_TOOL(WINDRES, windres)
+	PURPLE_LIBS='$(top_builddir)/libpurple/libpurple.la'
+	;;
+*)
+	os_win32=no
+	not_os_win32=yes
+	NO_UNDEFINED=
+	AVOID_VERSION=
+	PURPLE_LIBS=
+	;;
+esac
+AC_MSG_RESULT([$os_win32])
+AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
+AC_SUBST(NO_UNDEFINED)
+AC_SUBST(AVOID_VERSION)
+AC_SUBST(PURPLE_LIBS)
+
+
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h)
+AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h stdint.h regex.h)
+dnl signal.h is not good in mingw
+if test "$os_win32" != yes; then
+	AC_CHECK_HEADERS(signal.h)
+fi
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -145,6 +177,7 @@ AC_CHECK_FUNCS(getopt_long,,
 	AC_LIBOBJ(getopt1)
 ])
 
+if test "$os_win32" != yes; then
 dnl Check for inet_aton
 AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, ,
 				         [AC_MSG_ERROR([inet_aton not found])])])
@@ -152,6 +185,8 @@ AC_CHECK_FUNC(socket, ,
 AC_CHECK_LIB(nsl, gethostent)
 AC_CHECK_FUNC(socket, ,
 	[AC_CHECK_LIB(socket, socket, , [AC_MSG_ERROR([socket not found])])])
+fi
+
 dnl If all goes well, by this point the previous two checks will have
 dnl pulled in -lsocket and -lnsl if we need them.
 AC_CHECK_FUNC(getaddrinfo,
@@ -161,6 +196,8 @@ AC_CHECK_FUNCS(getifaddrs)
 		[AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)])
 AC_CHECK_FUNCS(inet_ntop)
 AC_CHECK_FUNCS(getifaddrs)
+
+if test "$os_win32" != yes; then
 dnl Check for socklen_t (in Unix98)
 AC_MSG_CHECKING(for socklen_t)
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -182,6 +219,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 		AC_DEFINE(socklen_t, int, [socklen_t size])
 	])
 ])
+fi
 
 dnl Some systems do not have sa_len field for struct sockaddr.
 AC_CHECK_MEMBER([struct sockaddr.sa_len],
@@ -1216,7 +1254,7 @@ AM_CONDITIONAL(STATIC_YAHOO, test "x$sta
 AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes")
 AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes")
 AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes")
-AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes")
+AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes" -a "x$enable_zephyr" = "xyes")
 AC_SUBST(STATIC_LINK_LIBS)
 AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init static void static_proto_init(void) { $load_proto },
 	[Loads static protocol plugin module initialization functions.])
@@ -1237,6 +1275,10 @@ fi
 if test "x$silc10includes" != "xyes" -o "x$silc10client" != "xyes"; then
 	DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/silc10//'`
 fi
+if test "x$enable_zephyr" != "xyes"; then
+	DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/zephyr//'`
+fi
+
 AC_SUBST(DYNAMIC_PRPLS)
 for i in $DYNAMIC_PRPLS ; do
 	case $i in
@@ -2575,6 +2617,11 @@ AC_CONFIG_FILES([Makefile
 		   pidgin/plugins/perl/Makefile
 		   pidgin/plugins/perl/common/Makefile.PL
 		   pidgin/plugins/ticker/Makefile
+		   pidgin/plugins/win32/Makefile
+		   pidgin/plugins/win32/transparency/Makefile
+		   pidgin/plugins/win32/winprefs/Makefile
+		   pidgin/win32/pidgin_dll_rc.rc
+		   pidgin/win32/pidgin_exe_rc.rc
 		   libpurple/example/Makefile
 		   libpurple/gconf/Makefile
 		   libpurple/purple.pc
@@ -2611,6 +2658,7 @@ AC_CONFIG_FILES([Makefile
 		   libpurple/tests/Makefile
 		   libpurple/purple.h
 		   libpurple/version.h
+		   libpurple/win32/libpurplerc.rc
 		   share/sounds/Makefile
 		   share/ca-certs/Makefile
 		   finch/finch.pc
@@ -2622,6 +2670,8 @@ AC_CONFIG_FILES([Makefile
 		   po/Makefile.in
 		   pidgin.spec
 		  ])
+		
+
 AC_OUTPUT
 
 echo
============================================================
--- libpurple/protocols/gg/Makefile.am	d2a5d647a208288b647f82a6af11ddc8bd8d43d4
+++ libpurple/protocols/gg/Makefile.am	f136dd0708c949acc29eefd71765603fc4757e80
@@ -42,8 +42,13 @@ INTGG_CFLAGS = -I$(top_srcdir)/libpurple
 	lib/sha1.c
 
 INTGG_CFLAGS = -I$(top_srcdir)/libpurple/protocols/gg/lib -DGG_IGNORE_DEPRECATED
+
+if OS_WIN32
+INTGG_CFLAGS += -include win32dep.h
 endif
 
+endif
+
 GGSOURCES = \
 	$(INTGGSOURCES) \
 	gg-utils.h \
@@ -59,7 +64,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libgg_la_LDFLAGS = -module -avoid-version
+libgg_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_GG
 
@@ -74,7 +79,7 @@ libgg_la_SOURCES = $(GGSOURCES)
 st = $(GADU_CFLAGS)
 pkg_LTLIBRARIES = libgg.la
 libgg_la_SOURCES = $(GGSOURCES)
-libgg_la_LIBADD  = $(GLIB_LIBS) $(GADU_LIBS)
+libgg_la_LIBADD  = $(GLIB_LIBS) $(GADU_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -85,3 +90,7 @@ AM_CPPFLAGS = \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
 
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- pidgin/plugins/ticker/Makefile.am	11011d775e2cce0e3b979cdb236adcccaf89aaad
+++ pidgin/plugins/ticker/Makefile.am	f001700235cff855b00fba7abeefd15c008a8181
@@ -1,9 +1,13 @@ EXTRA_DIST = \
 EXTRA_DIST = \
 		Makefile.mingw
 
+if OS_WIN32
+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 plugindir = $(libdir)/pidgin
+endif
 
-ticker_la_LDFLAGS = -module -avoid-version
+ticker_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if PLUGINS
 
@@ -14,14 +18,28 @@ ticker_la_SOURCES = \
 	gtkticker.h \
 	ticker.c
 
-ticker_la_LIBADD = $(GTK_LIBS)
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
 
+ticker_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS)
+
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/pidgin/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
============================================================
--- libpurple/win32/win32dep.c	d62e125b1de03235763e5f361b9a93c2d504fa6a
+++ libpurple/win32/win32dep.c	ff70ad40b847268a00aa3aa9d689636c154e2c87
@@ -28,12 +28,18 @@
 
 #include "debug.h"
 #include "notify.h"
+#ifdef USE_FHS
+#include "version.h"
+#endif
 
 /*
  * LOCALS
  */
 static char *app_data_dir = NULL, *install_dir = NULL,
 	*lib_dir = NULL, *locale_dir = NULL;
+#ifdef USE_FHS
+static char *share_dir = NULL;
+#endif
 
 static HINSTANCE libpurpledll_hInstance = NULL;
 
@@ -153,13 +159,39 @@ const char *wpurple_install_dir(void) {
 	return install_dir;
 }
 
+#ifdef USE_FHS
+const char *wpurple_share_dir(void) {
+	static gboolean initialized = FALSE;
+
+	if (!initialized) {
+		const char *inst_dir = wpurple_install_dir();
+		if (inst_dir != NULL) {
+			share_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "share", inst_dir);
+			initialized = TRUE;
+		} else {
+			return NULL;
+		}
+	}
+
+	return share_dir;
+}
+#else
+const char *wpurple_share_dir(void) {
+	return wpurple_install_dir();
+}
+#endif
+
 const char *wpurple_lib_dir(void) {
 	static gboolean initialized = FALSE;
 
 	if (!initialized) {
 		const char *inst_dir = wpurple_install_dir();
 		if (inst_dir != NULL) {
+#ifdef USE_FHS
+			lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "lib" G_DIR_SEPARATOR_S "purple-%i" , inst_dir, PURPLE_MAJOR_VERSION);
+#else
 			lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "plugins", inst_dir);
+#endif
 			initialized = TRUE;
 		} else {
 			return NULL;
@@ -175,7 +207,11 @@ const char *wpurple_locale_dir(void) {
 	if (!initialized) {
 		const char *inst_dir = wpurple_install_dir();
 		if (inst_dir != NULL) {
+#ifdef USE_FHS
+			locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "share" G_DIR_SEPARATOR_S "locale", inst_dir);
+#else
 			locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "locale", inst_dir);
+#endif
 			initialized = TRUE;
 		} else {
 			return NULL;
@@ -374,6 +410,11 @@ void wpurple_cleanup(void) {
 	install_dir = NULL;
 	lib_dir = NULL;
 	locale_dir = NULL;
+	
+#ifdef USE_FHS
+	g_free(share_dir);
+	share_dir = NULL;	
+#endif
 
 	libpurpledll_hInstance = NULL;
 }
============================================================
--- libpurple/win32/win32dep.h	9ba1b08f050adbe2485bca2b040c67c48b9fd982
+++ libpurple/win32/win32dep.h	f9d2217ac6c3b4afaed8625869c16efa68f376b8
@@ -65,6 +65,7 @@ const char *wpurple_locale_dir(void);
 const char *wpurple_install_dir(void);
 const char *wpurple_lib_dir(void);
 const char *wpurple_locale_dir(void);
+const char *wpurple_share_dir(void);
 const char *wpurple_data_dir(void);
 
 /* init / cleanup */
@@ -80,7 +81,7 @@ long wpurple_get_tz_offset(void);
 /*
  *  Purple specific
  */
-#define DATADIR wpurple_install_dir()
+#define DATADIR wpurple_share_dir()
 #define LIBDIR wpurple_lib_dir()
 #define LOCALEDIR wpurple_locale_dir()
 
============================================================
--- libpurple/win32/libc_interface.h	ea23c9702eec172f10e3e17347b8bdea325e60a2
+++ libpurple/win32/libc_interface.h	f8a72bc4f2cea15cff16c0bff9b4d5668e4d7c70
@@ -23,6 +23,7 @@
 #ifndef _LIBC_INTERFACE_H_
 #define _LIBC_INTERFACE_H_
 #include <winsock2.h>
+#undef socklen_t
 #include <ws2tcpip.h>
 #include <io.h>
 #include <errno.h>
============================================================
--- pidgin/plugins/gestures/Makefile.am	d92c837e6149604f92c31376cf5e4fe7c0d8a6c5
+++ pidgin/plugins/gestures/Makefile.am	fa2bfd5ad6f7eb214079abc09b5003fe3972d63d
@@ -1,4 +1,8 @@
+if OS_WIN32
+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 plugindir = $(libdir)/pidgin
+endif
 
 gestures_la_LDFLAGS = -module -avoid-version
 
@@ -13,14 +17,24 @@ gestures_la_SOURCES = \
 	stroke.c \
 	stroke-draw.c
 
-gestures_la_LIBADD = $(GTK_LIBS)
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
 
+gestures_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS)
+
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS)
+
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
============================================================
--- libpurple/plugins/perl/Makefile.am	a7a855ce28fbc4ea9e31092a11d69bd16a04c2d7
+++ libpurple/plugins/perl/Makefile.am	a1220aecd784c33318aed96536fc8c9a231eddb7
@@ -164,8 +164,12 @@ AM_CPPFLAGS = \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
-	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)\" \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(PLUGIN_CFLAGS) \
 	$(PERL_CFLAGS)
+	
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)\"
+endif
============================================================
--- pidgin/win32/gtkdocklet-win32.c	213e4be77706db1d5d0897c7033f1ed1f8585122
+++ pidgin/win32/gtkdocklet-win32.c	8541ae0f468cbc9afb91e2024145a49418215ee7
@@ -21,7 +21,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  * 02111-1301, USA.
  */
-#define _WIN32_IE 0x0500
+#define _WIN32_IE 0x0501
 #include <windows.h>
 #include <gdk/gdkwin32.h>
 #include <gdk/gdk.h>
============================================================
--- libpurple/plugins/tcl/Makefile.am	ff9d49f4c5726544ada23c5d070842be01f9d6de
+++ libpurple/plugins/tcl/Makefile.am	3c4c3f1601ca1630537b118460b9193890c66922
@@ -7,7 +7,7 @@ tcl_la_SOURCES = tcl.c tcl_glib.c tcl_gl
 tcl_la_SOURCES = tcl.c tcl_glib.c tcl_glib.h tcl_cmds.c tcl_signals.c tcl_purple.h \
                  tcl_ref.c tcl_cmd.c
 
-tcl_la_LIBADD = $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS)
+tcl_la_LIBADD = $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS) $(PURPLE_LIBS)
 
 EXTRA_DIST = signal-test.tcl Makefile.mingw
 
@@ -20,3 +20,8 @@ AM_CPPFLAGS = \
 	$(PLUGIN_CFLAGS) \
 	$(TK_CFLAGS) \
 	$(TCL_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
\ No newline at end of file
============================================================
--- libpurple/plugins/ssl/Makefile.am	4dc470b3e95ae11960e40bfda08d0f4567fc9c1f
+++ libpurple/plugins/ssl/Makefile.am	faa120ab6d7e09915748523039b5c5d517f01fa2
@@ -3,9 +3,9 @@ plugindir = $(libdir)/purple-$(PURPLE_MA
 
 plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
 
-ssl_la_LDFLAGS        = -module -avoid-version
-ssl_gnutls_la_LDFLAGS = -module -avoid-version
-ssl_nss_la_LDFLAGS    = -module -avoid-version
+ssl_la_LDFLAGS        = -module -avoid-version $(NO_UNDEFINED)
+ssl_gnutls_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+ssl_nss_la_LDFLAGS    = -module -avoid-version $(NO_UNDEFINED)
 
 if PLUGINS
 
@@ -39,20 +39,28 @@ ssl_nss_la_SOURCES    = ssl-nss.c
 ssl_gnutls_la_SOURCES = ssl-gnutls.c
 ssl_nss_la_SOURCES    = ssl-nss.c
 
-ssl_la_LIBADD        = $(GLIB_LIBS)
-ssl_gnutls_la_LIBADD = $(GLIB_LIBS) $(GNUTLS_LIBS)
-ssl_nss_la_LIBADD    = $(GLIB_LIBS) $(NSS_LIBS)
+ssl_la_LIBADD        = $(GLIB_LIBS) $(PURPLE_LIBS)
+ssl_gnutls_la_LIBADD = $(GLIB_LIBS) $(GNUTLS_LIBS) $(PURPLE_LIBS)
+ssl_nss_la_LIBADD    = $(GLIB_LIBS) $(NSS_LIBS) $(PURPLE_LIBS)
 
 endif # PLUGINS
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/libpurple\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(PLUGIN_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-DWIN32_LEAN_AND_MEAN \
+	-I$(top_srcdir)/libpurple/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\" \
+	-DLIBDIR=\"$(libdir)/libpurple\"
+endif
 
 ssl_gnutls_la_CFLAGS = $(AM_CPPFLAGS) $(GNUTLS_CFLAGS)
 ssl_nss_la_CFLAGS = $(AM_CPPFLAGS) $(NSS_CFLAGS)
============================================================
--- libpurple/protocols/novell/Makefile.am	2b78f14e51a7a16863761efc9475a7659ab1fb61
+++ libpurple/protocols/novell/Makefile.am	1fe128db6d265a274f0939405d069146b4a43419
@@ -28,7 +28,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libnovell_la_LDFLAGS = -module -avoid-version
+libnovell_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_NOVELL
 
@@ -42,7 +42,7 @@ libnovell_la_SOURCES = $(NOVELLSOURCES)
 st =
 pkg_LTLIBRARIES      = libnovell.la
 libnovell_la_SOURCES = $(NOVELLSOURCES)
-libnovell_la_LIBADD  = $(GLIB_LIBS)
+libnovell_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -51,3 +51,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/sametime/Makefile.am	4a7ac04622d68956e3c7f4843beae612690a9a43
+++ libpurple/protocols/sametime/Makefile.am	defef4379411f2f1cd412b1335c4253abcf8976b
@@ -25,7 +25,7 @@ libsametime_la_LDFLAGS = -module -avoid-
 
 libsametime_la_SOURCES = $(SAMETIMESOURCES)
 libsametime_la_LDFLAGS = -module -avoid-version
-libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS)
+libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS) $(PURPLE_LIBS)
 
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/libpurple \
@@ -35,3 +35,7 @@ AM_CPPFLAGS = \
 	$(MEANWHILE_CFLAGS) \
 	-DG_LOG_DOMAIN=\"sametime\"
 
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- pidgin/plugins/musicmessaging/Makefile.am	29cb502a9a375e061b8ede2d48907fab2513ed8c
+++ pidgin/plugins/musicmessaging/Makefile.am	dfe30b49b74766e00707cffc6ac50a57bdb446c7
@@ -1,7 +1,11 @@ EXTRA_DIST = \
 EXTRA_DIST = \
 	music.png
 
+if OS_WIN32
+musicmessagingdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 musicmessagingdir = $(libdir)/pidgin
+endif
 
 musicmessaging_la_LDFLAGS = -module -avoid-version
 
@@ -16,8 +20,14 @@ musicmessaging_la_SOURCES = \
 musicmessaging_la_SOURCES = \
 	musicmessaging.c
 
-musicmessaging_la_LIBADD = $(GTK_LIBS) $(DBUS_LIBS)
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
 
+musicmessaging_la_LIBADD = $(GTK_LIBS) $(DBUS_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS)
+
 CLEANFILES              = music-messaging-bindings.c
 
 .PHONY: always
@@ -35,10 +45,18 @@ AM_CPPFLAGS = \
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS) \
 	$(DBUS_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/pidgin/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
============================================================
--- pidgin/plugins/musicmessaging/musicmessaging.c	fa27cdfa57f3b551c7e50e15856573ac178d8913
+++ pidgin/plugins/musicmessaging/musicmessaging.c	478100ddd55fd4d4f7dfaba7ed34be59987e5adb
@@ -548,11 +548,13 @@ static void kill_editor (MMConversation 
 
 static void kill_editor (MMConversation *mmconv)
 {
+#ifndef _WIN32
 	if (mmconv->pid)
 	{
 		kill(mmconv->pid, SIGINT);
 		mmconv->pid = 0;
 	}
+#endif
 }
 
 static void init_conversation (PurpleConversation *conv)
============================================================
--- libpurple/protocols/simple/Makefile.am	59aa6ea7de482d5fcb89533ab91d9bc94028fb39
+++ libpurple/protocols/simple/Makefile.am	ae07b9951d4edb919278721a78ed45161be04963
@@ -11,7 +11,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libsimple_la_LDFLAGS = -module -avoid-version
+libsimple_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_SIMPLE
 
@@ -25,7 +25,7 @@ libsimple_la_SOURCES = $(SIMPLESOURCES)
 st =
 pkg_LTLIBRARIES      = libsimple.la
 libsimple_la_SOURCES = $(SIMPLESOURCES)
-libsimple_la_LIBADD  = $(GLIB_LIBS)
+libsimple_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -34,3 +34,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/bonjour/Makefile.am	474b55b41a9f7bb6c7644bce36f59ffbb05565f6
+++ libpurple/protocols/bonjour/Makefile.am	5d846c035ab3c65046db5587ce53bd266a5a0f43
@@ -40,7 +40,7 @@ libbonjour_la_SOURCES = $(BONJOURSOURCES
 st =
 pkg_LTLIBRARIES       = libbonjour.la
 libbonjour_la_SOURCES = $(BONJOURSOURCES)
-libbonjour_la_LIBADD  = $(GLIB_LIBS) $(LIBXML_LIBS) $(AVAHI_LIBS)
+libbonjour_la_LIBADD  = $(GLIB_LIBS) $(LIBXML_LIBS) $(AVAHI_LIBS) $(PURPLE_LIBS)
 
 endif
 
============================================================
--- libpurple/protocols/qq/Makefile.am	42487997e120bb298af3c7e0279f323e23daf5c7
+++ libpurple/protocols/qq/Makefile.am	648020dbc0f1f95704664788abc40535382ba208
@@ -53,7 +53,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libqq_la_LDFLAGS = -module -avoid-version
+libqq_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_QQ
 
@@ -68,7 +68,7 @@ libqq_la_SOURCES = $(QQSOURCES)
 noinst_LTLIBRARIES =
 pkg_LTLIBRARIES  = libqq.la
 libqq_la_SOURCES = $(QQSOURCES)
-libqq_la_LIBADD  = $(GLIB_LIBS)
+libqq_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -88,3 +88,8 @@ AM_CPPFLAGS = \
 	-DQQ_BUDDY_ICON_DIR=\"$(datadir)/pixmaps/purple/buddy_icons/qq\" \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- finch/plugins/Makefile.am	5647b306afccce1e0f026f7a8f544178e8e955ac
+++ finch/plugins/Makefile.am	da7f8f6cd667cbfb649610c7a379184daa44362b
@@ -39,7 +39,6 @@ AM_CPPFLAGS = \
 EXTRA_DIST = pietray.py
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_srcdir) \
@@ -49,6 +48,11 @@ AM_CPPFLAGS = \
 	$(GLIB_CFLAGS) \
 	$(GNT_CFLAGS) \
 	$(PLUGIN_CFLAGS)
+	
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
 
 #
 # This part allows people to build their own plugins in here.
============================================================
--- libpurple/dnsquery.c	f163af06a596556d8b1b1d559e30b4b1612e7533
+++ libpurple/dnsquery.c	4afd817ff3b31abeeeb4049918edc6a10788dfcb
@@ -772,7 +772,8 @@ dns_thread(gpointer data)
 
 	query_data = data;
 
-#ifdef USE_IDN
+	
+#if defined(USE_IDN) && defined(HAVE_GETADDRINFO)
 	if (!dns_str_is_ascii(query_data->hostname)) {
 		rc = purple_network_convert_idn_to_ascii(query_data->hostname, &hostname);
 		if (rc != 0) {
============================================================
--- finch/Makefile.am	059853f082e9aff96218119a09d9e0bf75137cff
+++ finch/Makefile.am	eb651bca466814a115519ae52117d7c188777001
@@ -78,10 +78,6 @@ AM_CPPFLAGS = \
 
 AM_CPPFLAGS = \
 	-DSTANDALONE \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/finch/\" \
-	-DLOCALEDIR=\"$(datadir)/locale\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-I$(top_srcdir)/libpurple/ \
 	-I$(top_srcdir) \
 	-I$(srcdir)/libgnt/ \
@@ -91,3 +87,11 @@ AM_CPPFLAGS = \
 	$(LIBXML_CFLAGS) \
 	$(GSTREAMER_CFLAGS) \
 	$(GNT_CFLAGS)
+
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\" \
+	-DLIBDIR=\"$(libdir)/finch/\" \
+	-DLOCALEDIR=\"$(datadir)/locale\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
+endif
============================================================
--- libpurple/Makefile.am	c1f7e9c3096c60434341bff05ce1d99f4b42527f
+++ libpurple/Makefile.am	ebfcc22acc0596ed8951bfd60bc4de826c102bd6
@@ -15,15 +15,19 @@ EXTRA_DIST = \
 		Makefile.mingw \
 		win32/global.mak \
 		win32/libc_interface.c \
-		win32/libc_interface.h \
-		win32/libc_internal.h \
 		win32/libpurplerc.rc.in \
 		win32/rules.mak \
 		win32/targets.mak \
+		win32/win32dep.c \
+		win32/giowin32.c
+		
+if !OS_WIN32
+EXTRA_DIST += \
+		win32/libc_interface.h \
+		win32/libc_internal.h \
 		win32/wpurpleerror.h \
-		win32/win32dep.c \
-		win32/giowin32.c \
 		win32/win32dep.h
+endif
 
 if USE_GCONFTOOL
 GCONF_DIR=gconf
@@ -32,7 +36,7 @@ pkgconfig_DATA = purple.pc
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = purple.pc
 
-SUBDIRS = $(GCONF_DIR) plugins protocols . tests example
+SUBDIRS = $(GCONF_DIR) . plugins protocols tests example
 
 purple_coresources = \
 	account.c \
@@ -96,7 +100,21 @@ purple_coresources = \
 	version.c \
 	xmlnode.c \
 	whiteboard.c
+	
+if OS_WIN32
+purple_coresources += \
+	win32/giowin32.c \
+	win32/libc_interface.c \
+	win32/win32dep.c
 
+libpurple_win32_res = libpurple-win32-res.o
+libpurple_win32_res_ldflag = -Wl,$(libpurple_win32_res)
+
+libpurple-win32-res.o: win32/libpurplerc.rc
+	$(WINDRES) -I$(top_srcdir)/libpurple -i $< -o $@
+
+endif
+
 purple_builtsources = \
 	marshallers.c
 
@@ -166,6 +184,14 @@ purple_mediaheaders = \
 	candidate.h \
 	codec.h \
 	enum-types.h
+	
+if OS_WIN32
+purple_win32headers = \
+	libc_interface.h \
+	libc_internal.h \
+	wpurpleerror.h \
+	win32dep.h
+endif
 
 purple_builtheaders = purple.h version.h marshallers.h
 
@@ -298,8 +324,15 @@ mediainclude_HEADERS = \
 mediainclude_HEADERS = \
 	$(addprefix $(srcdir)/media/, $(purple_mediaheaders))
 
-libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS)
-libpurple_la_LDFLAGS = -export-dynamic -version-info $(PURPLE_LT_VERSION_INFO) -no-undefined
+if OS_WIN32
+win32includedir=$(includedir)/libpurple/win32
+win32include_HEADERS = \
+	$(addprefix $(srcdir)/win32/, $(purple_win32headers))
+endif
+
+libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS) $(libpurple_win32_res)
+libpurple_la_LDFLAGS = -export-dynamic -version-info $(PURPLE_LT_VERSION_INFO) $(AVOID_VERSION) \
+	$(NO_UNDEFINED) $(libpurple_win32_res_ldflag)
 libpurple_la_LIBADD = \
 	$(STATIC_LINK_LIBS) \
 	$(DBUS_LIBS) \
@@ -313,11 +346,12 @@ libpurple_la_LIBADD = \
 	$(IDN_LIBS) \
 	-lm
 
+if OS_WIN32
+libpurple_la_LIBADD += \
+	-lws2_32
+endif
+
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \
-	-DLOCALEDIR=\"$(datadir)/locale\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS) \
 	$(DBUS_CFLAGS) \
@@ -327,6 +361,18 @@ AM_CPPFLAGS = \
 	$(GSTINTERFACES_CFLAGS) \
 	$(IDN_CFLAGS) \
 	$(NETWORKMANAGER_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-DUSE_FHS \
+	-I$(top_srcdir)/libpurple/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\" \
+	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \
+	-DLOCALEDIR=\"$(datadir)/locale\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
+endif
 
 # INSTALL_SSL_CERTIFICATES is true when SSL_CERTIFICATES_DIR is empty.
 # We want to use SSL_CERTIFICATES_DIR when it's not empty.
============================================================
--- libpurple/plugins/Makefile.am	745b67aa56634bd2b67533d6be2a52ea55f01525
+++ libpurple/plugins/Makefile.am	42c89ccc5987cca039729da4204180f634a5a514
@@ -24,27 +24,27 @@ plugindir = $(libdir)/purple-$(PURPLE_MA
 
 plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
 
-autoaccept_la_LDFLAGS       = -module -avoid-version
-buddynote_la_LDFLAGS        = -module -avoid-version
-ciphertest_la_LDFLAGS		= -module -avoid-version
-codeinline_la_LDFLAGS		= -module -avoid-version
-debug_example_la_LDFLAGS    = -module -avoid-version
-helloworld_la_LDFLAGS       = -module -avoid-version
-idle_la_LDFLAGS             = -module -avoid-version
-joinpart_la_LDFLAGS         = -module -avoid-version
-log_reader_la_LDFLAGS       = -module -avoid-version
-newline_la_LDFLAGS          = -module -avoid-version
-notify_example_la_LDFLAGS   = -module -avoid-version
-offlinemsg_la_LDFLAGS       = -module -avoid-version
-one_time_password_la_LDFLAGS	= -module -avoid-version
-pluginpref_example_la_LDFLAGS = -module -avoid-version
-psychic_la_LDFLAGS          = -module -avoid-version
-signals_test_la_LDFLAGS		= -module -avoid-version
-simple_la_LDFLAGS			= -module -avoid-version
-statenotify_la_LDFLAGS      = -module -avoid-version
+autoaccept_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+buddynote_la_LDFLAGS        = -module -avoid-version $(NO_UNDEFINED)
+ciphertest_la_LDFLAGS		= -module -avoid-version $(NO_UNDEFINED)
+codeinline_la_LDFLAGS		= -module -avoid-version $(NO_UNDEFINED)
+debug_example_la_LDFLAGS    = -module -avoid-version $(NO_UNDEFINED)
+helloworld_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+idle_la_LDFLAGS             = -module -avoid-version $(NO_UNDEFINED)
+joinpart_la_LDFLAGS         = -module -avoid-version $(NO_UNDEFINED)
+log_reader_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+newline_la_LDFLAGS          = -module -avoid-version $(NO_UNDEFINED)
+notify_example_la_LDFLAGS   = -module -avoid-version $(NO_UNDEFINED)
+offlinemsg_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+one_time_password_la_LDFLAGS	= -module -avoid-version $(NO_UNDEFINED)
+pluginpref_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+psychic_la_LDFLAGS          = -module -avoid-version $(NO_UNDEFINED)
+signals_test_la_LDFLAGS		= -module -avoid-version $(NO_UNDEFINED)
+simple_la_LDFLAGS			= -module -avoid-version $(NO_UNDEFINED)
+statenotify_la_LDFLAGS      = -module -avoid-version $(NO_UNDEFINED)
 
 # this can't be in a conditional otherwise automake 1.4 yells
-dbus_example_la_LDFLAGS     = -module -avoid-version
+dbus_example_la_LDFLAGS     = -module -avoid-version $(NO_UNDEFINED)
 
 if PLUGINS
 
@@ -90,29 +90,30 @@ statenotify_la_SOURCES      = statenotif
 simple_la_SOURCES			= simple.c
 statenotify_la_SOURCES      = statenotify.c
 
-autoaccept_la_LIBADD        = $(GLIB_LIBS)
-buddynote_la_LIBADD         = $(GLIB_LIBS)
-ciphertest_la_LIBADD		= $(GLIB_LIBS)
-codeinline_la_LIBADD		= $(GLIB_LIBS)
-idle_la_LIBADD              = $(GLIB_LIBS)
-joinpart_la_LIBADD          = $(GLIB_LIBS)
-log_reader_la_LIBADD        = $(GLIB_LIBS)
-newline_la_LIBADD           = $(GLIB_LIBS)
-notify_example_la_LIBADD    = $(GLIB_LIBS)
-offlinemsg_la_LIBADD        = $(GLIB_LIBS)
-one_time_password_la_LIBADD = $(GLIB_LIBS)
-pluginpref_example_la_LIBADD = $(GLIB_LIBS)
-psychic_la_LIBADD           = $(GLIB_LIBS)
-signals_test_la_LIBADD		= $(GLIB_LIBS)
-simple_la_LIBADD			= $(GLIB_LIBS)
-statenotify_la_LIBADD       = $(GLIB_LIBS)
 
+autoaccept_la_LIBADD        = $(GLIB_LIBS) $(PURPLE_LIBS)
+buddynote_la_LIBADD         = $(GLIB_LIBS) $(PURPLE_LIBS)
+ciphertest_la_LIBADD		= $(GLIB_LIBS) $(PURPLE_LIBS)
+codeinline_la_LIBADD		= $(GLIB_LIBS) $(PURPLE_LIBS)
+idle_la_LIBADD              = $(GLIB_LIBS) $(PURPLE_LIBS)
+joinpart_la_LIBADD          = $(GLIB_LIBS) $(PURPLE_LIBS)
+log_reader_la_LIBADD        = $(GLIB_LIBS) $(PURPLE_LIBS)
+newline_la_LIBADD           = $(GLIB_LIBS) $(PURPLE_LIBS)
+notify_example_la_LIBADD    = $(GLIB_LIBS) $(PURPLE_LIBS)
+offlinemsg_la_LIBADD        = $(GLIB_LIBS) $(PURPLE_LIBS)
+one_time_password_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS)
+pluginpref_example_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS)
+psychic_la_LIBADD           = $(GLIB_LIBS) $(PURPLE_LIBS)
+signals_test_la_LIBADD		= $(GLIB_LIBS) $(PURPLE_LIBS)
+simple_la_LIBADD			= $(GLIB_LIBS) $(PURPLE_LIBS)
+statenotify_la_LIBADD       = $(GLIB_LIBS) $(PURPLE_LIBS)
+
 if ENABLE_DBUS
 
 CLEANFILES              = dbus-example-bindings.c
 dbus_example_la_SOURCES = dbus-example.c
 
-dbus_example_la_LIBADD      = $(GLIB_LIBS) $(DBUS_LIBS)
+dbus_example_la_LIBADD      = $(GLIB_LIBS) $(DBUS_LIBS) $(PURPLE_LIBS)
 
 .PHONY: always
 
@@ -140,13 +141,20 @@ AM_CPPFLAGS = \
 	startup.py
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(PLUGIN_CFLAGS) \
 	$(DBUS_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
 
 #
 # This part allows people to build their own plugins in here.
============================================================
--- pidgin/Makefile.am	6e2668094090aad6c6d3544ae1357ba62b021892
+++ pidgin/Makefile.am	839b6308976594e3dd209ccc1a886bfbee6622a4
@@ -5,19 +5,14 @@ EXTRA_DIST = \
 		Makefile.mingw \
 		pidgin.pc.in \
 		pidgin-uninstalled.pc.in \
-		win32/MinimizeToTray.h \
 		win32/MinimizeToTray.c \
 		win32/pidgin_dll_rc.rc.in \
 		win32/pidgin_exe_rc.rc.in \
 		win32/gtkdocklet-win32.c \
 		win32/gtkwin32dep.c \
-		win32/gtkwin32dep.h \
-		win32/resource.h \
 		win32/untar.c \
-		win32/untar.h \
 		win32/winpidgin.c \
 		win32/wspell.c \
-		win32/wspell.h \
 		win32/nsis/generate_gtk_zip.sh \
 		win32/nsis/rpm2zip.sh \
 		win32/nsis/pixmaps/pidgin-header.bmp \
@@ -28,17 +23,30 @@ EXTRA_DIST = \
 		win32/nsis/pidgin-plugin.nsh \
 		win32/nsis/create_nsis_translations.pl \
 		win32/nsis/nsis_translations.desktop.in
+		
+if !OS_WIN32
+EXTRA_DIST += \
+		win32/MinimizeToTray.h \
+		win32/gtkwin32dep.h \
+		win32/resource.h \
+		win32/untar.h \
+		win32/wspell.h
+endif
 
 if ENABLE_GTK
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = pidgin.pc
 
+if OS_WIN32
+SUBDIRS = . pixmaps plugins
+else
 SUBDIRS = pixmaps plugins
+endif
 
 bin_PROGRAMS = pidgin
 
-pidgin_SOURCES = \
+common_SOURCES = \
 	pidginstock.c \
 	gtkaccount.c \
 	gtkblist.c \
@@ -52,7 +60,6 @@ pidgin_SOURCES = \
 	gtkdialogs.c \
 	gtkdnd-hints.c \
 	gtkdocklet.c \
-	gtkdocklet-gtk.c \
 	gtkeventloop.c \
 	gtkft.c \
 	gtkicon-theme.c \
@@ -139,15 +146,28 @@ pidgin_headers = \
 	minidialog.h \
 	pidgintooltip.h \
 	pidgin.h
+	
+if OS_WIN32
+pidgin_win32headers = \
+	MinimizeToTray.h \
+	gtkwin32dep.h \
+	resource.h \
+	untar.h \
+	wspell.h
+endif
 
 pidginincludedir=$(includedir)/pidgin
 pidgininclude_HEADERS = \
 	$(pidgin_headers)
 
+if OS_WIN32
+win32includedir=$(includedir)/pidgin/win32
+win32include_HEADERS = \
+	$(addprefix $(srcdir)/win32/, $(pidgin_win32headers))
+endif
 
 pidgin_DEPENDENCIES = @LIBOBJS@
-pidgin_LDFLAGS = -export-dynamic
-pidgin_LDADD = \
+common_LDADD = \
 	@LIBOBJS@ \
 	$(GLIB_LIBS) \
 	$(DBUS_LIBS) \
@@ -160,16 +180,50 @@ pidgin_LDADD = \
 	$(LIBXML_LIBS) \
 	$(GTK_LIBS) \
 	$(top_builddir)/libpurple/libpurple.la
+	
+if OS_WIN32
+lib_LTLIBRARIES = libpidgin.la
 
+pidgin_SOURCES = \
+	win32/pidgin_exe_rc.rc \
+	win32/winpidgin.c
+
+libpidgin_la_SOURCES = \
+	$(common_SOURCES) \
+	win32/MinimizeToTray.c \
+	win32/gtkdocklet-win32.c \
+	win32/gtkwin32dep.c \
+	win32/untar.c \
+	win32/wspell.c \
+	win32/pidgin_dll_rc.rc
+
+libpidgin_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED)
+libpidgin_la_LIBADD = $(common_LDADD) -lz -lwinmm
+
+pidgin_LDFLAGS = -mwindows
+pidgin_LDADD =
+	
+.rc.o:
+	$(WINDRES) $^ -o $@
+%.o : %.rc
+	$(WINDRES) -I$(top_srcdir)/pidgin -I$(top_srcdir)/pidgin/win32 -I$(top_srcdir)/libpurple -i $< -o $@
+
+else
+pidgin_SOURCES = \
+	$(common_SOURCES) \
+	gtkdocklet-gtk.c
+
+pidgin_CFLAGS = $(AM_CFLAGS)
+pidgin_LDFLAGS = -export-dynamic
+
+pidgin_LDADD = $(common_LDADD)
+endif
+
 if USE_INTERNAL_LIBGADU
 INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/pidgin/\" \
-	-DLOCALEDIR=\"$(datadir)/locale\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple/ \
 	-I$(top_builddir) \
@@ -183,4 +237,19 @@ AM_CPPFLAGS = \
 	$(STARTUP_NOTIFICATION_CFLAGS) \
 	$(LIBXML_CFLAGS) \
 	$(INTGG_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-DUSE_FHS \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/pidgin/win32 \
+	-I$(top_srcdir)/pidgin/win32/IdleTracker
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\" \
+	-DLIBDIR=\"$(libdir)/pidgin/\" \
+	-DLOCALEDIR=\"$(datadir)/locale\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
+endif
+	
 endif  # ENABLE_GTK
============================================================
--- pidgin/plugins/Makefile.am	77880be2c48ed0424818a3a12280a51af34afa69
+++ pidgin/plugins/Makefile.am	5a0a64862c7542afd95aca0da0ef5e9b439216aa
@@ -1,4 +1,4 @@
-DIST_SUBDIRS = cap disco gestures gevolution musicmessaging perl ticker
+DIST_SUBDIRS = cap disco gestures gevolution musicmessaging perl ticker win32
 
 if BUILD_GEVOLUTION
 GEVOLUTION_DIR = gevolution
@@ -27,28 +27,36 @@ SUBDIRS = \
 	$(MUSICMESSAGING_DIR) \
 	$(PERL_DIR) \
 	disco \
-	ticker
+	ticker \
+	win32
 
+if OS_WIN32
+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 plugindir = $(libdir)/pidgin
+endif
 
-convcolors_la_LDFLAGS       = -module -avoid-version
-contact_priority_la_LDFLAGS = -module -avoid-version
-extplacement_la_LDFLAGS     = -module -avoid-version
-gtk_signals_test_la_LDFLAGS = -module -avoid-version
-gtkbuddynote_la_LDFLAGS     = -module -avoid-version
-history_la_LDFLAGS          = -module -avoid-version
-iconaway_la_LDFLAGS         = -module -avoid-version
-markerline_la_LDFLAGS       = -module -avoid-version
-notify_la_LDFLAGS           = -module -avoid-version
-pidginrc_la_LDFLAGS         = -module -avoid-version
-relnot_la_LDFLAGS           = -module -avoid-version
-sendbutton_la_LDFLAGS       = -module -avoid-version
-spellchk_la_LDFLAGS         = -module -avoid-version
+convcolors_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+contact_priority_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+extplacement_la_LDFLAGS     = -module -avoid-version $(NO_UNDEFINED)
+gtk_signals_test_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+gtkbuddynote_la_LDFLAGS     = -module -avoid-version $(NO_UNDEFINED)
+history_la_LDFLAGS          = -module -avoid-version $(NO_UNDEFINED)
+iconaway_la_LDFLAGS         = -module -avoid-version $(NO_UNDEFINED)
+markerline_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+notify_la_LDFLAGS           = -module -avoid-version $(NO_UNDEFINED)
+pidginrc_la_LDFLAGS         = -module -avoid-version $(NO_UNDEFINED)
+relnot_la_LDFLAGS           = -module -avoid-version $(NO_UNDEFINED)
+sendbutton_la_LDFLAGS       = -module -avoid-version $(NO_UNDEFINED)
+spellchk_la_LDFLAGS         = -module -avoid-version $(NO_UNDEFINED)
+timestamp_la_LDFLAGS        = -module -avoid-version $(NO_UNDEFINED)
+timestamp_format_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+vvconfig_la_LDFLAGS         = -module -avoid-version $(NO_UNDEFINED)
+xmppconsole_la_LDFLAGS      = -module -avoid-version $(NO_UNDEFINED)
+
+if !OS_WIN32
 themeedit_la_LDFLAGS        = -module -avoid-version
-timestamp_la_LDFLAGS        = -module -avoid-version
-timestamp_format_la_LDFLAGS = -module -avoid-version
-vvconfig_la_LDFLAGS         = -module -avoid-version
-xmppconsole_la_LDFLAGS      = -module -avoid-version
+endif
 
 if PLUGINS
 
@@ -64,10 +72,14 @@ plugin_LTLIBRARIES = \
 	relnot.la           \
 	sendbutton.la       \
 	spellchk.la         \
-	themeedit.la         \
 	timestamp.la        \
 	timestamp_format.la \
 	xmppconsole.la
+	
+if !OS_WIN32
+plugin_LTLIBRARIES += \
+	themeedit.la
+endif
 
 if USE_VV
 plugin_LTLIBRARIES +=	vvconfig.la
@@ -90,47 +102,47 @@ spellchk_la_SOURCES         = spellchk.c
 relnot_la_SOURCES           = relnot.c
 sendbutton_la_SOURCES       = sendbutton.c
 spellchk_la_SOURCES         = spellchk.c
-themeedit_la_SOURCES        = themeedit.c themeedit-icon.c themeedit-icon.h
 timestamp_la_SOURCES        = timestamp.c
 timestamp_format_la_SOURCES = timestamp_format.c
 vvconfig_la_SOURCES         = vvconfig.c
 xmppconsole_la_SOURCES      = xmppconsole.c
 
-convcolors_la_LIBADD        = $(GTK_LIBS)
-contact_priority_la_LIBADD  = $(GTK_LIBS)
-extplacement_la_LIBADD      = $(GTK_LIBS)
-gtk_signals_test_la_LIBADD  = $(GTK_LIBS)
-gtkbuddynote_la_LIBADD      = $(GTK_LIBS)
-history_la_LIBADD           = $(GTK_LIBS)
-iconaway_la_LIBADD          = $(GTK_LIBS)
-markerline_la_LIBADD        = $(GTK_LIBS)
-notify_la_LIBADD            = $(GTK_LIBS)
-pidginrc_la_LIBADD          = $(GTK_LIBS)
-relnot_la_LIBADD            = $(GLIB_LIBS)
-sendbutton_la_LIBADD        = $(GTK_LIBS)
-spellchk_la_LIBADD          = $(GTK_LIBS)
-themeedit_la_LIBADD         = $(GTK_LIBS)
-timestamp_la_LIBADD         = $(GTK_LIBS)
-timestamp_format_la_LIBADD  = $(GTK_LIBS)
-vvconfig_la_LIBADD          = $(GTK_LIBS) $(GSTREAMER_LIBS)
-xmppconsole_la_LIBADD       = $(GTK_LIBS)
+if !OS_WIN32
+themeedit_la_SOURCES        = themeedit.c themeedit-icon.c themeedit-icon.h
+endif
 
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
+
+convcolors_la_LIBADD        = $(GTK_LIBS) $(PIDGIN_LIBS)
+contact_priority_la_LIBADD  = $(GTK_LIBS) $(PIDGIN_LIBS)
+extplacement_la_LIBADD      = $(GTK_LIBS) $(PIDGIN_LIBS)
+gtk_signals_test_la_LIBADD  = $(GTK_LIBS) $(PIDGIN_LIBS)
+gtkbuddynote_la_LIBADD      = $(GTK_LIBS) $(PIDGIN_LIBS)
+history_la_LIBADD           = $(GTK_LIBS) $(PIDGIN_LIBS)
+iconaway_la_LIBADD          = $(GTK_LIBS) $(PIDGIN_LIBS)
+markerline_la_LIBADD        = $(GTK_LIBS) $(PIDGIN_LIBS)
+notify_la_LIBADD            = $(GTK_LIBS) $(PIDGIN_LIBS)
+pidginrc_la_LIBADD          = $(GTK_LIBS) $(PIDGIN_LIBS)
+relnot_la_LIBADD            = $(GLIB_LIBS) $(PIDGIN_LIBS)
+sendbutton_la_LIBADD        = $(GTK_LIBS) $(PIDGIN_LIBS)
+spellchk_la_LIBADD          = $(GTK_LIBS) $(PIDGIN_LIBS)
+timestamp_la_LIBADD         = $(GTK_LIBS) $(PIDGIN_LIBS)
+timestamp_format_la_LIBADD  = $(GTK_LIBS) $(PIDGIN_LIBS)
+vvconfig_la_LIBADD          = $(GTK_LIBS) $(GSTREAMER_LIBS) $(PIDGIN_LIBS)
+xmppconsole_la_LIBADD       = $(GTK_LIBS) $(PIDGIN_LIBS)
+
 endif # PLUGINS
 
 EXTRA_DIST = \
-	Makefile.mingw \
 	mailchk.c \
 	pidgininc.c \
-	raw.c \
-	win32/transparency/Makefile.mingw \
-	win32/transparency/win2ktrans.c \
-	win32/winprefs/gtkappbar.c \
-	win32/winprefs/gtkappbar.h \
-	win32/winprefs/Makefile.mingw \
-	win32/winprefs/winprefs.c
+	raw.c
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_srcdir)/pidgin \
@@ -138,6 +150,15 @@ AM_CPPFLAGS = \
 	$(GTK_CFLAGS) \
 	$(GSTREAMER_CFLAGS) \
 	$(PLUGIN_CFLAGS)
+	
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/pidgin/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
 
 #
 # This part allows people to build their own plugins in here.
============================================================
--- pidgin/plugins/win32/winprefs/gtkappbar.c	a50df0ccfcf956290aaec2a44d3a5a8957e1325a
+++ pidgin/plugins/win32/winprefs/gtkappbar.c	d5bb0fdf84e4446e42835f38327fec2cc14ed70e
@@ -27,6 +27,7 @@
  *  - Move 'App on top' feature from Trans plugin to here
  *  - Bug: Multiple Show/Hide Desktop calls causes client area to disappear
  */
+#define WINVER 0x500
 #include <windows.h>
 #include <winver.h>
 #include <stdio.h>
============================================================
--- pidgin/plugins/cap/Makefile.am	8004973d47c7666743fceb77c21c2e72c127479d
+++ pidgin/plugins/cap/Makefile.am	264a53569d3b3159d2c9240f8519c439a2577e69
@@ -18,12 +18,16 @@ AM_CPPFLAGS = \
 cap_la_LIBADD = $(GTK_LIBS) $(SQLITE3_LIBS)
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS) \
 	$(SQLITE3_CFLAGS)
+	
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
 
 EXTRA_DIST = Makefile.mingw
============================================================
--- finch/libgnt/wms/Makefile.am	84e899cd4d3f3b98492da6f4a30b81e73fcb10f5
+++ finch/libgnt/wms/Makefile.am	9f0a8565097b0d4d60a07232c08a57b51739c7d3
@@ -29,7 +29,6 @@ AM_CPPFLAGS = \
 EXTRA_DIST = 
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_srcdir)/finch \
 	-I$(top_srcdir)/finch/libgnt \
@@ -38,3 +37,7 @@ AM_CPPFLAGS = \
 	$(GNT_CFLAGS) \
 	$(PLUGIN_CFLAGS)
 
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
============================================================
--- pidgin/win32/MinimizeToTray.c	88c0a58dc14d59569e65b6405ab8e9c0c8079c3a
+++ pidgin/win32/MinimizeToTray.c	60f940ea757c2aa4001190e859b143d26ffeb882
@@ -14,7 +14,7 @@
  *
  * Copyright 2000 Matthew Ellis <m.t.ellis at bigfoot.com>
  */
-#define _WIN32_WINNT 0x0500
+#define _WIN32_WINNT 0x0501
 #include <windows.h>
 #include "MinimizeToTray.h"
 
============================================================
--- libpurple/win32/libpurplerc.rc.in	6c19e180230058185abf4eeea56df8ca379d932e
+++ libpurple/win32/libpurplerc.rc.in	0f83400817f8e06373280a6c0516e1998210c2a5
@@ -2,8 +2,8 @@ VS_VERSION_INFO VERSIONINFO
 #include "version.h"
 
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0
-  PRODUCTVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0
+  FILEVERSION @PURPLE_MAJOR_VERSION@, at PURPLE_MINOR_VERSION@, at PURPLE_MICRO_VERSION@,0
+  PRODUCTVERSION @PURPLE_MAJOR_VERSION@, at PURPLE_MINOR_VERSION@, at PURPLE_MICRO_VERSION@,0
   FILEFLAGSMASK 0
   FILEFLAGS 0
   FILEOS VOS__WINDOWS32
============================================================
--- pidgin/win32/pidgin_exe_rc.rc.in	aba736b0ff683a189ec8ae3bc78ac98809f4b95f
+++ pidgin/win32/pidgin_exe_rc.rc.in	f7417dcffe75d1a720b9647c6d01581418fe9ebc
@@ -3,8 +3,8 @@ VS_VERSION_INFO VERSIONINFO
 #include "version.h"
 
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0
-  PRODUCTVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0
+  FILEVERSION @PURPLE_MAJOR_VERSION@, at PURPLE_MINOR_VERSION@, at PURPLE_MICRO_VERSION@,0
+  PRODUCTVERSION @PURPLE_MAJOR_VERSION@, at PURPLE_MINOR_VERSION@, at PURPLE_MICRO_VERSION@,0
   FILEFLAGSMASK 0
   FILEFLAGS 0
   FILEOS VOS__WINDOWS32
@@ -20,7 +20,7 @@ VS_VERSION_INFO VERSIONINFO
         VALUE "FileVersion", "@PIDGIN_VERSION@"
         VALUE "InternalName", "pidgin"
         VALUE "LegalCopyright", "Copyright (C) 1998-2010 The Pidgin developer community (See the COPYRIGHT file in the source distribution)."
-        VALUE "OriginalFilename", "@ORIGINAL_FILENAME@"
+        VALUE "OriginalFilename", "pidgin.exe"
         VALUE "ProductName", "Pidgin"
         VALUE "ProductVersion", "@PIDGIN_VERSION@"
       END
============================================================
--- pidgin/win32/winpidgin.c	b17aad9cc2ed8bfa7566c950fcd9fd38c18bd0fa
+++ pidgin/win32/winpidgin.c	5e8188f24a1605009d6c4dfa082efafa993ea3bf
@@ -319,11 +319,19 @@ static wchar_t* winpidgin_lcid_to_posix(
 					posix = L"sr at Latn"; break;
 				case SUBLANG_SERBIAN_CYRILLIC:
 					posix = L"sr"; break;
+/* for some reason mingw-w64 doesn't have these definitions yet */
+#ifdef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC
 				case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC:
+					posix = L"bs"; break;
+#endif
+#ifdef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN
 				case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN:
 					posix = L"bs"; break;
+#endif
+#ifdef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN
 				case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN:
 					posix = L"hr"; break;
+#endif
 			}
 			break;
 		case LANG_SWEDISH: posix = L"sv"; break;
@@ -765,7 +773,7 @@ WinMain (struct HINSTANCE__ *hInstance, 
 			return 0;
 
 	/* Now we are ready for Pidgin .. */
-	wcscat(pidgin_dir, L"\\pidgin.dll");
+	wcscat(pidgin_dir, L"\\libpidgin.dll");
 	if ((hmod = LoadLibraryW(pidgin_dir)))
 		pidgin_main = (LPFNPIDGINMAIN) GetProcAddress(hmod, "pidgin_main");
 
@@ -778,7 +786,11 @@ WinMain (struct HINSTANCE__ *hInstance, 
 		BOOL mod_not_found = (dw == ERROR_MOD_NOT_FOUND || dw == ERROR_DLL_NOT_FOUND);
 		const wchar_t *err_msg = get_win32_error_message(dw);
 
+#ifdef USE_FHS
+		_snwprintf(errbuf, 512, L"Error loading libpidgin.dll.\nError: (%u) %s%s%s",
+#else
 		_snwprintf(errbuf, 512, L"Error loading pidgin.dll.\nError: (%u) %s%s%s",
+#endif
 			(UINT) dw, err_msg,
 			mod_not_found ? L"\n" : L"",
 			mod_not_found ? L"This probably means that GTK+ can't be found." : L"");
============================================================
--- libpurple/example/Makefile.am	904f30518e485f956e8bd0070618ecd62241b530
+++ libpurple/example/Makefile.am	d0bcc884e74eacc5280e190c7b67433fbcecb9c4
@@ -12,10 +12,6 @@ AM_CPPFLAGS = \
 
 AM_CPPFLAGS = \
 	-DSTANDALONE \
-	-DDATADIR=\"$(datadir)\" \
-	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \
-	-DLOCALEDIR=\"$(datadir)/locale\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_srcdir) \
@@ -23,3 +19,11 @@ AM_CPPFLAGS = \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	$(LIBXML_CFLAGS)
+
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\" \
+	-DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \
+	-DLOCALEDIR=\"$(datadir)/locale\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
+endif
============================================================
--- libpurple/example/nullclient.c	23ee636379a805df74c7580277b9937b7078cce7
+++ libpurple/example/nullclient.c	f5fb9d3602c747987aea22d6b35849a42a1ad3bc
@@ -304,7 +304,11 @@ int main(int argc, char *argv[])
 	account = purple_account_new(name, prpl);
 
 	/* Get the password for the account */
+#ifndef _WIN32
 	password = getpass("Password: ");
+#else
+	password = "password";
+#endif
 	purple_account_set_password(account, password);
 
 	/* It's necessary to enable the account first. */
============================================================
--- libpurple/protocols/myspace/Makefile.am	42fb944cd11587c6fd12ce66b648ea6c0cd247bc
+++ libpurple/protocols/myspace/Makefile.am	e4d4481cfe227fa0e245d35ebd6fbc57a797692c
@@ -19,7 +19,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libmyspace_la_LDFLAGS = -module -avoid-version
+libmyspace_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_MYSPACE
 
@@ -33,7 +33,7 @@ libmyspace_la_SOURCES = $(MSIMSOURCES)
 st =
 pkg_LTLIBRARIES       = libmyspace.la
 libmyspace_la_SOURCES = $(MSIMSOURCES)
-libmyspace_la_LIBADD  = $(GLIB_LIBS)
+libmyspace_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -42,3 +42,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/protocols/null/Makefile.am	d2765f08974fc534d8a5e243d26e9209f0011bff
+++ libpurple/protocols/null/Makefile.am	94ba1286912cc2ab2544c0aa9ef50c89dca3b96b
@@ -14,10 +14,15 @@ libnull_la_SOURCES = $(NULLSOURCES)
 st =
 pkg_LTLIBRARIES    = libnull.la
 libnull_la_SOURCES = $(NULLSOURCES)
-libnull_la_LIBADD  = $(GLIB_LIBS)
+libnull_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif
============================================================
--- libpurple/certificate.c	27fbde12deb7cdfe30354e7b120ddd7ad0f57895
+++ libpurple/certificate.c	a56515894902983212b31418c77a5cca4a8c71d8
@@ -891,7 +891,7 @@ x509_ca_init(void)
 {
 	/* Attempt to point at the appropriate system path */
 	if (NULL == x509_ca_paths) {
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(USE_FHS)
 		x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR,
 						   "ca-certs", NULL));
 #else
============================================================
--- pidgin/plugins/gevolution/Makefile.am	3f94db301e306cb70e7e3caafb3a9ba261061ad0
+++ pidgin/plugins/gevolution/Makefile.am	1f07a59d56ad67e5424b86e8687a337bcc9e300a
@@ -1,4 +1,8 @@
+if OS_WIN32
+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 plugindir = $(libdir)/pidgin
+endif
 
 gevolution_la_LDFLAGS = -module -avoid-version
 
@@ -15,15 +19,25 @@ gevolution_la_SOURCES = \
 	new_person_dialog.c \
 	eds-utils.c
 
-gevolution_la_LIBADD = $(EVOLUTION_ADDRESSBOOK_LIBS) $(GTK_LIBS)
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
 
+gevolution_la_LIBADD = $(EVOLUTION_ADDRESSBOOK_LIBS) $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS)
+
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(EVOLUTION_ADDRESSBOOK_CFLAGS) \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS)
+
+if !OS_WIN32
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
============================================================
--- pidgin/plugins/disco/Makefile.am	8a50e4c2dd01dc4aff32f06379ae6e571d6ca4de
+++ pidgin/plugins/disco/Makefile.am	8b17cdccd7bee286b3b1710207fbbaf6cdce2038
@@ -1,6 +1,10 @@
+if OS_WIN32
+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION)
+else
 plugindir = $(libdir)/pidgin
+endif
 
-xmppdisco_la_LDFLAGS = -module -avoid-version
+xmppdisco_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 EXTRA_DIST = \
         Makefile.mingw
@@ -15,14 +19,29 @@ xmppdisco_la_SOURCES = \
 	xmppdisco.c \
 	xmppdisco.h
 
-xmppdisco_la_LIBADD = $(GTK_LIBS)
+if OS_WIN32
+PIDGIN_LIBS = $(top_builddir)/pidgin/.libs/libpidgin.la
+else
+PIDGIN_LIBS =
+endif
 
+xmppdisco_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS)
+
 endif
 
 AM_CPPFLAGS = \
-	-DDATADIR=\"$(datadir)\" \
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/pidgin \
 	$(DEBUG_CFLAGS) \
 	$(GTK_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32 \
+	-I$(top_srcdir)/pidgin/win32
+else
+AM_CPPFLAGS += \
+	-DDATADIR=\"$(datadir)\"
+endif
+
============================================================
--- libpurple/protocols/mxit/Makefile.am	d5d7c82e5a7155e4171ccdbbca419160dd88b536
+++ libpurple/protocols/mxit/Makefile.am	d7827b4a7b08a1f1537c9a62af04942b5572141a
@@ -38,7 +38,7 @@ AM_CFLAGS = $(st)
 
 AM_CFLAGS = $(st)
 
-libmxit_la_LDFLAGS = -module -avoid-version
+libmxit_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 if STATIC_MXIT
 
@@ -52,7 +52,7 @@ libmxit_la_SOURCES = $(MXITSOURCES)
 st =
 pkg_LTLIBRARIES   = libmxit.la
 libmxit_la_SOURCES = $(MXITSOURCES)
-libmxit_la_LIBADD  = $(GLIB_LIBS)
+libmxit_la_LIBADD  = $(GLIB_LIBS) $(PURPLE_LIBS)
 
 endif
 
@@ -61,3 +61,8 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/libpurple \
 	$(GLIB_CFLAGS) \
 	$(DEBUG_CFLAGS)
+
+if OS_WIN32
+AM_CPPFLAGS += \
+	-I$(top_srcdir)/libpurple/win32
+endif


More information about the Commits mailing list