GSimpleProxyResolver: new simple GProxyResolver class
[platform/upstream/glib.git] / gio / Makefile.am
index 2bd0bec..06c71b9 100644 (file)
@@ -2,10 +2,10 @@ include $(top_srcdir)/Makefile.decl
 
 NULL =
 
-SUBDIRS=
+SUBDIRS = gdbus-2.0/codegen
 
 if OS_UNIX
-SUBDIRS += libasyncns xdgmime
+SUBDIRS += xdgmime
 endif
 
 if OS_WIN32_AND_DLL_COMPILATION
@@ -23,70 +23,157 @@ install-ms-lib:
 uninstall-ms-lib:
        $(uninstall_ms_lib_cmd)
 
-gio.def: gio.symbols
-       (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gio.def.tmp && \
-         mv gio.def.tmp gio.def
-
-gioalias.h: gio.symbols
-       $(PERL) $(srcdir)/makegioalias.pl < $(srcdir)/gio.symbols > gioalias.h.tmp && \
-         mv gioalias.h.tmp gioalias.h
-
-gioaliasdef.c: gio.symbols
-       $(PERL) $(srcdir)/makegioalias.pl -def < $(srcdir)/gio.symbols > gioaliasdef.c.tmp && \
-         mv gioaliasdef.c.tmp gioaliasdef.c
-
-if OS_LINUX
-if HAVE_GNUC_VISIBILITY
-TESTS = abicheck.sh pltcheck.sh
-endif
-endif
-
-if HAVE_THREADS
-THREAD_FLAGS=-DG_THREADS_MANDATORY
-endif
-
 AM_CPPFLAGS = \
        -DG_LOG_DOMAIN=\"GLib-GIO\"                     \
-       -I$(top_builddir)                               \
-       -I$(top_srcdir)                                 \
-       -I$(top_srcdir)/glib                            \
-       -I$(top_srcdir)/gmodule                         \
+       $(gmodule_INCLUDES)                             \
        $(GLIB_DEBUG_FLAGS)                             \
-       $(THREAD_FLAGS)                                 \
-       -DG_DISABLE_DEPRECATED                          \
        -DGIO_COMPILATION                               \
        -DGIO_MODULE_DIR=\"$(GIO_MODULE_DIR)\"  
 
 lib_LTLIBRARIES = libgio-2.0.la
 
-marshal_sources = \
-        gio-marshal.h  \
-        gio-marshal.c  \
+gdbus_headers =                        \
+       gdbusauthobserver.h             \
+       gcredentials.h                  \
+       gdbusutils.h                    \
+       gdbuserror.h                    \
+       gdbusaddress.h                  \
+       gdbusconnection.h               \
+       gdbusmessage.h                  \
+       gdbusnameowning.h               \
+       gdbusnamewatching.h             \
+       gdbusproxy.h                    \
+       gdbusintrospection.h            \
+       gdbusmethodinvocation.h         \
+       gdbusserver.h                   \
+       gdbusinterface.h                \
+       gdbusinterfaceskeleton.h        \
+       gdbusobject.h                   \
+       gdbusobjectskeleton.h           \
+       gdbusobjectproxy.h              \
+       gdbusobjectmanager.h            \
+       gdbusobjectmanagerclient.h      \
+       gdbusobjectmanagerserver.h      \
+       gtestdbus.h                     \
        $(NULL)
 
-if CROSS_COMPILING
-  glib_genmarshal=$(GLIB_GENMARSHAL)
-else
-  glib_genmarshal=../gobject/glib-genmarshal
-endif
+gdbus_sources =                                                        \
+       gdbusutils.h                    gdbusutils.c                    \
+       gdbusaddress.h                  gdbusaddress.c                  \
+       gdbusauthobserver.h             gdbusauthobserver.c             \
+       gdbusauth.h                     gdbusauth.c                     \
+       gdbusauthmechanism.h            gdbusauthmechanism.c            \
+       gdbusauthmechanismanon.h        gdbusauthmechanismanon.c        \
+       gdbusauthmechanismexternal.h    gdbusauthmechanismexternal.c    \
+       gdbusauthmechanismsha1.h        gdbusauthmechanismsha1.c        \
+       gdbuserror.h                    gdbuserror.c                    \
+       gdbusconnection.h               gdbusconnection.c               \
+       gdbusmessage.h                  gdbusmessage.c                  \
+       gdbusnameowning.h               gdbusnameowning.c               \
+       gdbusnamewatching.h             gdbusnamewatching.c             \
+       gdbusproxy.h                    gdbusproxy.c                    \
+       gdbusprivate.h                  gdbusprivate.c                  \
+       gdbusintrospection.h            gdbusintrospection.c            \
+       gdbusmethodinvocation.h         gdbusmethodinvocation.c         \
+       gdbusserver.h                   gdbusserver.c                   \
+       gdbusinterface.h                gdbusinterface.c                \
+       gdbusinterfaceskeleton.h        gdbusinterfaceskeleton.c        \
+       gdbusobject.h                   gdbusobject.c                   \
+       gdbusobjectskeleton.h           gdbusobjectskeleton.c           \
+       gdbusobjectproxy.h              gdbusobjectproxy.c              \
+       gdbusobjectmanager.h            gdbusobjectmanager.c            \
+       gdbusobjectmanagerclient.h      gdbusobjectmanagerclient.c      \
+       gdbusobjectmanagerserver.h      gdbusobjectmanagerserver.c      \
+       gtestdbus.h                     gtestdbus.c                     \
+       $(NULL)
+
+# These are not built into the library yet
+EXTRA_DIST += gdbusdaemon.c gdbusdaemon.h dbus-daemon.xml
 
-gio-marshal.h: gio-marshal.list
-       $(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --header --internal > $@.tmp && \
-         mv $@.tmp $@
+gdbus-daemon-generated.h gdbus-daemon-generated.c: $(srcdir)/dbus-daemon.xml $(srcdir)/gdbus-2.0/codegen/gdbus-codegen.in
+       $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
+               UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
+               $(PYTHON) $(srcdir)/gdbus-2.0/codegen/gdbus-codegen.in \
+               --interface-prefix org. \
+               --generate-c-code gdbus-daemon-generated \
+               --c-namespace _G \
+               $(srcdir)/dbus-daemon.xml \
+               $(NULL)
 
-gio-marshal.c: gio-marshal.h gio-marshal.list
-       (echo "#include \"gio-marshal.h\""; \
-       $(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --body --internal) > $@.tmp && \
-         mv $@.tmp $@
+settings_headers = \
+       gsettingsbackend.h              \
+       gsettingsschema.h               \
+       gsettings.h
 
 settings_sources = \
-       gsettingsbackendinternal.h      \
-       gnullsettingsbackend.h          \
+       gvdb/gvdb-format.h              \
+       gvdb/gvdb-reader.h              \
+       gvdb/gvdb-reader.c              \
+       gdelayedsettingsbackend.h       \
+       gdelayedsettingsbackend.c       \
+       gkeyfilesettingsbackend.c       \
+       gmemorysettingsbackend.c        \
        gnullsettingsbackend.c          \
-       gsettingsbackend.c
+       gsettingsbackendinternal.h      \
+       gsettingsbackend.c              \
+       gsettingsschema.h               \
+       gsettingsschema-internal.h      \
+       gsettingsschema.c               \
+       gsettings-mapping.h             \
+       gsettings-mapping.c             \
+       gsettings.c
 
-settings_headers = \
-       gsettingsbackend.h
+if OS_WIN32
+settings_sources += \
+       gregistrysettingsbackend.h      \
+       gregistrysettingsbackend.c
+endif
+
+if OS_COCOA
+settings_sources += \
+       gnextstepsettingsbackend.c
+endif
+
+application_headers = \
+       gapplication.h                  \
+       gapplicationcommandline.h       \
+                                       \
+       gactiongroup.h                  \
+       gactionmap.h                    \
+       gsimpleactiongroup.h            \
+       gremoteactiongroup.h            \
+       gactiongroupexporter.h          \
+       gdbusactiongroup.h              \
+       gaction.h                       \
+       gsimpleaction.h                 \
+                                       \
+       gmenumodel.h                    \
+       gmenu.h                         \
+       gmenuexporter.h                 \
+       gdbusmenumodel.h                \
+       $(NULL)
+
+application_sources = \
+       gapplication.c                          \
+       gapplicationcommandline.c               \
+       gapplicationimpl-dbus.c                 \
+       gapplicationimpl.h                      \
+                                               \
+       gactiongroup.c                          \
+       gactionmap.c                            \
+       gsimpleactiongroup.c                    \
+       gremoteactiongroup.c                    \
+       gactiongroupexporter.c                  \
+       gdbusactiongroup-private.h              \
+       gdbusactiongroup.c                      \
+       gaction.c                               \
+       gsimpleaction.c                         \
+                                               \
+       gmenumodel.c                            \
+       gmenu.c                                 \
+       gmenuexporter.c                         \
+       gdbusmenumodel.c                        \
+       $(NULL)
 
 local_sources = \
        glocaldirectorymonitor.c        \
@@ -107,6 +194,12 @@ local_sources = \
        glocalfileiostream.h            \
        glocalvfs.c                     \
        glocalvfs.h                     \
+       gsocks4proxy.c                  \
+       gsocks4proxy.h                  \
+       gsocks4aproxy.c                 \
+       gsocks4aproxy.h                 \
+       gsocks5proxy.c                  \
+       gsocks5proxy.h                  \
        $(NULL)
 
 platform_libadd =
@@ -119,6 +212,12 @@ platform_libadd += inotify/libinotify.la
 platform_deps += inotify/libinotify.la
 endif
 
+if HAVE_KQUEUE
+SUBDIRS += kqueue
+platform_libadd += kqueue/libkqueue.la
+platform_deps += kqueue/libkqueue.la
+endif
+
 if HAVE_FEN
 AM_CPPFLAGS += -DHAVE_FEN
 SUBDIRS += fen
@@ -132,7 +231,6 @@ platform_libadd += win32/libgiowin32.la
 platform_deps += win32/libgiowin32.la
 endif
 
-
 SUBDIRS += .
 
 if HAVE_FAM
@@ -140,19 +238,18 @@ SUBDIRS += fam
 endif
 
 if OS_UNIX
-appinfo_sources += gdesktopappinfo.c gdesktopappinfo.h
-platform_libadd += libasyncns/libasyncns.la xdgmime/libxdgmime.la
-platform_deps += libasyncns/libasyncns.la xdgmime/libxdgmime.la
+appinfo_sources += gdesktopappinfo.c
+platform_libadd += xdgmime/libxdgmime.la $(RESOLVER_LIBADD)
+platform_deps += xdgmime/libxdgmime.la
 unix_sources = \
+       gfiledescriptorbased.c  \
        gunixconnection.c       \
+       gunixcredentialsmessage.c       \
        gunixfdlist.c           \
        gunixfdmessage.c        \
        gunixmount.c            \
        gunixmount.h            \
        gunixmounts.c           \
-       gunixmounts.h           \
-       gunixresolver.c         \
-       gunixresolver.h         \
        gunixsocketaddress.c    \
        gunixvolume.c           \
        gunixvolume.h           \
@@ -160,6 +257,8 @@ unix_sources = \
        gunixvolumemonitor.h    \
        gunixinputstream.c      \
        gunixoutputstream.c     \
+       gcontenttype.c          \
+       gcontenttypeprivate.h   \
        $(NULL)
 
 
@@ -168,6 +267,7 @@ giounixinclude_HEADERS = \
        gdesktopappinfo.h       \
        gfiledescriptorbased.h  \
        gunixconnection.h       \
+       gunixcredentialsmessage.h       \
        gunixmounts.h           \
        gunixfdlist.h           \
        gunixfdmessage.h        \
@@ -175,23 +275,59 @@ giounixinclude_HEADERS = \
        gunixoutputstream.h     \
        gunixsocketaddress.h    \
        $(NULL)
+
+if HAVE_NETLINK
+unix_sources +=                         \
+       gnetworkmonitornetlink.c \
+       gnetworkmonitornetlink.h \
+       $(NULL)
+endif
 endif
 
-if OS_WIN32
-appinfo_sources += gwin32appinfo.c gwin32appinfo.h
-platform_libadd += -lshlwapi -lws2_32 -ldnsapi
-win32_sources = \
+gdbus_daemon_sources = \
+       gdbusdaemon.c \
+       gdbusdaemon.h \
+       gdbus-daemon-generated.c \
+       gdbus-daemon-generated.h \
+       $(NULL)
+
+win32_actual_sources = \
+       $(gdbus_daemon_sources) \
+       gcontenttype-win32.c \
        gwin32mount.c \
        gwin32mount.h \
-       gwin32resolver.c \
-       gwin32resolver.h \
        gwin32volumemonitor.c \
        gwin32volumemonitor.h \
+       gwin32inputstream.c \
+       gwin32outputstream.c \
+       gwin32outputstream.h \
+       $(NULL)
+
+win32_more_sources_for_vcproj = \
+       gwin32appinfo.c \
+       gregistrysettingsbackend.c \
+       win32/gwin32directorymonitor.c \
+       win32/gwinhttpfile.c \
+       win32/gwinhttpfileinputstream.c \
+       win32/gwinhttpfileoutputstream.c \
+       win32/gwinhttpvfs.c
+
+if OS_WIN32
+appinfo_sources += gwin32appinfo.c gwin32appinfo.h
+platform_libadd += -lshlwapi -lws2_32 -ldnsapi
+win32_sources = $(win32_actual_sources)
+
+giowin32includedir=$(includedir)/gio-win32-2.0/gio
+giowin32include_HEADERS = \
+       gwin32inputstream.h \
+       gwin32outputstream.h \
        $(NULL)
 
 endif
 
-SUBDIRS += tests
+if BUILD_MODULAR_TESTS
+SUBDIRS += tests 
+endif
 
 libgio_2_0_la_SOURCES =                \
        gappinfo.c              \
@@ -202,17 +338,20 @@ libgio_2_0_la_SOURCES =           \
        gbufferedinputstream.c  \
        gbufferedoutputstream.c \
        gcancellable.c          \
-       gcontenttype.c          \
-       gcontenttypeprivate.h   \
        gcharsetconverter.c     \
        gconverter.c            \
        gconverterinputstream.c \
        gconverteroutputstream.c        \
+       gcredentials.c          \
        gdatainputstream.c      \
        gdataoutputstream.c     \
        gdrive.c                \
        gdummyfile.h            \
        gdummyfile.c            \
+       gdummyproxyresolver.c   \
+       gdummyproxyresolver.h   \
+       gdummytlsbackend.c      \
+       gdummytlsbackend.h      \
        gemblem.h               \
        gemblem.c               \
        gemblemedicon.h         \
@@ -220,8 +359,6 @@ libgio_2_0_la_SOURCES =             \
        gfile.c                 \
        gfileattribute.c        \
        gfileattribute-priv.h   \
-       gfiledescriptorbased.h  \
-       gfiledescriptorbased.c  \
        gfileenumerator.c       \
        gfileicon.c             \
        gfileinfo.c             \
@@ -235,6 +372,7 @@ libgio_2_0_la_SOURCES =             \
        gfilteroutputstream.c   \
        gicon.c                 \
        ginetaddress.c          \
+       ginetaddressmask.c      \
        ginetsocketaddress.c    \
        ginitable.c             \
        ginputstream.c          \
@@ -252,14 +390,30 @@ libgio_2_0_la_SOURCES =           \
        gnativevolumemonitor.c  \
        gnativevolumemonitor.h  \
        gnetworkaddress.c       \
+       gnetworking.c           \
        gnetworkingprivate.h    \
+       gnetworkmonitor.c       \
+       gnetworkmonitorbase.c   \
+       gnetworkmonitorbase.h   \
        gnetworkservice.c       \
        goutputstream.c         \
+       gpermission.c           \
+       gpollableinputstream.c  \
+       gpollableoutputstream.c \
+       gpollableutils.c        \
        gpollfilemonitor.c      \
        gpollfilemonitor.h      \
+       gproxy.c                \
+       gproxyaddress.c         \
+       gproxyaddressenumerator.c \
+       gproxyresolver.c        \
        gresolver.c             \
+       gresource.c             \
+       gresourcefile.c         \
+       gresourcefile.h         \
        gseekable.c             \
        gsimpleasyncresult.c    \
+       gsimplepermission.c     \
        gsocket.c               \
        gsocketaddress.c        \
        gsocketaddressenumerator.c \
@@ -274,11 +428,23 @@ libgio_2_0_la_SOURCES =           \
        gsocketoutputstream.h   \
        gsocketservice.c        \
        gsrvtarget.c            \
+       gsimpleproxyresolver.c  \
+       gtask.c                 \
        gtcpconnection.c        \
+       gtcpwrapperconnection.c \
        gthreadedsocketservice.c\
        gthemedicon.c           \
        gthreadedresolver.c     \
        gthreadedresolver.h     \
+       gtlsbackend.c           \
+       gtlscertificate.c       \
+       gtlsclientconnection.c  \
+       gtlsconnection.c        \
+       gtlsdatabase.c          \
+       gtlsfiledatabase.c      \
+       gtlsinteraction.c       \
+       gtlspassword.c          \
+       gtlsserverconnection.c  \
        gunionvolumemonitor.c   \
        gunionvolumemonitor.h   \
        gvfs.c                  \
@@ -289,17 +455,16 @@ libgio_2_0_la_SOURCES =           \
        gmountprivate.h         \
        gioenumtypes.h          \
        gioenumtypes.c          \
-       gioalias.h              \
-       gioaliasdef.c           \
        $(appinfo_sources)      \
        $(unix_sources)         \
        $(win32_sources)        \
+       $(application_sources)  \
        $(settings_sources)     \
+       $(gdbus_sources)        \
        $(local_sources)        \
-       $(marshal_sources)      \
        $(NULL)
 
-$(libgio_2_0_la_OBJECTS): $(marshal_sources)
+EXTRA_DIST += strinfo.c
 
 libgio_2_0_la_LIBADD = \
        $(top_builddir)/glib/libglib-2.0.la             \
@@ -310,40 +475,36 @@ libgio_2_0_la_LIBADD = \
        $(SELINUX_LIBS)                                 \
        $(GLIB_LIBS)                                    \
        $(XATTR_LIBS)                                   \
+       $(NETWORK_LIBS)                                 \
        $(NULL)
 
+libgio_2_0_la_CPPFLAGS = $(ZLIB_CFLAGS) $(AM_CPPFLAGS)
+
 if PLATFORM_WIN32
 no_undefined = -no-undefined
 endif
 
 if OS_WIN32_AND_DLL_COMPILATION
-export_symbols = -export-symbols gio.def
-gio_def = gio.def
-
 gio_win32_res = gio-win32-res.o
 gio_win32_res_ldflag = -Wl,$(gio_win32_res)
-
-install-def-file:
-       $(INSTALL) gio.def $(DESTDIR)$(libdir)/gio-2.0.def
-
-uninstall-def-file:
-       -rm $(DESTDIR)$(libdir)/gio-2.0.def
-else
-install-def-file:
-uninstall-def-file:
-
-export_symbols = -export-symbols-regex '^g_.*'
 endif
 
-install-data-local: install-ms-lib install-def-file
+install-data-local: install-ms-lib
        $(mkinstalldirs) $(DESTDIR)$(GIO_MODULE_DIR)
 
-uninstall-local: uninstall-ms-lib uninstall-def-file
+uninstall-local: uninstall-ms-lib
 
-libgio_2_0_la_LDFLAGS = \
+libgio_2_0_la_CFLAGS = $(AM_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
+libgio_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
        $(gio_win32_res_ldflag) \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-       -export-dynamic $(no_undefined) $(export_symbols)
+       -export-dynamic $(no_undefined)
+
+if OS_COCOA
+# This is dumb.  The ObjC source file should be properly named .m
+libgio_2_0_la_CFLAGS += -xobjective-c
+libgio_2_0_la_LDFLAGS += -Wl,-framework,Foundation
+endif
 
 libgio_2_0_la_DEPENDENCIES = $(gio_win32_res) $(gio_def) $(platform_deps)
 
@@ -381,6 +542,7 @@ gio_headers =                       \
        gfilteroutputstream.h   \
        gicon.h                 \
        ginetaddress.h          \
+       ginetaddressmask.h      \
        ginetsocketaddress.h    \
        ginputstream.h          \
        ginitable.h             \
@@ -398,11 +560,23 @@ gio_headers =                     \
        gmountoperation.h       \
        gnativevolumemonitor.h  \
        gnetworkaddress.h       \
+       gnetworking.h           \
+       gnetworkmonitor.h       \
        gnetworkservice.h       \
        goutputstream.h         \
+       gpermission.h           \
+       gpollableinputstream.h  \
+       gpollableoutputstream.h \
+       gpollableutils.h        \
+       gproxyaddress.h         \
+       gproxy.h                \
+       gproxyaddressenumerator.h \
+       gproxyresolver.h        \
        gresolver.h             \
+       gresource.h             \
        gseekable.h             \
        gsimpleasyncresult.h    \
+       gsimplepermission.h     \
        gsocket.h               \
        gsocketaddress.h        \
        gsocketaddressenumerator.h \
@@ -413,15 +587,29 @@ gio_headers =                     \
        gsocketlistener.h       \
        gsocketservice.h        \
        gsrvtarget.h            \
+       gsimpleproxyresolver.h  \
+       gtask.h                 \
        gtcpconnection.h        \
+       gtcpwrapperconnection.h \
        gthreadedsocketservice.h\
        gthemedicon.h           \
+       gtlsbackend.h           \
+       gtlscertificate.h       \
+       gtlsclientconnection.h  \
+       gtlsconnection.h        \
+       gtlsdatabase.h          \
+       gtlsfiledatabase.h      \
+       gtlsinteraction.h       \
+       gtlspassword.h          \
+       gtlsserverconnection.h  \
        gvfs.h                  \
        gvolume.h               \
        gvolumemonitor.h        \
        gzlibcompressor.h       \
        gzlibdecompressor.h     \
-       $(settings_headers)     \
+       $(application_headers)  \
+       $(settings_headers)     \
+       $(gdbus_headers)        \
        $(NULL)
 
 gioincludedir=$(includedir)/glib-2.0/gio/
@@ -431,47 +619,65 @@ gioinclude_HEADERS =              \
 
 # these sources (also mentioned above) are generated.
 BUILT_SOURCES =                \
-       gio-marshal.h           \
-       gio-marshal.c           \
-       gioalias.h              \
-       gioaliasdef.c           \
+       gconstructor_as_data.h  \
        gioenumtypes.h          \
        gioenumtypes.c          \
+       gdbus-daemon-generated.c \
+       gdbus-daemon-generated.h \
+       gnetworking.h           \
        $(NULL)
 
 EXTRA_DIST +=                  \
-       gio-marshal.list        \
-       gio.symbols             \
+       data-to-c.pl            \
        gioenumtypes.h.template \
        gioenumtypes.c.template \
        makefile.msc            \
-       makegioalias.pl         \
-       abicheck.sh             \
-       pltcheck.sh             \
        gio.rc.in               \
+       gschema.dtd             \
+       gconstructor_as_data.h  \
+       gnetworking.h.win32     \
        $(NULL)
 
 BUILT_EXTRA_DIST =             \
        gio.rc
 
-CLEANFILES =                   \
-       $(marshal_sources)      \
-       $(NULL)
+# This is read by gobject-introspection/misc/ and gtk-doc
+gio-public-headers.txt: Makefile
+       $(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
+
+CLEANFILES = gdbus-daemon-generated.c gdbus-daemon-generated.h gio-public-headers.txt gconstructor_as_data.h
+
+
+DISTCLEANFILES =               \
+       gioenumtypes.h          \
+       gioenumtypes.c
+
+all-local: gio-public-headers.txt
 
 gioenumtypes.h: $(gio_headers) gioenumtypes.h.template
-       ( top_builddir=`cd $(top_builddir) && pwd`; \
-         cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.h.template $(gio_headers) ) > \
+       $(AM_V_GEN) $(top_builddir)/gobject/glib-mkenums --template $(filter %.template,$^) $(filter-out %.template,$^) > \
            gioenumtypes.h.tmp && mv gioenumtypes.h.tmp gioenumtypes.h
 
 gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
-       ( top_builddir=`cd $(top_builddir) && pwd`; \
-         cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > \
+       $(AM_V_GEN) $(top_builddir)/gobject/glib-mkenums --template $(filter %.template,$^) $(filter-out %.template,$^) > \
            gioenumtypes.c.tmp && mv gioenumtypes.c.tmp gioenumtypes.c
 
 gio-2.0.lib: libgio-2.0.la gio.def
-       lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@
+       lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
+
+bin_PROGRAMS = gio-querymodules glib-compile-schemas glib-compile-resources gsettings
+
+glib_compile_resources_LDADD = \
+       $(top_builddir)/glib/libglib-2.0.la \
+       $(top_builddir)/gobject/libgobject-2.0.la       \
+       libgio-2.0.la
+
+glib_compile_resources_SOURCES = \
+       gvdb/gvdb-format.h              \
+       gvdb/gvdb-builder.h             \
+       gvdb/gvdb-builder.c             \
+       glib-compile-resources.c
 
-bin_PROGRAMS = gio-querymodules
 gio_querymodules_SOURCES = gio-querymodules.c
 gio_querymodules_LDADD  = \
        $(top_builddir)/glib/libglib-2.0.la             \
@@ -480,20 +686,93 @@ gio_querymodules_LDADD     = \
        libgio-2.0.la                                   \
        $(NULL)
 
-dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/gio.vcproj
+gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c.pl
+       $(AM_V_GEN) $(srcdir)/data-to-c.pl $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@.tmp && mv $@.tmp $@
+
+glib_compile_schemas_LDADD = $(top_builddir)/glib/libglib-2.0.la
+glib_compile_schemas_SOURCES = \
+       gconstructor_as_data.h \
+       gvdb/gvdb-format.h              \
+       gvdb/gvdb-builder.h             \
+       gvdb/gvdb-builder.c             \
+       glib-compile-schemas.c
+
+gsettings_LDADD = \
+       $(top_builddir)/glib/libglib-2.0.la             \
+       $(top_builddir)/gobject/libgobject-2.0.la       \
+       libgio-2.0.la
+gsettings_SOURCES = gsettings-tool.c
+
+schemadir = $(datadir)/glib-2.0/schemas
+dist_schema_DATA = gschema.dtd
+
+# ------------------------------------------------------------------------
+# gdbus(1) tool
+
+bin_PROGRAMS += gdbus
+gdbus_SOURCES = gdbus-tool.c
+gdbus_LDADD = libgio-2.0.la \
+       $(top_builddir)/glib/libglib-2.0.la             \
+       $(top_builddir)/gobject/libgobject-2.0.la
+
+completiondir = $(datadir)/bash-completion/completions
+completion_DATA = \
+       completion/gdbus                                \
+       completion/gsettings                            \
+       completion/gresource
+EXTRA_DIST += $(completion_DATA)
+
+# ------------------------------------------------------------------------
+# gresource tool
+
+bin_PROGRAMS += gresource
+gresource_SOURCES = gresource-tool.c
+gresource_CPPFLAGS = $(LIBELF_CFLAGS) $(AM_CPPFLAGS)
+gresource_LDADD = libgio-2.0.la \
+       $(top_builddir)/glib/libglib-2.0.la             \
+       $(top_builddir)/gobject/libgobject-2.0.la \
+       $(LIBELF_LIBS)
+
+# ------------------------------------------------------------------------
+
+dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/gio.vcproj ../build/win32/vs10/gio.vcxproj ../build/win32/vs10/gio.vcxproj.filters
        files='$(BUILT_EXTRA_DIST)'; \
        for f in $$files; do \
          if test -f $$f; then d=.; else d=$(srcdir); fi; \
          cp $$d/$$f $(distdir) || exit 1; done
 
 ../build/win32/vs9/gio.vcproj: $(top_srcdir)/build/win32/vs9/gio.vcprojin
-       for F in $(libgio_2_0_la_SOURCES); do \
+       for F in `echo $(libgio_2_0_la_SOURCES) $(win32_actual_sources) $(win32_more_sources_for_vcproj) | tr '/' '\\'`; do \
                case $$F in \
+               gunix*.c|gdesktopappinfo.c|gnetworkmonitornetlink.c|gcontenttype.c) ;; \
                *.c) echo '   <File RelativePath="..\..\..\gio\'$$F'" />' \
                     ;; \
                esac; \
-       done >libgio.sourcefiles
+       done | sort -u >libgio.sourcefiles
        $(CPP) -P - <$(top_srcdir)/build/win32/vs9/gio.vcprojin >$@
+       rm libgio.sourcefiles
+
+../build/win32/vs10/gio.vcxproj: $(top_srcdir)/build/win32/vs10/gio.vcxprojin
+       for F in `echo $(libgio_2_0_la_SOURCES) $(win32_actual_sources) $(win32_more_sources_for_vcproj) | tr '/' '\\'`; do \
+               case $$F in \
+               gunix*.c|gdesktopappinfo.c|gnetworkmonitornetlink.c|gcontenttype.c) ;; \
+               *.c) echo '    <ClCompile Include="..\..\..\gio\'$$F'" />' \
+                    ;; \
+               esac; \
+       done | sort -u >libgio.vs10.sourcefiles
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gio.vcxprojin >$@
+       rm libgio.vs10.sourcefiles
+
+../build/win32/vs10/gio.vcxproj.filters: $(top_srcdir)/build/win32/vs10/gio.vcxproj.filtersin
+       for F in `echo $(libgio_2_0_la_SOURCES) $(win32_actual_sources) $(win32_more_sources_for_vcproj) | tr '/' '\\'`; do \
+               case $$F in \
+               gunix*.c|gdesktopappinfo.c|gnetworkmonitornetlink.c|gcontenttype.c) ;; \
+               *.c) echo '    <ClCompile Include="..\..\..\gio\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
+                    ;; \
+               esac; \
+       done | sort -u >libgio.vs10.sourcefiles.filters
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/gio.vcxproj.filtersin >$@
+       rm libgio.vs10.sourcefiles.filters
 
 if HAVE_GLIB_RUNTIME_LIBDIR
 install-data-hook: