Don't enforce shared library build only on Windows. It might well make

2008-04-03  Tor Lillqvist  <tml@novell.com>

	* configure.in: Don't enforce shared library build only on
	Windows. It might well make sense to build static libraries in
	some use cases.

	* glib/gutils.c: Don't compile the DllMain if building libglib
	statically. Also in that case don't return NULL from
	_glib_get_installation_directory(), but return the installation
	directory of the program's .exe file.


svn path=/trunk/; revision=6818
This commit is contained in:
Tor Lillqvist 2008-04-03 20:17:15 +00:00 committed by Tor Lillqvist
parent fd54a90954
commit 285b31e7a5
3 changed files with 20 additions and 12 deletions

View File

@ -1,3 +1,14 @@
2008-04-03 Tor Lillqvist <tml@novell.com>
* configure.in: Don't enforce shared library build only on
Windows. It might well make sense to build static libraries in
some use cases.
* glib/gutils.c: Don't compile the DllMain if building libglib
statically. Also in that case don't return NULL from
_glib_get_installation_directory(), but return the installation
directory of the program's .exe file.
2008-04-03 Tor Lillqvist <tml@novell.com> 2008-04-03 Tor Lillqvist <tml@novell.com>
Bug 525972 - UCS-4 not in the new win_iconv implementation Bug 525972 - UCS-4 not in the new win_iconv implementation

View File

@ -235,17 +235,6 @@ else
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
fi fi
if test "$glib_native_win32" = "yes"; then
if test x$enable_static = xyes -o x$enable_static = x; then
AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
enable_static=no
fi
if test x$enable_shared = xno; then
AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
fi
enable_shared=yes
fi
dnl Checks for programs. dnl Checks for programs.
AC_PROG_CC AC_PROG_CC

View File

@ -134,6 +134,8 @@ const guint glib_binary_age = GLIB_BINARY_AGE;
static HMODULE glib_dll = NULL; static HMODULE glib_dll = NULL;
#ifdef DLL_EXPORT
BOOL WINAPI BOOL WINAPI
DllMain (HINSTANCE hinstDLL, DllMain (HINSTANCE hinstDLL,
DWORD fdwReason, DWORD fdwReason,
@ -145,12 +147,18 @@ DllMain (HINSTANCE hinstDLL,
return TRUE; return TRUE;
} }
#endif
gchar * gchar *
_glib_get_installation_directory (void) _glib_get_installation_directory (void)
{ {
#ifdef DLL_EXPORT
if (glib_dll == NULL) if (glib_dll == NULL)
return NULL; return NULL;
#endif
/* In a static build of GLib just use the application's .exe file's
* installation directory...
*/
return g_win32_get_package_installation_directory_of_module (glib_dll); return g_win32_get_package_installation_directory_of_module (glib_dll);
} }