diff --git a/docs/reference/gio/glib-compile-resources.xml b/docs/reference/gio/glib-compile-resources.xml
index f5a1e6257..85ce28436 100644
--- a/docs/reference/gio/glib-compile-resources.xml
+++ b/docs/reference/gio/glib-compile-resources.xml
@@ -178,6 +178,8 @@ If is -, the dependencies are written to the standard
output. Unlike , this option can be
combined with other options to generate dependencies
as a side-effect of generating sources.
+If is not an absolute path and
+is passed then it will be relative to the same directory as the target output.
diff --git a/gio/glib-compile-resources.c b/gio/glib-compile-resources.c
index 3d13b124e..ce02d1a4d 100644
--- a/gio/glib-compile-resources.c
+++ b/gio/glib-compile-resources.c
@@ -789,6 +789,17 @@ main (int argc, char **argv)
}
else
{
+ /* Output depfile next to generated file */
+ if (!g_path_is_absolute (dependency_file) && target != NULL)
+ {
+ char *targetdir = g_path_get_dirname (target);
+ char *tmp = dependency_file;
+
+ dependency_file = g_build_filename (targetdir, dependency_file, NULL);
+
+ g_free (tmp);
+ g_free (targetdir);
+ }
if (!g_file_set_contents (dependency_file, dep_string->str, dep_string->len, &error))
{
g_printerr ("Error writing dependency file: %s\n", error->message);