changeset 2615:7e5aaa010a02

update package glib
author Hans Petter Jansson <hpj@cl.no>
date Mon, 04 Jun 2012 18:02:11 +0200
parents 1f6e698fb89e
children cacac145fbc6
files index.html src/glib-1-fixes.patch src/glib-2-DllMain.patch src/glib-3-optional-inotify.patch src/glib-4-alignof-stdc-headers.patch src/glib-5-gio-add-dnsapi.patch src/glib-6-static-init.patch src/glib.mk
diffstat 8 files changed, 468 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/index.html	Mon Jun 04 17:59:36 2012 +0200
+++ b/index.html	Mon Jun 04 18:02:11 2012 +0200
@@ -1165,7 +1165,7 @@
     </tr>
     <tr>
         <td id="glib-package">glib</td>
-        <td id="glib-version">2.28.8</td>
+        <td id="glib-version">2.32.2</td>
         <td id="glib-website"><a href="http://www.gtk.org/">GLib</a></td>
     </tr>
     <tr>
--- a/src/glib-1-fixes.patch	Mon Jun 04 17:59:36 2012 +0200
+++ b/src/glib-1-fixes.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -3,29 +3,6 @@
 
 Contains ad hoc patches for cross building.
 
-From 4693f62d3f01f7b7d26607e6eed843202cbf90f7 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Thu, 23 Sep 2010 21:36:04 +0200
-Subject: [PATCH 1/5] no gtk doc check
-
-
-diff --git a/configure.ac b/configure.ac
-index a821267..2e541d2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2741,8 +2741,6 @@ dnl **************************
- dnl *** Checks for gtk-doc ***
- dnl **************************
- 
--GTK_DOC_CHECK([1.15])
--
- AC_ARG_ENABLE(man,
-               [AC_HELP_STRING([--enable-man],
-                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
--- 
-1.7.1
-
-
 From 46d0d473e6fb32c5204d063cad5f5073d2a139a5 Mon Sep 17 00:00:00 2001
 From: MXE
 Date: Thu, 23 Sep 2010 21:41:51 +0200
@@ -95,57 +72,3 @@
 1.7.1
 
 
-From 0e57514812500d5d4dee03e1be8059a25876dd99 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Thu, 23 Sep 2010 21:45:50 +0200
-Subject: [PATCH 4/5] fix dependency libs
-
-
-diff --git a/configure.ac b/configure.ac
-index 18c2dea..e472768 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2698,7 +2698,7 @@ case $host in
- 	G_LIBS_EXTRA="-luser32 -lkernel32"
-     ;;
-   *-*-mingw*)
--	G_LIBS_EXTRA="-lws2_32 -lole32"
-+	G_LIBS_EXTRA="-lws2_32 -lole32 -lshlwapi"
-     ;;
-   *)
- 	G_LIBS_EXTRA=""
-diff --git a/glib-2.0.pc.in b/glib-2.0.pc.in
-index 58e1ecf..17b2133 100644
---- a/glib-2.0.pc.in
-+++ b/glib-2.0.pc.in
-@@ -11,5 +11,5 @@ Name: GLib
- Description: C Utility Library
- Version: @VERSION@
- Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
--Libs.private: @ICONV_LIBS@
-+Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@
- Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
--- 
-1.7.1
-
-
-From 87931c81f6401fb0c25064ec0ba2edca9ec53924 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Sat, 25 Sep 2010 00:07:33 +0200
-Subject: [PATCH 5/5] add -ldnsapi to gio-2.0.pc
-
-
-diff --git a/gio-2.0.pc.in b/gio-2.0.pc.in
-index 92cda85..7a4e224 100644
---- a/gio-2.0.pc.in
-+++ b/gio-2.0.pc.in
-@@ -10,6 +10,6 @@ Name: GIO
- Description: glib I/O library
- Version: @VERSION@
- Requires: glib-2.0,gobject-2.0,gmodule-no-export-2.0
--Libs: -L${libdir} -lgio-2.0
-+Libs: -L${libdir} -lgio-2.0 -ldnsapi
- Libs.private: @ZLIB_LIBS@ @LIBASYNCNS_LIBADD@
- Cflags: 
--- 
-1.7.1
--- a/src/glib-2-DllMain.patch	Mon Jun 04 17:59:36 2012 +0200
+++ b/src/glib-2-DllMain.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -1,3 +1,8 @@
+This file is part of MXE.
+See index.html for further information.
+
+Avoid DllMain symbol conflict when linking statically.
+
 diff -uNr glib-2.28.8-orig/gio/giomodule.c glib/gio/giomodule.c
 --- glib-2.28.8-orig/gio/giomodule.c	2011-01-05 22:44:06.000000000 +0100
 +++ glib/gio/giomodule.c	2011-11-23 21:04:43.867004895 +0100
@@ -22,38 +27,20 @@
  #undef GIO_MODULE_DIR
  
  /* GIO_MODULE_DIR is used only in code called just once,
-diff -uNr glib-2.28.8-orig/glib/gutils.c glib/glib/gutils.c
---- glib-2.28.8-orig/glib/gutils.c	2011-06-06 01:18:49.000000000 +0200
-+++ glib/glib/gutils.c	2011-11-23 21:05:07.822988144 +0100
-@@ -144,10 +144,8 @@
+diff --git a/glib/glib-init.c b/glib/glib-init.c
+index f4edd5c..02bf678 100644
+--- a/glib/glib-init.c
++++ b/glib/glib-init.c
+@@ -226,9 +226,9 @@ glib_init (void)
+ HMODULE glib_dll;
  
- static HMODULE glib_dll = NULL;
- 
--#ifdef DLL_EXPORT
--
  BOOL WINAPI
 -DllMain (HINSTANCE hinstDLL,
+-         DWORD     fdwReason,
+-         LPVOID    lpvReserved)
 +glib_DllMain (HINSTANCE hinstDLL,
- 	 DWORD     fdwReason,
- 	 LPVOID    lpvReserved)
++              DWORD     fdwReason,
++              LPVOID    lpvReserved)
  {
-@@ -157,8 +155,6 @@
-   return TRUE;
- }
- 
--#endif
--
- gchar *
- _glib_get_dll_directory (void)
- {
-@@ -166,10 +162,8 @@
-   gchar *p;
-   wchar_t wc_fn[MAX_PATH];
- 
--#ifdef DLL_EXPORT
-   if (glib_dll == NULL)
-     return NULL;
--#endif
- 
-   /* This code is different from that in
-    * g_win32_get_package_installation_directory_of_module() in that
+   switch (fdwReason)
+     {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/glib-3-optional-inotify.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -0,0 +1,31 @@
+This file is part of MXE.
+See index.html for further information.
+
+Allow building without inotify support.
+
+diff --git a/configure.ac b/configure.ac
+index 2d7ce80..e126ca8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1700,11 +1700,18 @@ dnl *****************************
+ dnl ** Check for inotify (GIO) **
+ dnl *****************************
+ inotify_support=no
+-AC_CHECK_HEADERS([sys/inotify.h],
+-[
++
++AC_ARG_ENABLE(inotify,
++              AC_HELP_STRING([--disable-inotify],
++                             [build without inotify support]))
++
++if test "x$enable_inotify" != "xno"; then
++ AC_CHECK_HEADERS([sys/inotify.h],
++ [
+ 	inotify_support=yes
+ 	AC_CHECK_FUNCS(inotify_init1)
+-])
++ ])
++fi
+ 
+ AM_CONDITIONAL(HAVE_INOTIFY, [test "$inotify_support" = "yes"])
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/glib-4-alignof-stdc-headers.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -0,0 +1,18 @@
+This file is part of MXE.
+See index.html for further information.
+
+Make sure STDC_HEADERS is set for AC_CHECK_ALIGNOF. Backported from upstream.
+
+diff --git a/configure.ac b/configure.ac
+index 31f5f0e..f8ff60d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -452,6 +452,8 @@ fi
+ 
+ AC_MSG_RESULT($enable_iconv_cache)
+ 
++# Make sure STDC_HEADERS is set for AC_CHECK_ALIGNOF
++AS_IF([false], [AC_CHECK_HEADER([stdint.h])])
+ 
+ dnl
+ dnl zlib support
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/glib-5-gio-add-dnsapi.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -0,0 +1,17 @@
+This file is part of MXE.
+See index.html for further information.
+
+Link with dnsapi.
+
+diff --git a/gio-2.0.pc.in b/gio-2.0.pc.in
+index 9f7123f..b0d5779 100644
+--- a/gio-2.0.pc.in
++++ b/gio-2.0.pc.in
+@@ -13,6 +13,6 @@ Description: glib I/O library
+ Version: @VERSION@
+ Requires: glib-2.0 gobject-2.0
+ Requires.private: gmodule-no-export-2.0
+-Libs: -L${libdir} -lgio-2.0
++Libs: -L${libdir} -lgio-2.0 -ldnsapi
+ Libs.private: @ZLIB_LIBS@ @NETWORK_LIBS@
+ Cflags:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/glib-6-static-init.patch	Mon Jun 04 18:02:11 2012 +0200
@@ -0,0 +1,374 @@
+This file is part of MXE.
+See index.html for further information.
+
+Ensure globals are initialized even when DllMain is not being run.
+
+diff --git a/glib/gmain.c b/glib/gmain.c
+index 760f179..878ac14 100644
+--- a/glib/gmain.c
++++ b/glib/gmain.c
+@@ -1981,12 +1981,15 @@ g_get_real_time (void)
+ #ifdef G_OS_WIN32
+ static ULONGLONG (*g_GetTickCount64) (void) = NULL;
+ static guint32 g_win32_tick_epoch = 0;
++static gboolean g_win32_clock_is_initialized;
+ 
+ G_GNUC_INTERNAL void
+ g_clock_win32_init (void)
+ {
+   HMODULE kernel32;
+ 
++  g_win32_clock_is_initialized = TRUE;
++
+   g_GetTickCount64 = NULL;
+   kernel32 = GetModuleHandle ("KERNEL32.DLL");
+   if (kernel32 != NULL)
+@@ -2105,6 +2108,9 @@ g_get_monotonic_time (void)
+    *    timeBeginPeriod() to increase it as much as they want
+    */
+ 
++  if (!g_win32_clock_is_initialized)
++    g_clock_win32_init ();
++
+   if (g_GetTickCount64 != NULL)
+     {
+       guint32 ticks_as_32bit;
+diff --git a/glib/gthread-win32.c b/glib/gthread-win32.c
+index 5a9ac97..e4d1d48 100644
+--- a/glib/gthread-win32.c
++++ b/glib/gthread-win32.c
+@@ -117,18 +117,28 @@ typedef struct
+   void     (__stdcall * WakeConditionVariable)       (gpointer cond);
+ } GThreadImplVtable;
+ 
++/* Needed for static builds where DllMain initializer doesn't get called */
++static gboolean g_threads_is_initialized;
++G_GNUC_INTERNAL void g_thread_win32_init (void);
++
+ static GThreadImplVtable g_thread_impl_vtable;
+ 
+ /* {{{1 GMutex */
+ void
+ g_mutex_init (GMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.InitializeSRWLock (mutex);
+ }
+ 
+ void
+ g_mutex_clear (GMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   if (g_thread_impl_vtable.DeleteSRWLock != NULL)
+     g_thread_impl_vtable.DeleteSRWLock (mutex);
+ }
+@@ -136,18 +146,27 @@ g_mutex_clear (GMutex *mutex)
+ void
+ g_mutex_lock (GMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.AcquireSRWLockExclusive (mutex);
+ }
+ 
+ gboolean
+ g_mutex_trylock (GMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   return g_thread_impl_vtable.TryAcquireSRWLockExclusive (mutex);
+ }
+ 
+ void
+ g_mutex_unlock (GMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.ReleaseSRWLockExclusive (mutex);
+ }
+ 
+@@ -158,6 +177,9 @@ g_rec_mutex_impl_new (void)
+ {
+   CRITICAL_SECTION *cs;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   cs = g_slice_new (CRITICAL_SECTION);
+   InitializeCriticalSection (cs);
+ 
+@@ -168,6 +190,10 @@ static void
+ g_rec_mutex_impl_free (CRITICAL_SECTION *cs)
+ {
+   DeleteCriticalSection (cs);
++
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_slice_free (CRITICAL_SECTION, cs);
+ }
+ 
+@@ -176,6 +202,9 @@ g_rec_mutex_get_impl (GRecMutex *mutex)
+ {
+   CRITICAL_SECTION *impl = mutex->p;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   if G_UNLIKELY (mutex->p == NULL)
+     {
+       impl = g_rec_mutex_impl_new ();
+@@ -190,30 +219,45 @@ g_rec_mutex_get_impl (GRecMutex *mutex)
+ void
+ g_rec_mutex_init (GRecMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   mutex->p = g_rec_mutex_impl_new ();
+ }
+ 
+ void
+ g_rec_mutex_clear (GRecMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_rec_mutex_impl_free (mutex->p);
+ }
+ 
+ void
+ g_rec_mutex_lock (GRecMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   EnterCriticalSection (g_rec_mutex_get_impl (mutex));
+ }
+ 
+ void
+ g_rec_mutex_unlock (GRecMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   LeaveCriticalSection (mutex->p);
+ }
+ 
+ gboolean
+ g_rec_mutex_trylock (GRecMutex *mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   return TryEnterCriticalSection (g_rec_mutex_get_impl (mutex));
+ }
+ 
+@@ -222,12 +266,18 @@ g_rec_mutex_trylock (GRecMutex *mutex)
+ void
+ g_rw_lock_init (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.InitializeSRWLock (lock);
+ }
+ 
+ void
+ g_rw_lock_clear (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   if (g_thread_impl_vtable.DeleteSRWLock != NULL)
+     g_thread_impl_vtable.DeleteSRWLock (lock);
+ }
+@@ -235,36 +285,54 @@ g_rw_lock_clear (GRWLock *lock)
+ void
+ g_rw_lock_writer_lock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.AcquireSRWLockExclusive (lock);
+ }
+ 
+ gboolean
+ g_rw_lock_writer_trylock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   return g_thread_impl_vtable.TryAcquireSRWLockExclusive (lock);
+ }
+ 
+ void
+ g_rw_lock_writer_unlock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.ReleaseSRWLockExclusive (lock);
+ }
+ 
+ void
+ g_rw_lock_reader_lock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.AcquireSRWLockShared (lock);
+ }
+ 
+ gboolean
+ g_rw_lock_reader_trylock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   return g_thread_impl_vtable.TryAcquireSRWLockShared (lock);
+ }
+ 
+ void
+ g_rw_lock_reader_unlock (GRWLock *lock)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.ReleaseSRWLockShared (lock);
+ }
+ 
+@@ -272,12 +340,18 @@ g_rw_lock_reader_unlock (GRWLock *lock)
+ void
+ g_cond_init (GCond *cond)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.InitializeConditionVariable (cond);
+ }
+ 
+ void
+ g_cond_clear (GCond *cond)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   if (g_thread_impl_vtable.DeleteConditionVariable)
+     g_thread_impl_vtable.DeleteConditionVariable (cond);
+ }
+@@ -285,12 +359,18 @@ g_cond_clear (GCond *cond)
+ void
+ g_cond_signal (GCond *cond)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.WakeConditionVariable (cond);
+ }
+ 
+ void
+ g_cond_broadcast (GCond *cond)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.WakeAllConditionVariable (cond);
+ }
+ 
+@@ -298,6 +378,9 @@ void
+ g_cond_wait (GCond  *cond,
+              GMutex *entered_mutex)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   g_thread_impl_vtable.SleepConditionVariableSRW (cond, entered_mutex, INFINITE, 0);
+ }
+ 
+@@ -308,6 +391,9 @@ g_cond_wait_until (GCond  *cond,
+ {
+   gint64 span;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   span = end_time - g_get_monotonic_time ();
+ 
+   if G_UNLIKELY (span < 0)
+@@ -340,6 +426,9 @@ g_private_get_impl (GPrivate *key)
+ 
+   if G_UNLIKELY (impl == 0)
+     {
++      if (!g_threads_is_initialized)
++        g_thread_win32_init ();
++
+       EnterCriticalSection (&g_private_lock);
+       impl = (DWORD) key->p;
+       if (impl == 0)
+@@ -433,6 +522,9 @@ g_system_thread_free (GRealThread *thread)
+ {
+   GThreadWin32 *wt = (GThreadWin32 *) thread;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   win32_check_for_error (CloseHandle (wt->handle));
+   g_slice_free (GThreadWin32, wt);
+ }
+@@ -440,6 +532,9 @@ g_system_thread_free (GRealThread *thread)
+ void
+ g_system_thread_exit (void)
+ {
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   _endthreadex (0);
+ }
+ 
+@@ -448,6 +543,9 @@ g_thread_win32_proxy (gpointer data)
+ {
+   GThreadWin32 *self = data;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   self->proxy (self);
+ 
+   g_system_thread_exit ();
+@@ -465,6 +563,9 @@ g_system_thread_new (GThreadFunc   func,
+   GThreadWin32 *thread;
+   guint ignore;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   thread = g_slice_new0 (GThreadWin32);
+   thread->proxy = func;
+ 
+@@ -494,6 +595,9 @@ g_system_thread_wait (GRealThread *thread)
+ {
+   GThreadWin32 *wt = (GThreadWin32 *) thread;
+ 
++  if (!g_threads_is_initialized)
++    g_thread_win32_init ();
++
+   win32_check_for_error (WAIT_FAILED != WaitForSingleObject (wt->handle, INFINITE));
+ }
+ 
+@@ -985,6 +1089,8 @@ g_thread_lookup_native_funcs (void)
+ G_GNUC_INTERNAL void
+ g_thread_win32_init (void)
+ {
++  g_threads_is_initialized = TRUE;
++
+   if (!g_thread_lookup_native_funcs ())
+     g_thread_xp_init ();
+ 
--- a/src/glib.mk	Mon Jun 04 17:59:36 2012 +0200
+++ b/src/glib.mk	Mon Jun 04 18:02:11 2012 +0200
@@ -3,11 +3,11 @@
 
 PKG             := glib
 $(PKG)_IGNORE   :=
-$(PKG)_CHECKSUM := 9b11968fedf4da45bcd10c4a8c50012d41b3af50
+$(PKG)_CHECKSUM := 5898165e58c8f946c2b1fd05b910fe4476b64164
 $(PKG)_SUBDIR   := glib-$($(PKG)_VERSION)
 $(PKG)_FILE     := glib-$($(PKG)_VERSION).tar.xz
 $(PKG)_URL      := http://ftp.gnome.org/pub/gnome/sources/glib/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
-$(PKG)_DEPS     := gcc gettext pcre libiconv zlib dbus
+$(PKG)_DEPS     := gcc gettext pcre libiconv zlib libffi dbus
 
 define $(PKG)_UPDATE
     $(WGET) -q -O- 'http://git.gnome.org/browse/glib/refs/tags' | \
@@ -35,6 +35,7 @@
         --enable-regex \
         --disable-threads \
         --disable-selinux \
+        --disable-inotify \
         --disable-fam \
         --disable-xattr \
         --disable-dtrace \
@@ -45,9 +46,13 @@
     $(SED) -i 's,#define G_ATOMIC.*,,' '$(1).native/config.h'
     $(MAKE) -C '$(1).native/glib'    -j '$(JOBS)'
     $(MAKE) -C '$(1).native/gthread' -j '$(JOBS)'
+    $(MAKE) -C '$(1).native/gmodule' -j '$(JOBS)'
     $(MAKE) -C '$(1).native/gobject' -j '$(JOBS)' lib_LTLIBRARIES= install-exec
+    $(MAKE) -C '$(1).native/gio/xdgmime'     -j '$(JOBS)'
     $(MAKE) -C '$(1).native/gio'     -j '$(JOBS)' glib-compile-schemas
+    $(MAKE) -C '$(1).native/gio'     -j '$(JOBS)' glib-compile-resources
     $(INSTALL) -m755 '$(1).native/gio/glib-compile-schemas' '$(PREFIX)/$(TARGET)/bin/'
+    $(INSTALL) -m755 '$(1).native/gio/glib-compile-resources' '$(PREFIX)/$(TARGET)/bin/'
 
     # cross build
     cd '$(1)' && ./configure \
@@ -58,10 +63,12 @@
         --with-threads=win32 \
         --with-pcre=system \
         --with-libiconv=gnu \
+        --disable-inotify \
         CXX='$(TARGET)-c++' \
         PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config' \
         GLIB_GENMARSHAL='$(PREFIX)/$(TARGET)/bin/glib-genmarshal' \
-        GLIB_COMPILE_SCHEMAS='$(PREFIX)/$(TARGET)/bin/glib-compile-schemas'
+        GLIB_COMPILE_SCHEMAS='$(PREFIX)/$(TARGET)/bin/glib-compile-schemas' \
+        GLIB_COMPILE_RESOURCES='$(PREFIX)/$(TARGET)/bin/glib-compile-resources'
     $(MAKE) -C '$(1)/glib'    -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gmodule' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gthread' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=