summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Shadura <andrew.shadura@collabora.co.uk>2016-09-20 10:58:49 +0200
committerAndrew Shadura <andrew.shadura@collabora.co.uk>2016-09-20 10:58:49 +0200
commitbca9ac980abb342f4575bc1780800ca00c169933 (patch)
treebb65448ef1438b0311fd2de71ab8b9906f969502
parent45aaf5ce2b9346cf69960a16b79a2ff9c437abfb (diff)
Imported Upstream version 4.0.0+20160526+c029206
-rw-r--r--ChangeLog137
-rw-r--r--Makefile.am9
-rw-r--r--Makefile.in18
-rw-r--r--aclocal.m4102
-rwxr-xr-xconfigure161
-rw-r--r--configure.ac19
-rw-r--r--doc/Makefile.in9
-rw-r--r--doc/mapping/Makefile.in9
-rw-r--r--doc/modules/Makefile.in9
-rw-r--r--doc/modules/canvas/Makefile.in9
-rw-r--r--doc/modules/gtkbuilder/Makefile.in9
-rw-r--r--doc/modules/multiprocessing/Makefile.in9
-rw-r--r--doc/modules/readline/Makefile.in9
-rw-r--r--doc/modules/sandbox/Makefile.in9
-rw-r--r--doc/modules/sqlite/Makefile.in9
-rw-r--r--doc/reference/Makefile.in9
-rw-r--r--doc/reference/html/index.html2
-rw-r--r--doc/reference/html/seed-Contexts.html8
-rw-r--r--doc/reference/html/seed-Evaluation.html6
-rw-r--r--doc/reference/html/seed-Initialization.html2
-rw-r--r--doc/reference/html/seed-JS-Objects.html10
-rw-r--r--doc/reference/html/seed-Modules.html6
-rw-r--r--doc/reference/html/seed-Native-Functions.html2
-rw-r--r--doc/reference/html/seed-Native-Type-Conversion.html62
-rw-r--r--doc/reference/version.xml2
-rw-r--r--doc/tutorial-standalone/Makefile.in9
-rw-r--r--extensions/Makefile.am4
-rw-r--r--extensions/Makefile.in264
-rw-r--r--extensions/Seed.js.in6
-rw-r--r--extensions/gjs/GLib.js285
-rw-r--r--extensions/gjs/GObject.js413
-rw-r--r--extensions/gjs/Gio.js394
-rw-r--r--extensions/gjs/Gtk.js113
-rw-r--r--extensions/gjs/Makefile.am4
-rw-r--r--extensions/gjs/Makefile.in604
-rw-r--r--libgjs-private/Makefile.am54
-rw-r--r--libgjs-private/Makefile.in855
-rw-r--r--libgjs-private/gjs-gdbus-wrapper.c336
-rw-r--r--libgjs-private/gjs-gdbus-wrapper.h74
-rw-r--r--libgjs-private/gjs-gtk-util.c63
-rw-r--r--libgjs-private/gjs-gtk-util.h37
-rw-r--r--libgjs-private/gjs-util.c110
-rw-r--r--libgjs-private/gjs-util.h58
-rw-r--r--libseed/Makefile.in9
-rw-r--r--libseed/seed-engine.c124
-rw-r--r--libseed/seed-importer.c42
-rw-r--r--libseed/seed-path.h2
-rw-r--r--libseed/seed-private.h4
-rw-r--r--modules/DynamicObject/Makefile.in9
-rw-r--r--modules/Makefile.am2
-rw-r--r--modules/Makefile.in16
-rw-r--r--modules/cairo/Makefile.in9
-rw-r--r--modules/canvas/Makefile.in9
-rw-r--r--modules/dbus/Makefile.in9
-rw-r--r--modules/dbus/util/Makefile.in9
-rw-r--r--modules/example/Makefile.in9
-rw-r--r--modules/ffi/Makefile.in9
-rw-r--r--modules/gettext/Makefile.in9
-rw-r--r--modules/gjs/Makefile.am6
-rw-r--r--modules/gjs/Makefile.in19
-rw-r--r--modules/gjs/_gi/Makefile.am22
-rw-r--r--modules/gjs/_gi/Makefile.in776
-rw-r--r--modules/gjs/_gi/seed-gi.c181
-rw-r--r--modules/gjs/system/Makefile.am6
-rw-r--r--modules/gjs/system/Makefile.in56
-rw-r--r--modules/gtkbuilder/Makefile.in9
-rw-r--r--modules/libxml/Makefile.in9
-rw-r--r--modules/mpfr/Makefile.in9
-rw-r--r--modules/multiprocessing/Makefile.in9
-rw-r--r--modules/os/Makefile.in9
-rw-r--r--modules/readline/Makefile.in9
-rw-r--r--modules/sandbox/Makefile.in9
-rw-r--r--modules/sqlite/Makefile.in9
-rw-r--r--modules/xorg/Makefile.in9
-rw-r--r--seed.pc4
-rw-r--r--src/Makefile.in9
-rw-r--r--tests/Makefile.in9
-rw-r--r--tests/c/Makefile.in9
-rw-r--r--tests/javascript/Makefile.in9
-rw-r--r--tests/javascript/gtypes/Makefile.in9
-rw-r--r--tests/javascript/signals/Makefile.in9
-rw-r--r--tests/javascript/structs/Makefile.in9
82 files changed, 5479 insertions, 325 deletions
diff --git a/ChangeLog b/ChangeLog
index f555bea..953b494 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,26 +1,131 @@
# Generated by Makefile. Do not edit.
-commit ea7138c769cc186baf2cd1d565b64069a7750633
-Author: Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
-Date: Fri Feb 26 13:44:27 2016 -0300
+commit 3aaf5cb4c22a92137c725cdd5d27e788961d6acc
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Thu May 26 15:55:05 2016 -0300
- Do not use the gjs extension for now since we do not have GjsPrivate
+ bumping seed version to major 4.0.0 release
- configure.ac | 1 -
- extensions/Makefile.am | 6 +++---
- 2 files changed, 3 insertions(+), 4 deletions(-)
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-commit 4e43b14398a522c9310ec12a60621f98b60b8790
-Author: Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
-Date: Fri Feb 26 13:43:20 2016 -0300
+commit c029206f7fbc4f3fe41a7095502461503e544713
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Thu May 26 15:54:45 2016 -0300
- Enable gjs compatibility by default
+ Making default webkit=4.0
- configure.ac | 12 ++----------
- libseed/seed-engine.c | 2 +-
- 2 files changed, 3 insertions(+), 11 deletions(-)
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 00d0e371eeaf4fbebfd1820d31c8b099fd0d3799
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Wed May 25 22:24:57 2016 -0300
+
+ Improving arguments prediction logic.
+
+ Old system works only when the length arguments appears before the
+ array.
+ This commit makes it work for both cases (after and before).
+
+ libseed/seed-engine.c | 100 ++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 73 insertions(+), 27 deletions(-)
+
+commit 2d441004af6d556d79713ecd1dea3ea2fc64ea91
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Wed May 4 14:20:34 2016 -0300
+
+ Removing g_autofree usage
+
+ g_autofree is not supported on all platforms
+
+ libseed/seed-engine.c | 4 ++--
+ libseed/seed-importer.c | 5 +++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+commit b5ba834f64838ad586447c114fe409ba2fcb1ef0
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Thu Mar 17 14:27:13 2016 -0300
+
+ Implementing a dymmy _gi module
+
+ Adding a module missing to deal with seed/gjs compatibility
+
+ configure.ac | 1 +
+ modules/gjs/Makefile.am | 2 +-
+ modules/gjs/_gi/Makefile.am | 22 ++++++
+ modules/gjs/_gi/seed-gi.c | 181 ++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 205 insertions(+), 1 deletion(-)
+
+commit e64dbd22f8db5bda917978755f5d7f5c62f406fc
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Mon Mar 14 11:38:18 2016 -0300
+
+ Making seed gjs-compatible by default
+
+ Makefile.am | 7 -------
+ configure.ac | 14 --------------
+ extensions/Makefile.am | 2 --
+ libseed/seed-engine.c | 18 +-----------------
+ libseed/seed-importer.c | 20 ++++++++------------
+ libseed/seed-private.h | 4 ----
+ modules/Makefile.am | 2 --
+ modules/gjs/Makefile.am | 4 ----
+ modules/gjs/system/Makefile.am | 6 ------
+ 9 files changed, 9 insertions(+), 68 deletions(-)
+
+commit 8cfcbe0caed11f780b50f2f99d835e3b270b92c4
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Tue Mar 8 15:49:36 2016 -0300
+
+ Calling _init on external GI modules
+
+ extensions/gjs/GObject.js | 43 ++++++++++++++++++++++++-------------------
+ libseed/seed-importer.c | 21 +++++++++++++++++----
+ 2 files changed, 41 insertions(+), 23 deletions(-)
+
+commit 2f018889098bfc545199ecd4fcfd73ecc6bbfe1d
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Tue Mar 8 15:49:01 2016 -0300
+
+ Fixing a build issue with webkit3 and webkit4
+
+ This avoids the issue when the build tries to import GTK2 and GTK3
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b8bd0859870d00a29ea33775e5cf7f73f1f4b8e8
+Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+Date: Thu Mar 3 15:34:05 2016 -0300
+
+ Adding GjsPrivate module to Seed
+
+ This GjsPrivate module will be accessed via GI for modules
+ inside the gjs extension in Seed.
+
+ Makefile.am | 2 +
+ configure.ac | 3 +
+ extensions/Seed.js.in | 6 +
+ libgjs-private/Makefile.am | 54 ++++++
+ libgjs-private/gjs-gdbus-wrapper.c | 336 +++++++++++++++++++++++++++++++++++++
+ libgjs-private/gjs-gdbus-wrapper.h | 74 ++++++++
+ libgjs-private/gjs-gtk-util.c | 63 +++++++
+ libgjs-private/gjs-gtk-util.h | 37 ++++
+ libgjs-private/gjs-util.c | 110 ++++++++++++
+ libgjs-private/gjs-util.h | 58 +++++++
+ 10 files changed, 743 insertions(+)
+
+commit 91ce78cd26d026724d20ecbbd55d6bab25d96abb
+Author: Alan Knowles <alan@roojs.com>
+Date: Wed Mar 9 17:13:58 2016 +0800
+
+ remove g_autofree - its not well supported - needs to handle older complier/libs
+
+ libseed/seed-engine.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-commit 1ccb00418440497ee675b8485cf1dd08126f2ab7
+commit e1606109d724216552a69864c84612ddd2d5e666
Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
Date: Thu Feb 25 20:37:50 2016 -0300
@@ -40,7 +145,7 @@ Date: Thu Feb 25 20:37:50 2016 -0300
libseed/seed-engine.c | 43 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 5 deletions(-)
-commit c33353da27920757c128e2e37f8847cc7bde6d78
+commit 2cf5841a6eba1c8d7240a9482ed6944105d75e60
Author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
Date: Wed Feb 3 16:31:29 2016 -0200
diff --git a/Makefile.am b/Makefile.am
index c7be24b..5a68b12 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,9 +1,11 @@
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
SUBDIRS = po \
libseed \
+ libgjs-private \
src \
extensions \
modules \
@@ -56,22 +58,15 @@ if PROFILE_MODULES
cd modules/sqlite/.libs ; gcov *.c
endif
-#gjs compat
if PROFILE_MODULES
-if SEED_ENABLE_GJSCOMPAT
cp modules/gjs/system/*.c modules/system/.libs/
endif
-endif
profile-gui: profile
if PROFILE_MODULES
-if SEED_ENABLE_GJSCOMPAT
lcov --directory libseed/.libs --directory modules/cairo/.libs --directory modules/canvas/.libs --directory modules/dbus/.libs --directory modules/example/.libs --directory modules/system/.libs --directory modules/gettext/.libs --directory modules/gtkbuilder/.libs --directory modules/libxml/.libs --directory modules/os/.libs --directory modules/readline/.libs --directory modules/sandbox/.libs --directory modules/sqlite/.libs --capture --output-file seed.info
else
- lcov --directory libseed/.libs --directory modules/cairo/.libs --directory modules/canvas/.libs --directory modules/dbus/.libs --directory modules/example/.libs --directory modules/gettext/.libs --directory modules/gtkbuilder/.libs --directory modules/libxml/.libs --directory modules/os/.libs --directory modules/readline/.libs --directory modules/sandbox/.libs --directory modules/sqlite/.libs --capture --output-file seed.info
-endif
-else
lcov --directory libseed/.libs --capture --output-file seed.info
endif
diff --git a/Makefile.in b/Makefile.in
index 13776da..1120098 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -342,6 +342,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -389,7 +397,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
@@ -461,8 +468,10 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
SUBDIRS = po \
libseed \
+ libgjs-private \
src \
extensions \
modules \
@@ -480,7 +489,6 @@ pkgconfig_DATA = seed.pc
pkgconfigdir = $(libdir)/pkgconfig
man_MANS = doc/seed.1
EXTRA_DIST = $(pkgconfig_DATA)
-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -1087,13 +1095,11 @@ profile: profile-reset check
@PROFILE_MODULES_TRUE@ cd modules/sandbox/.libs ; gcov *.c
@PROFILE_MODULES_TRUE@ cd modules/sqlite/.libs ; gcov *.c
-#gjs compat
-@PROFILE_MODULES_TRUE@@SEED_ENABLE_GJSCOMPAT_TRUE@ cp modules/gjs/system/*.c modules/system/.libs/
+@PROFILE_MODULES_TRUE@ cp modules/gjs/system/*.c modules/system/.libs/
profile-gui: profile
-@PROFILE_MODULES_TRUE@@SEED_ENABLE_GJSCOMPAT_TRUE@ lcov --directory libseed/.libs --directory modules/cairo/.libs --directory modules/canvas/.libs --directory modules/dbus/.libs --directory modules/example/.libs --directory modules/system/.libs --directory modules/gettext/.libs --directory modules/gtkbuilder/.libs --directory modules/libxml/.libs --directory modules/os/.libs --directory modules/readline/.libs --directory modules/sandbox/.libs --directory modules/sqlite/.libs --capture --output-file seed.info
-@PROFILE_MODULES_TRUE@@SEED_ENABLE_GJSCOMPAT_FALSE@ lcov --directory libseed/.libs --directory modules/cairo/.libs --directory modules/canvas/.libs --directory modules/dbus/.libs --directory modules/example/.libs --directory modules/gettext/.libs --directory modules/gtkbuilder/.libs --directory modules/libxml/.libs --directory modules/os/.libs --directory modules/readline/.libs --directory modules/sandbox/.libs --directory modules/sqlite/.libs --capture --output-file seed.info
+@PROFILE_MODULES_TRUE@ lcov --directory libseed/.libs --directory modules/cairo/.libs --directory modules/canvas/.libs --directory modules/dbus/.libs --directory modules/example/.libs --directory modules/system/.libs --directory modules/gettext/.libs --directory modules/gtkbuilder/.libs --directory modules/libxml/.libs --directory modules/os/.libs --directory modules/readline/.libs --directory modules/sandbox/.libs --directory modules/sqlite/.libs --capture --output-file seed.info
@PROFILE_MODULES_FALSE@ lcov --directory libseed/.libs --capture --output-file seed.info
cp seed.info /tmp/
diff --git a/aclocal.m4 b/aclocal.m4
index 9b5131d..9d6d74a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -335,7 +335,7 @@ msgstr ""
# on various variables needed by the Makefile.in.in installed by
# glib-gettextize.
dnl
-AU_DEFUN([GLIB_GNU_GETTEXT],
+glib_DEFUN([GLIB_GNU_GETTEXT],
[AC_REQUIRE([AC_PROG_CC])dnl
GLIB_LC_MESSAGES
@@ -405,8 +405,7 @@ AU_DEFUN([GLIB_GNU_GETTEXT],
rm -f po/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po/POTFILES.in > po/POTFILES
- ],
- [[$0: This macro is deprecated. You should use upstream gettext instead.]])
+ ])
# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
# -------------------------------
@@ -457,6 +456,103 @@ sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
fi])
+dnl -*- mode: autoconf -*-
+dnl Copyright 2009 Johan Dahlin
+dnl
+dnl This file is free software; the author(s) gives unlimited
+dnl permission to copy and/or distribute it, with or without
+dnl modifications, as long as this notice is preserved.
+dnl
+
+# serial 1
+
+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+[
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+
+ dnl enable/disable introspection
+ m4_if([$2], [require],
+ [dnl
+ enable_introspection=yes
+ ],[dnl
+ AC_ARG_ENABLE(introspection,
+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+ [Enable introspection for this build]),,
+ [enable_introspection=auto])
+ ])dnl
+
+ AC_MSG_CHECKING([for gobject-introspection])
+
+ dnl presence/version checking
+ AS_CASE([$enable_introspection],
+ [no], [dnl
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ],dnl
+ [yes],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+ found_introspection=yes,
+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+ ],dnl
+ [auto],[dnl
+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+ dnl Canonicalize enable_introspection
+ enable_introspection=$found_introspection
+ ],dnl
+ [dnl
+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+ ])dnl
+
+ AC_MSG_RESULT([$found_introspection])
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+ AC_SUBST(INTROSPECTION_SCANNER)
+ AC_SUBST(INTROSPECTION_COMPILER)
+ AC_SUBST(INTROSPECTION_GENERATE)
+ AC_SUBST(INTROSPECTION_GIRDIR)
+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
+ AC_SUBST(INTROSPECTION_CFLAGS)
+ AC_SUBST(INTROSPECTION_LIBS)
+ AC_SUBST(INTROSPECTION_MAKEFILE)
+
+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+])
+
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+
+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+])
+
+dnl Usage:
+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+
+
+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+[
+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+])
+
# nls.m4 serial 5 (gettext-0.18)
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
dnl Inc.
diff --git a/configure b/configure
index 2f7e4ae..ec4ea2f 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for seed 3.8.2.
+# Generated by GNU Autoconf 2.69 for seed 4.0.0.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='seed'
PACKAGE_TARNAME='seed'
-PACKAGE_VERSION='3.8.2'
-PACKAGE_STRING='seed 3.8.2'
+PACKAGE_VERSION='4.0.0'
+PACKAGE_STRING='seed 4.0.0'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -651,9 +651,6 @@ GTKDOC_MKPDF
GTKDOC_REBASE
GTKDOC_CHECK_PATH
GTKDOC_CHECK
-SEED_ENABLE_GJSCOMPAT_FALSE
-SEED_ENABLE_GJSCOMPAT_TRUE
-SEED_GJSCOMPAT_CFLAGS
SEED_DEBUG_CFLAGS
PROFILE_MODULES_FALSE
PROFILE_MODULES_TRUE
@@ -741,6 +738,16 @@ GOBJECT_INTROSPECTION_VERSION
GOBJECT_INTROSPECTION_LDFLAGS
GOBJECT_INTROSPECTION_LIBS
GOBJECT_INTROSPECTION_CFLAGS
+HAVE_INTROSPECTION_FALSE
+HAVE_INTROSPECTION_TRUE
+INTROSPECTION_MAKEFILE
+INTROSPECTION_LIBS
+INTROSPECTION_CFLAGS
+INTROSPECTION_TYPELIBDIR
+INTROSPECTION_GIRDIR
+INTROSPECTION_GENERATE
+INTROSPECTION_COMPILER
+INTROSPECTION_SCANNER
SEED_GTK_VERSION
WEBKIT_LDFLAGS
WEBKIT_PC
@@ -932,6 +939,7 @@ with_sysroot
enable_libtool_lock
enable_nls
with_webkit
+enable_introspection
enable_canvas_module
enable_readline_module
enable_multiprocessing_module
@@ -1540,7 +1548,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures seed 3.8.2 to adapt to many kinds of systems.
+\`configure' configures seed 4.0.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1610,7 +1618,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of seed 3.8.2:";;
+ short | recursive ) echo "Configuration of seed 4.0.0:";;
esac
cat <<\_ACEOF
@@ -1633,6 +1641,8 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-nls do not use Native Language Support
+ --enable-introspection=[no/auto/yes]
+ Enable introspection for this build
--enable-canvas-module enable the canvas Seed module. [default=yes]
--enable-readline-module
enable the readline Seed module. [default=yes]
@@ -1673,7 +1683,7 @@ Optional Packages:
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
--with-webkit=[4.0/3.0/1.0]
- Select the Webkit backend, default=3.0
+ Select the Webkit backend, default=4.0
--with-html-dir=PATH path to installed docs
Some influential environment variables:
@@ -1809,7 +1819,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-seed configure 3.8.2
+seed configure 4.0.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2174,7 +2184,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by seed $as_me 3.8.2, which was
+It was created by seed $as_me 4.0.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3038,7 +3048,7 @@ fi
# Define the identity of the package.
PACKAGE='seed'
- VERSION='3.8.2'
+ VERSION='4.0.0'
cat >>confdefs.h <<_ACEOF
@@ -13882,7 +13892,7 @@ fi
if test "${with_webkit+set}" = set; then :
withval=$with_webkit;
else
- with_webkit=3.0
+ with_webkit=4.0
fi
@@ -14298,6 +14308,100 @@ fi
+
+ # Check whether --enable-introspection was given.
+if test "${enable_introspection+set}" = set; then :
+ enableval=$enable_introspection;
+else
+ enable_introspection=auto
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
+$as_echo_n "checking for gobject-introspection... " >&6; }
+
+ case $enable_introspection in #(
+ no) :
+ found_introspection="no (disabled, use --enable-introspection to enable)"
+ ;; #(
+ yes) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ :
+else
+ as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
+fi
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.41.4\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.41.4") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ found_introspection=yes
+else
+ as_fn_error $? "You need to have gobject-introspection >= 1.41.4 installed to build seed" "$LINENO" 5
+fi
+ ;; #(
+ auto) :
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.41.4\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.41.4") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ found_introspection=yes
+else
+ found_introspection=no
+fi
+ enable_introspection=$found_introspection
+ ;; #(
+ *) :
+ as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
+$as_echo "$found_introspection" >&6; }
+
+ INTROSPECTION_SCANNER=
+ INTROSPECTION_COMPILER=
+ INTROSPECTION_GENERATE=
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+
+
+
+
+
+
+
+
+
+ if test "x$found_introspection" = "xyes"; then
+ HAVE_INTROSPECTION_TRUE=
+ HAVE_INTROSPECTION_FALSE='#'
+else
+ HAVE_INTROSPECTION_TRUE='#'
+ HAVE_INTROSPECTION_FALSE=
+fi
+
+
+
+
+
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOBJECT_INTROSPECTION" >&5
$as_echo_n "checking for GOBJECT_INTROSPECTION... " >&6; }
@@ -15860,7 +15964,7 @@ fi
if test x"$want_gtkbuilder_module" = x"yes" ; then
- if test x"$with_webkit" = x"3.0" ; then
+ if test x"$with_webkit" = x"3.0" || test x"$with_webkit" = x"4.0" ; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
@@ -16375,17 +16479,6 @@ fi
done
-SEED_GJSCOMPAT_CFLAGS="-DSEED_ENABLE_GJSCOMPAT"
-
- if true; then
- SEED_ENABLE_GJSCOMPAT_TRUE=
- SEED_ENABLE_GJSCOMPAT_FALSE='#'
-else
- SEED_ENABLE_GJSCOMPAT_TRUE='#'
- SEED_ENABLE_GJSCOMPAT_FALSE=
-fi
-
-
@@ -16757,7 +16850,7 @@ fi
-ac_config_files="$ac_config_files seed.pc Makefile doc/index.html doc/conventions.html doc/runtime.html doc/tutorial-standalone/tutorial.html doc/modules/canvas/canvas.html doc/modules/multiprocessing/multiprocessing.html doc/modules/canvas/Makefile doc/modules/multiprocessing/Makefile doc/modules/readline/Makefile doc/modules/gtkbuilder/Makefile doc/modules/sqlite/Makefile doc/modules/sandbox/Makefile doc/mapping/mapping.html libseed/Makefile po/Makefile.in src/Makefile extensions/Makefile tests/Makefile tests/javascript/Makefile tests/javascript/gtypes/Makefile tests/javascript/signals/Makefile tests/javascript/structs/Makefile tests/c/Makefile doc/Makefile doc/modules/Makefile doc/modules/version.xml doc/tutorial-standalone/Makefile doc/reference/Makefile doc/reference/version.xml doc/mapping/Makefile modules/Makefile modules/example/Makefile modules/sqlite/Makefile modules/xorg/Makefile modules/canvas/Makefile modules/readline/Makefile modules/multiprocessing/Makefile modules/sandbox/Makefile modules/os/Makefile modules/dbus/Makefile modules/dbus/util/Makefile modules/libxml/Makefile modules/cairo/Makefile modules/gtkbuilder/Makefile modules/gettext/Makefile modules/mpfr/Makefile modules/ffi/Makefile modules/DynamicObject/Makefile modules/gjs/system/Makefile modules/gjs/Makefile libseed/seed-path.h"
+ac_config_files="$ac_config_files seed.pc Makefile doc/index.html doc/conventions.html doc/runtime.html doc/tutorial-standalone/tutorial.html doc/modules/canvas/canvas.html doc/modules/multiprocessing/multiprocessing.html doc/modules/canvas/Makefile doc/modules/multiprocessing/Makefile doc/modules/readline/Makefile doc/modules/gtkbuilder/Makefile doc/modules/sqlite/Makefile doc/modules/sandbox/Makefile doc/mapping/mapping.html libseed/Makefile libgjs-private/Makefile po/Makefile.in src/Makefile extensions/Makefile tests/Makefile tests/javascript/Makefile tests/javascript/gtypes/Makefile tests/javascript/signals/Makefile tests/javascript/structs/Makefile tests/c/Makefile doc/Makefile doc/modules/Makefile doc/modules/version.xml doc/tutorial-standalone/Makefile doc/reference/Makefile doc/reference/version.xml doc/mapping/Makefile modules/Makefile modules/example/Makefile modules/sqlite/Makefile modules/xorg/Makefile modules/canvas/Makefile modules/readline/Makefile modules/multiprocessing/Makefile modules/sandbox/Makefile modules/os/Makefile modules/dbus/Makefile modules/dbus/util/Makefile modules/libxml/Makefile modules/cairo/Makefile modules/gtkbuilder/Makefile modules/gettext/Makefile modules/mpfr/Makefile modules/ffi/Makefile modules/DynamicObject/Makefile modules/gjs/system/Makefile modules/gjs/_gi/Makefile extensions/gjs/Makefile modules/gjs/Makefile libseed/seed-path.h"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -16900,6 +16993,10 @@ fi
ac_config_commands="$ac_config_commands po/stamp-it"
+if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${BUILD_CANVAS_MODULE_TRUE}" && test -z "${BUILD_CANVAS_MODULE_FALSE}"; then
as_fn_error $? "conditional \"BUILD_CANVAS_MODULE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16968,10 +17065,6 @@ if test -z "${PROFILE_MODULES_TRUE}" && test -z "${PROFILE_MODULES_FALSE}"; then
as_fn_error $? "conditional \"PROFILE_MODULES\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${SEED_ENABLE_GJSCOMPAT_TRUE}" && test -z "${SEED_ENABLE_GJSCOMPAT_FALSE}"; then
- as_fn_error $? "conditional \"SEED_ENABLE_GJSCOMPAT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -17393,7 +17486,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by seed $as_me 3.8.2, which was
+This file was extended by seed $as_me 4.0.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17459,7 +17552,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-seed config.status 3.8.2
+seed config.status 4.0.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -17892,6 +17985,7 @@ do
"doc/modules/sandbox/Makefile") CONFIG_FILES="$CONFIG_FILES doc/modules/sandbox/Makefile" ;;
"doc/mapping/mapping.html") CONFIG_FILES="$CONFIG_FILES doc/mapping/mapping.html" ;;
"libseed/Makefile") CONFIG_FILES="$CONFIG_FILES libseed/Makefile" ;;
+ "libgjs-private/Makefile") CONFIG_FILES="$CONFIG_FILES libgjs-private/Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"extensions/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/Makefile" ;;
@@ -17927,6 +18021,8 @@ do
"modules/ffi/Makefile") CONFIG_FILES="$CONFIG_FILES modules/ffi/Makefile" ;;
"modules/DynamicObject/Makefile") CONFIG_FILES="$CONFIG_FILES modules/DynamicObject/Makefile" ;;
"modules/gjs/system/Makefile") CONFIG_FILES="$CONFIG_FILES modules/gjs/system/Makefile" ;;
+ "modules/gjs/_gi/Makefile") CONFIG_FILES="$CONFIG_FILES modules/gjs/_gi/Makefile" ;;
+ "extensions/gjs/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/gjs/Makefile" ;;
"modules/gjs/Makefile") CONFIG_FILES="$CONFIG_FILES modules/gjs/Makefile" ;;
"libseed/seed-path.h") CONFIG_FILES="$CONFIG_FILES libseed/seed-path.h" ;;
"po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
@@ -19229,7 +19325,6 @@ Build Configuration:
Profiling/Coverage.........$enable_profile
Profiling for Modules......$enable_profile_modules
gtk-doc....................$enable_gtk_doc
- Gjs compatiblity...........$enable_gjscompat
Installation:
Prefix.....................$prefix
diff --git a/configure.ac b/configure.ac
index 7dc80ab..6dfbde7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ(2.59)
-AC_INIT(seed, 3.8.2)
+AC_INIT(seed, 4.0.0)
AM_INIT_AUTOMAKE([1.7 -Wno-portability])
AM_MAINTAINER_MODE([enable])
@@ -74,11 +74,11 @@ AC_SUBST(FFI_LDFLAGS)
AC_SUBST(FFI_CFLAGS)
dnl ==============================WebKit=======================================
-m4_define([webkit_default], [3.0])
+m4_define([webkit_default], [4.0])
AC_ARG_WITH([webkit],
[AC_HELP_STRING([--with-webkit=@<:@4.0/3.0/1.0@:>@],
- [Select the Webkit backend, default=3.0])],
+ [Select the Webkit backend, default=4.0])],
[],
[with_webkit=webkit_default])
@@ -112,6 +112,7 @@ AC_SUBST(WEBKIT_LDFLAGS)
AC_SUBST(SEED_GTK_VERSION)
dnl =========================Introspection=====================================
+GOBJECT_INTROSPECTION_CHECK([1.41.4])
PKG_CHECK_MODULES(GOBJECT_INTROSPECTION, gobject-introspection-1.0 >= 0.6.3)
AC_SUBST(GOBJECT_INTROSPECTION_CFLAGS)
@@ -326,7 +327,7 @@ AC_ARG_ENABLE(gtkbuilder-module,
[want_gtkbuilder_module=$enableval],[want_gtkbuilder_module="yes"])
if test x"$want_gtkbuilder_module" = x"yes" ; then
- if test x"$with_webkit" = x"3.0" ; then
+ if test x"$with_webkit" = x"3.0" || test x"$with_webkit" = x"4.0" ; then
PKG_CHECK_MODULES(GTK, gtk+-3.0)
else
PKG_CHECK_MODULES(GTK, gtk+-2.0)
@@ -446,11 +447,6 @@ AC_SUBST(SEED_DEBUG_CFLAGS)
AC_CHECK_HEADERS(pty.h)
-dnl =============================Gjs-Compatibility=============================
-SEED_GJSCOMPAT_CFLAGS="-DSEED_ENABLE_GJSCOMPAT"
-AC_SUBST(SEED_GJSCOMPAT_CFLAGS)
-AM_CONDITIONAL(SEED_ENABLE_GJSCOMPAT, true)
-
dnl =============================gtk-doc=======================================
GTK_DOC_CHECK(1.9)
@@ -477,6 +473,8 @@ doc/modules/sandbox/Makefile
doc/mapping/mapping.html
libseed/Makefile
+libgjs-private/Makefile
+
po/Makefile.in
src/Makefile
extensions/Makefile
@@ -513,6 +511,8 @@ modules/ffi/Makefile
modules/DynamicObject/Makefile
modules/gjs/system/Makefile
+modules/gjs/_gi/Makefile
+extensions/gjs/Makefile
modules/gjs/Makefile
libseed/seed-path.h
@@ -525,7 +525,6 @@ Build Configuration:
Profiling/Coverage.........$enable_profile
Profiling for Modules......$enable_profile_modules
gtk-doc....................$enable_gtk_doc
- Gjs compatiblity...........$enable_gjscompat
Installation:
Prefix.....................$prefix
diff --git a/doc/Makefile.in b/doc/Makefile.in
index e703df6..2cb0880 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -315,6 +315,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -362,7 +370,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/mapping/Makefile.in b/doc/mapping/Makefile.in
index b9a78f9..f5828ad 100644
--- a/doc/mapping/Makefile.in
+++ b/doc/mapping/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/Makefile.in b/doc/modules/Makefile.in
index a2ece80..a2e3555 100644
--- a/doc/modules/Makefile.in
+++ b/doc/modules/Makefile.in
@@ -314,6 +314,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -361,7 +369,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/canvas/Makefile.in b/doc/modules/canvas/Makefile.in
index ddf5989..849a216 100644
--- a/doc/modules/canvas/Makefile.in
+++ b/doc/modules/canvas/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/gtkbuilder/Makefile.in b/doc/modules/gtkbuilder/Makefile.in
index 274456a..0c7b2bb 100644
--- a/doc/modules/gtkbuilder/Makefile.in
+++ b/doc/modules/gtkbuilder/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/multiprocessing/Makefile.in b/doc/modules/multiprocessing/Makefile.in
index aaf0fca..60b9931 100644
--- a/doc/modules/multiprocessing/Makefile.in
+++ b/doc/modules/multiprocessing/Makefile.in
@@ -255,6 +255,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -302,7 +310,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/readline/Makefile.in b/doc/modules/readline/Makefile.in
index a7721a0..99c4020 100644
--- a/doc/modules/readline/Makefile.in
+++ b/doc/modules/readline/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/sandbox/Makefile.in b/doc/modules/sandbox/Makefile.in
index f3471f1..5e8ae7d 100644
--- a/doc/modules/sandbox/Makefile.in
+++ b/doc/modules/sandbox/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/modules/sqlite/Makefile.in b/doc/modules/sqlite/Makefile.in
index e21695d..7f87b40 100644
--- a/doc/modules/sqlite/Makefile.in
+++ b/doc/modules/sqlite/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/reference/Makefile.in b/doc/reference/Makefile.in
index f95b65a..fcde45c 100644
--- a/doc/reference/Makefile.in
+++ b/doc/reference/Makefile.in
@@ -231,6 +231,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -278,7 +286,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/doc/reference/html/index.html b/doc/reference/html/index.html
index fba8a75..628e14f 100644
--- a/doc/reference/html/index.html
+++ b/doc/reference/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Seed Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- Documentation for Seed 3.8.2
+ Documentation for Seed 4.0.0
.
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://library.gnome.org/devel/seed/unstable/" target="_top">http://library.gnome.org/devel/seed/unstable/</a>.
diff --git a/doc/reference/html/seed-Contexts.html b/doc/reference/html/seed-Contexts.html
index 22ab830..260cf3e 100644
--- a/doc/reference/html/seed-Contexts.html
+++ b/doc/reference/html/seed-Contexts.html
@@ -151,8 +151,8 @@ A <a class="link" href="seed-Contexts.html#SeedContext" title="SeedContext"><spa
4
5</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="symbol">...</span>
-<span class="normal">ctx </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Contexts.html#seed-context-create">seed_context_create</a></span><span class="symbol">(</span><span class="normal"><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="normal">script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print(imports)"</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
+<span class="normal">ctx </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Contexts.html#seed-context-create">seed_context_create</a></span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
+<span class="normal">script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print(imports)"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="comment">// nothing is printed, because imports is undefined, because we're in a sandbox</span>
<span class="symbol">...</span></pre></td>
</tr>
@@ -185,13 +185,13 @@ which has no global objects; you can add the default set using
<tbody>
<tr>
<td class="parameter_name"><p>group</p></td>
-<td class="parameter_description"><p>A <a class="link" href="seed-Contexts.html#SeedContextGroup" title="SeedContextGroup"><span class="type">SeedContextGroup</span></a> in which to create the new context, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to
+<td class="parameter_description"><p>A <a class="link" href="seed-Contexts.html#SeedContextGroup" title="SeedContextGroup"><span class="type">SeedContextGroup</span></a> in which to create the new context, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to
create it in the default context group.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>global_class</p></td>
-<td class="parameter_description"><p>The <a class="link" href="seed-JavaScript-Classes.html#SeedClass" title="SeedClass"><span class="type">SeedClass</span></a> to use to create the global object, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to
+<td class="parameter_description"><p>The <a class="link" href="seed-JavaScript-Classes.html#SeedClass" title="SeedClass"><span class="type">SeedClass</span></a> to use to create the global object, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to
create it with the default class.</p></td>
<td class="parameter_annotations"> </td>
</tr>
diff --git a/doc/reference/html/seed-Evaluation.html b/doc/reference/html/seed-Evaluation.html
index 9e2c4af..ca5f221 100644
--- a/doc/reference/html/seed-Evaluation.html
+++ b/doc/reference/html/seed-Evaluation.html
@@ -137,7 +137,7 @@ Seed relies on WebKit's JavaScriptCore interpreter to actually evaluate snippets
<span class="normal"> </span>
<span class="normal"><a href="seed-Evaluation.html#SeedScript">SeedScript</a> </span><span class="symbol">*</span><span class="normal"> script</span><span class="symbol">;</span>
<span class="comment">/* Create a simple &lt;a class="link" href="seed-Evaluation.html#SeedScript" title="SeedScript"&gt;SeedScript&lt;/a&gt; */</span>
-<span class="normal">script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
+<span class="normal">script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="comment">/* Evaluate the &lt;a class="link" href="seed-Evaluation.html#SeedScript" title="SeedScript"&gt;SeedScript&lt;/a&gt; in the default context */</span>
<span class="function"><a href="seed-Evaluation.html#seed-evaluate">seed_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> script</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
@@ -168,7 +168,7 @@ Seed relies on WebKit's JavaScriptCore interpreter to actually evaluate snippets
<span class="symbol">...</span>
<span class="normal"> </span>
<span class="comment">/* Evaluate a simple JavaScript snippet in the default context */</span>
-<span class="function"><a href="seed-Evaluation.html#seed-simple-evaluate">seed_simple_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
+<span class="function"><a href="seed-Evaluation.html#seed-simple-evaluate">seed_simple_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="symbol">...</span></pre></td>
</tr>
@@ -215,7 +215,7 @@ checks for proper syntax.</p>
</tr>
<tr>
<td class="parameter_name"><p>source_url</p></td>
-<td class="parameter_description"><p>The filename of the script, for reference in errors, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_description"><p>The filename of the script, for reference in errors, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
diff --git a/doc/reference/html/seed-Initialization.html b/doc/reference/html/seed-Initialization.html
index fd30e6a..41f2aa3 100644
--- a/doc/reference/html/seed-Initialization.html
+++ b/doc/reference/html/seed-Initialization.html
@@ -129,7 +129,7 @@ Before any other Seed functions can be used, you must initialize the engine, whi
<span class="normal"> eng </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Initialization.html#seed-init">seed_init</a></span><span class="symbol">(&amp;</span><span class="normal">argc</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">argv</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="comment">/* Create a simple &lt;a class="link" href="seed-Evaluation.html#SeedScript" title="SeedScript"&gt;SeedScript&lt;/a&gt; */</span>
-<span class="normal"> script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
+<span class="normal"> script </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-make-script">seed_make_script</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"print('Hello, world!')"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="comment">/* Evaluate the &lt;a class="link" href="seed-Evaluation.html#SeedScript" title="SeedScript"&gt;SeedScript&lt;/a&gt; in the default context */</span>
<span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-evaluate">seed_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> script</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
diff --git a/doc/reference/html/seed-JS-Objects.html b/doc/reference/html/seed-JS-Objects.html
index 0361ae3..57ae324 100644
--- a/doc/reference/html/seed-JS-Objects.html
+++ b/doc/reference/html/seed-JS-Objects.html
@@ -317,7 +317,7 @@ SeedValues.</p>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A <a class="link" href="seed-Exceptions.html#SeedException" title="SeedException"><span class="type">SeedException</span></a> in which to store an exception.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -376,7 +376,7 @@ function's arguments.</p></td>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -385,7 +385,7 @@ Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.htm
<div class="refsect3">
<a name="id-1.4.8.4.7.4.6"></a><h4>Returns</h4>
<p> The <em class="parameter"><code>SeedValue</code></em>
-returned by the called function, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an
+returned by the called function, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if an
exception occurs or the object is not a function.</p>
</div>
</div>
@@ -434,7 +434,7 @@ seed_object_set_property_at_index (<em class="parameter"><code><a class="link" h
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -671,7 +671,7 @@ seed_object_copy_property_names (<em class="parameter"><code><a class="link" hre
</div>
<div class="refsect3">
<a name="id-1.4.8.4.7.13.5"></a><h4>Returns</h4>
-<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array containing the property names of
+<p> A <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array containing the property names of
<em class="parameter"><code>object</code></em>
</p>
</div>
diff --git a/doc/reference/html/seed-Modules.html b/doc/reference/html/seed-Modules.html
index 3bf6d38..685519a 100644
--- a/doc/reference/html/seed-Modules.html
+++ b/doc/reference/html/seed-Modules.html
@@ -103,7 +103,7 @@ Seed includes a simple system for creating C modules which can be loaded and man
<span class="normal"> </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="symbol">(</span><span class="string">"Hello, Seed Module World!</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="comment">/* Return an empty object as the module's namespace */</span>
-<span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="seed-JS-Objects.html#seed-make-object">seed_make_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
+<span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="seed-JS-Objects.html#seed-make-object">seed_make_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
@@ -209,7 +209,7 @@ Seed includes a simple system for creating C modules which can be loaded and man
<span class="normal"> </span><span class="usertype">SeedClass</span><span class="normal"> ns_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-JavaScript-Classes.html#seed-create-class">seed_create_class</a></span><span class="symbol">(&amp;</span><span class="normal">ns_class_def</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="comment">/* Instantiate the class; this instance will be the namespace we return */</span>
-<span class="normal"> ns_ref </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-JS-Objects.html#seed-make-object">seed_make_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> ns_class</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
+<span class="normal"> ns_ref </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="seed-JS-Objects.html#seed-make-object">seed_make_object</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> ns_class</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal"> </span><span class="function"><a href="seed-Operating-on-Native-Types.html#seed-value-protect">seed_value_protect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> ns_ref</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="keyword">return</span><span class="normal"> ns_ref</span><span class="symbol">;</span>
@@ -246,7 +246,7 @@ Seed includes a simple system for creating C modules which can be loaded and man
<pre class="programlisting">#define CHECK_ARG_COUNT(name, argnum)</pre>
<p>Check that the required number of arguments were passed into a
<a class="link" href="seed-Native-Functions.html#SeedFunctionCallback" title="SeedFunctionCallback ()"><span class="type">SeedFunctionCallback</span></a>. If this is not true, raise an exception and
-return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. This requires the callback to use "argument_count",
+return <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. This requires the callback to use "argument_count",
"ctx", and "exception" as the names of the various function arguments.</p>
<p><em class="parameter"><code>name</code></em>
should be of form "namespace.function_name"</p>
diff --git a/doc/reference/html/seed-Native-Functions.html b/doc/reference/html/seed-Native-Functions.html
index ce14e7f..b252fa6 100644
--- a/doc/reference/html/seed-Native-Functions.html
+++ b/doc/reference/html/seed-Native-Functions.html
@@ -145,7 +145,7 @@ All native C callbacks should have the prototype of <a class="link" href="seed-N
<span class="normal"> eng</span><span class="symbol">-&gt;</span><span class="normal">global</span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="comment">/* Call the newly created JavaScript function */</span>
-<span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-simple-evaluate">seed_simple_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"hello_world()"</span><span class="symbol">,</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
+<span class="normal"> </span><span class="function"><a href="seed-Evaluation.html#seed-simple-evaluate">seed_simple_evaluate</a></span><span class="symbol">(</span><span class="normal">eng</span><span class="symbol">-&gt;</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"hello_world()"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal"> </span>
<span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
<span class="cbracket">}</span></pre></td>
diff --git a/doc/reference/html/seed-Native-Type-Conversion.html b/doc/reference/html/seed-Native-Type-Conversion.html
index 4aee2ec..10a35cb 100644
--- a/doc/reference/html/seed-Native-Type-Conversion.html
+++ b/doc/reference/html/seed-Native-Type-Conversion.html
@@ -484,7 +484,7 @@ not convert a JavaScript number type, only a boolean.</p>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -526,7 +526,7 @@ seed_value_from_boolean (<em class="parameter"><code><a class="link" href="seed-
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -568,7 +568,7 @@ seed_value_to_uint (<em class="parameter"><code><a class="link" href="seed-Conte
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -610,7 +610,7 @@ seed_value_from_uint (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -652,7 +652,7 @@ seed_value_to_int (<em class="parameter"><code><a class="link" href="seed-Contex
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -694,7 +694,7 @@ seed_value_from_int (<em class="parameter"><code><a class="link" href="seed-Cont
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -736,7 +736,7 @@ seed_value_to_char (<em class="parameter"><code><a class="link" href="seed-Conte
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -778,7 +778,7 @@ seed_value_from_char (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -820,7 +820,7 @@ seed_value_to_uchar (<em class="parameter"><code><a class="link" href="seed-Cont
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -862,7 +862,7 @@ seed_value_from_uchar (<em class="parameter"><code><a class="link" href="seed-Co
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -904,7 +904,7 @@ seed_value_to_long (<em class="parameter"><code><a class="link" href="seed-Conte
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -946,7 +946,7 @@ seed_value_from_long (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -988,7 +988,7 @@ seed_value_to_ulong (<em class="parameter"><code><a class="link" href="seed-Cont
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1030,7 +1030,7 @@ seed_value_from_ulong (<em class="parameter"><code><a class="link" href="seed-Co
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1072,7 +1072,7 @@ seed_value_to_int64 (<em class="parameter"><code><a class="link" href="seed-Cont
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1114,7 +1114,7 @@ seed_value_from_int64 (<em class="parameter"><code><a class="link" href="seed-Co
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1156,7 +1156,7 @@ seed_value_to_uint64 (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1198,7 +1198,7 @@ seed_value_from_uint64 (<em class="parameter"><code><a class="link" href="seed-C
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1240,7 +1240,7 @@ seed_value_to_float (<em class="parameter"><code><a class="link" href="seed-Cont
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1282,7 +1282,7 @@ seed_value_from_float (<em class="parameter"><code><a class="link" href="seed-Co
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1324,7 +1324,7 @@ seed_value_to_double (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1366,7 +1366,7 @@ seed_value_from_double (<em class="parameter"><code><a class="link" href="seed-C
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1416,7 +1416,7 @@ calling .toString() on said object.</p>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1458,7 +1458,7 @@ seed_value_from_string (<em class="parameter"><code><a class="link" href="seed-C
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1509,7 +1509,7 @@ to convert.</p></td>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1552,7 +1552,7 @@ seed_value_to_object (<em class="parameter"><code><a class="link" href="seed-Con
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1561,7 +1561,7 @@ Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.htm
<div class="refsect3">
<a name="id-1.4.8.2.7.29.6"></a><h4>Returns</h4>
<p> The <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> wrapped within <em class="parameter"><code>val</code></em>
-, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an exception
+, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if an exception
is raised during the conversion.</p>
</div>
</div>
@@ -1596,7 +1596,7 @@ seed_value_from_object (<em class="parameter"><code><a class="link" href="seed-C
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1639,7 +1639,7 @@ character set used for filenames on the local machine.</p>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
@@ -1648,7 +1648,7 @@ Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.htm
<div class="refsect3">
<a name="id-1.4.8.2.7.31.6"></a><h4>Returns</h4>
<p> The <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* represented by <em class="parameter"><code>val</code></em>
-, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an exception
+, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if an exception
is raised during the conversion.</p>
</div>
</div>
@@ -1683,7 +1683,7 @@ character set used for filenames on the local machine.</p>
<tr>
<td class="parameter_name"><p>exception</p></td>
<td class="parameter_description"><p>A reference to a <a class="link" href="seed-Native-Type-Conversion.html#SeedValue" title="SeedValue"><span class="type">SeedValue</span></a> in which to store any exceptions.
-Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
+Pass <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore exceptions.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
diff --git a/doc/reference/version.xml b/doc/reference/version.xml
index a08ffae..fcdb2e1 100644
--- a/doc/reference/version.xml
+++ b/doc/reference/version.xml
@@ -1 +1 @@
-3.8.2
+4.0.0
diff --git a/doc/tutorial-standalone/Makefile.in b/doc/tutorial-standalone/Makefile.in
index 6da0921..ccf6f0f 100644
--- a/doc/tutorial-standalone/Makefile.in
+++ b/doc/tutorial-standalone/Makefile.in
@@ -254,6 +254,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -301,7 +309,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/extensions/Makefile.am b/extensions/Makefile.am
index 7baab2b..dbb9b63 100644
--- a/extensions/Makefile.am
+++ b/extensions/Makefile.am
@@ -1,6 +1,4 @@
-#if SEED_ENABLE_GJSCOMPAT
-#SUBDIRS = gjs
-#endif
+SUBDIRS = gjs
EXTRA_DIST= GLib.js Gio.js Seed.js.in Gtk.js GObject.js Clutter.js Gst.js repl.js
diff --git a/extensions/Makefile.in b/extensions/Makefile.in
index 186ac5f..bbf657c 100644
--- a/extensions/Makefile.in
+++ b/extensions/Makefile.in
@@ -14,10 +14,6 @@
@SET_MAKE@
-#if SEED_ENABLE_GJSCOMPAT
-#SUBDIRS = gjs
-#endif
-
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
@@ -120,6 +116,14 @@ am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -154,9 +158,61 @@ am__uninstall_files_from_dir = { \
}
am__installdirs = "$(DESTDIR)$(extensiondir)" "$(DESTDIR)$(repldir)"
DATA = $(extension_DATA) $(repl_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
@@ -258,6 +314,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -305,7 +369,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
@@ -376,12 +439,13 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+SUBDIRS = gjs
EXTRA_DIST = GLib.js Gio.js Seed.js.in Gtk.js GObject.js Clutter.js Gst.js repl.js
extensiondir = $(datadir)/seed@SEED_GTK_VERSION@/extensions
extension_DATA = GLib.js Gio.js Seed.js Gtk.js GObject.js Clutter.js Gst.js
repldir = $(datadir)/seed@SEED_GTK_VERSION@
repl_DATA = repl.js
-all: all-am
+all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@@ -461,12 +525,105 @@ uninstall-replDATA:
@list='$(repl_DATA)'; test -n "$(repldir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(repldir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
-
-ctags CTAGS:
-cscope cscopelist:
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -498,22 +655,48 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
check-am: all-am
-check: check-am
+check: check-recursive
all-am: Makefile $(DATA)
-installdirs:
+installdirs: installdirs-recursive
+installdirs-am:
for dir in "$(DESTDIR)$(extensiondir)" "$(DESTDIR)$(repldir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-am
+installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
@@ -535,87 +718,88 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
+clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
-distclean: distclean-am
+distclean: distclean-recursive
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-tags
-dvi: dvi-am
+dvi: dvi-recursive
dvi-am:
-html: html-am
+html: html-recursive
html-am:
-info: info-am
+info: info-recursive
info-am:
install-data-am: install-extensionDATA install-replDATA
-install-dvi: install-dvi-am
+install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
-install-html: install-html-am
+install-html: install-html-recursive
install-html-am:
-install-info: install-info-am
+install-info: install-info-recursive
install-info-am:
install-man:
-install-pdf: install-pdf-am
+install-pdf: install-pdf-recursive
install-pdf-am:
-install-ps: install-ps-am
+install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-pdf: pdf-am
+pdf: pdf-recursive
pdf-am:
-ps: ps-am
+ps: ps-recursive
ps-am:
uninstall-am: uninstall-extensionDATA uninstall-replDATA
-.MAKE: install-am install-strip
+.MAKE: $(am__recursive_targets) install-am install-strip
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- cscopelist-am ctags-am distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am \
install-extensionDATA install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-replDATA \
install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags-am uninstall uninstall-am uninstall-extensionDATA \
- uninstall-replDATA
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-extensionDATA uninstall-replDATA
.PRECIOUS: Makefile
diff --git a/extensions/Seed.js.in b/extensions/Seed.js.in
index b5b7c6c..3d576d0 100644
--- a/extensions/Seed.js.in
+++ b/extensions/Seed.js.in
@@ -35,6 +35,12 @@ if(!imports.searchPath || (imports.searchPath.length == 0))
imports.searchPath.unshift(".");
}
+// TODO: This will work, but won't work if not installed
+// that's a bit OK at the moment, as Seed doesn't work properly uninstalled anyway.
+// But it should be fixed soon!
+const GIRepository = imports.gi.GIRepository;
+GIRepository.Repository.prepend_search_path("%pkglibdir%/girepository-1.0/");
+
Seed.sprintf = function ()
{
if (typeof arguments == "undefined") { return null; }
diff --git a/extensions/gjs/GLib.js b/extensions/gjs/GLib.js
new file mode 100644
index 0000000..f4161a2
--- /dev/null
+++ b/extensions/gjs/GLib.js
@@ -0,0 +1,285 @@
+// Copyright 2011 Giovanni Campagna
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+const ByteArray = imports.byteArray;
+
+let GLib;
+let originalVariantClass;
+
+const SIMPLE_TYPES = ['b', 'y', 'n', 'q', 'i', 'u', 'x', 't', 'h', 'd', 's', 'o', 'g'];
+
+function _read_single_type(signature, forceSimple) {
+ let char = signature.shift();
+ let isSimple = false;
+
+ if (SIMPLE_TYPES.indexOf(char) == -1) {
+ if (forceSimple)
+ throw new TypeError('Invalid GVariant signature (a simple type was expected)');
+ } else
+ isSimple = true;
+
+ if (char == 'm' || char == 'a')
+ return [char].concat(_read_single_type(signature, false));
+ if (char == '{') {
+ let key = _read_single_type(signature, true);
+ let val = _read_single_type(signature, false);
+ let close = signature.shift();
+ if (close != '}')
+ throw new TypeError('Invalid GVariant signature for type DICT_ENTRY (expected "}"');
+ return [char].concat(key, val, close);
+ }
+ if (char == '(') {
+ let res = [char];
+ while (true) {
+ if (signature.length == 0)
+ throw new TypeError('Invalid GVariant signature for type TUPLE (expected ")")');
+ let next = signature[0];
+ if (next == ')') {
+ signature.shift();
+ return res.concat(next);
+ }
+ let el = _read_single_type(signature);
+ res = res.concat(el);
+ }
+ }
+
+ // Valid types are simple types, arrays, maybes, tuples, dictionary entries and variants
+ if (!isSimple && char != 'v')
+ throw new TypeError('Invalid GVariant signature (' + char + ' is not a valid type)');
+
+ return [char];
+}
+
+function _makeBytes(byteArray) {
+ if (byteArray instanceof ByteArray.ByteArray)
+ return byteArray.toGBytes();
+ else
+ return new GLib.Bytes(byteArray);
+}
+
+function _pack_variant(signature, value) {
+ if (signature.length == 0)
+ throw new TypeError('GVariant signature cannot be empty');
+
+ let char = signature.shift();
+ switch (char) {
+ case 'b':
+ return GLib.Variant.new_boolean(value);
+ case 'y':
+ return GLib.Variant.new_byte(value);
+ case 'n':
+ return GLib.Variant.new_int16(value);
+ case 'q':
+ return GLib.Variant.new_uint16(value);
+ case 'i':
+ return GLib.Variant.new_int32(value);
+ case 'u':
+ return GLib.Variant.new_uint32(value);
+ case 'x':
+ return GLib.Variant.new_int64(value);
+ case 't':
+ return GLib.Variant.new_uint64(value);
+ case 'h':
+ return GLib.Variant.new_handle(value);
+ case 'd':
+ return GLib.Variant.new_double(value);
+ case 's':
+ return GLib.Variant.new_string(value);
+ case 'o':
+ return GLib.Variant.new_object_path(value);
+ case 'g':
+ return GLib.Variant.new_signature(value);
+ case 'v':
+ return GLib.Variant.new_variant(value);
+ case 'm':
+ if (value != null)
+ return GLib.Variant.new_maybe(null, _pack_variant(signature, value));
+ else
+ return GLib.Variant.new_maybe(new GLib.VariantType(_read_single_type(signature, false).join('')), null);
+ case 'a':
+ let arrayType = _read_single_type(signature, false);
+ if (arrayType[0] == 's') {
+ // special case for array of strings
+ return GLib.Variant.new_strv(value);
+ }
+ if (arrayType[0] == 'y') {
+ // special case for array of bytes
+ return GLib.Variant.new_from_bytes(new GLib.VariantType('ay'),
+ _makeBytes(value), true);
+ }
+
+ let arrayValue = [];
+ if (arrayType[0] == '{') {
+ // special case for dictionaries
+ for (let key in value) {
+ let copy = [].concat(arrayType);
+ let child = _pack_variant(copy, [key, value[key]]);
+ arrayValue.push(child);
+ }
+ } else {
+ for (let i = 0; i < value.length; i++) {
+ let copy = [].concat(arrayType);
+ let child = _pack_variant(copy, value[i]);
+ arrayValue.push(child);
+ }
+ }
+ return GLib.Variant.new_array(new GLib.VariantType(arrayType.join('')), arrayValue);
+
+ case '(':
+ let children = [ ];
+ for (let i = 0; i < value.length; i++) {
+ let next = signature[0];
+ if (next == ')')
+ break;
+ children.push(_pack_variant(signature, value[i]));
+ }
+
+ if (signature[0] != ')')
+ throw new TypeError('Invalid GVariant signature for type TUPLE (expected ")")');
+ signature.shift();
+ return GLib.Variant.new_tuple(children);
+ case '{':
+ let key = _pack_variant(signature, value[0]);
+ let child = _pack_variant(signature, value[1]);
+
+ if (signature[0] != '}')
+ throw new TypeError('Invalid GVariant signature for type DICT_ENTRY (expected "}")');
+ signature.shift();
+
+ return GLib.Variant.new_dict_entry(key, child);
+ default:
+ throw new TypeError('Invalid GVariant signature (unexpected character ' + char + ')');
+ }
+}
+
+function _unpack_variant(variant, deep) {
+ switch (String.fromCharCode(variant.classify())) {
+ case 'b':
+ return variant.get_boolean();
+ case 'y':
+ return variant.get_byte();
+ case 'n':
+ return variant.get_int16();
+ case 'q':
+ return variant.get_uint16();
+ case 'i':
+ return variant.get_int32();
+ case 'u':
+ return variant.get_uint32();
+ case 'x':
+ return variant.get_int64();
+ case 't':
+ return variant.get_uint64();
+ case 'h':
+ return variant.get_handle();
+ case 'd':
+ return variant.get_double();
+ case 'o':
+ case 'g':
+ case 's':
+ // g_variant_get_string has length as out argument
+ return variant.get_string()[0];
+ case 'v':
+ return variant.get_variant();
+ case 'm':
+ let val = variant.get_maybe();
+ if (deep && val)
+ return _unpack_variant(val, deep);
+ else
+ return val;
+ case 'a':
+ if (variant.is_of_type(new GLib.VariantType('a{?*}'))) {
+ // special case containers
+ let ret = { };
+ let nElements = variant.n_children();
+ for (let i = 0; i < nElements; i++) {
+ // always unpack the dictionary entry, and always unpack
+ // the key (or it cannot be added as a key)
+ let val = _unpack_variant(variant.get_child_value(i), deep);
+ let key;
+ if (!deep)
+ key = _unpack_variant(val[0], true);
+ else
+ key = val[0];
+ ret[key] = val[1];
+ }
+ return ret;
+ }
+ if (variant.is_of_type(new GLib.VariantType('ay'))) {
+ // special case byte arrays
+ return variant.get_data_as_bytes().toArray();
+ }
+
+ // fall through
+ case '(':
+ case '{':
+ let ret = [ ];
+ let nElements = variant.n_children();
+ for (let i = 0; i < nElements; i++) {
+ let val = variant.get_child_value(i);
+ if (deep)
+ ret.push(_unpack_variant(val, deep));
+ else
+ ret.push(val);
+ }
+ return ret;
+ }
+
+ throw new Error('Assertion failure: this code should not be reached');
+}
+
+function _init() {
+ // this is imports.gi.GLib
+
+ GLib = this;
+
+ // small HACK: we add a matches() method to standard Errors so that
+ // you can do "catch(e if e.matches(Ns.FooError, Ns.FooError.SOME_CODE))"
+ // without checking instanceof
+ Error.prototype.matches = function() { return false; };
+
+ this.Variant._new_internal = function(sig, value) {
+ let signature = Array.prototype.slice.call(sig);
+
+ let variant = _pack_variant(signature, value);
+ if (signature.length != 0)
+ throw new TypeError('Invalid GVariant signature (more than one single complete type)');
+
+ return variant;
+ };
+
+ // Deprecate version of new GLib.Variant()
+ this.Variant.new = function(sig, value) {
+ return new GLib.Variant(sig, value);
+ };
+ this.Variant.prototype.unpack = function() {
+ return _unpack_variant(this, false);
+ };
+ this.Variant.prototype.deep_unpack = function() {
+ return _unpack_variant(this, true);
+ };
+ this.Variant.prototype.toString = function() {
+ return '[object variant of type "' + this.get_type_string() + '"]';
+ };
+
+ this.Bytes.prototype.toArray = function() {
+ return imports.byteArray.fromGBytes(this);
+ };
+}
diff --git a/extensions/gjs/GObject.js b/extensions/gjs/GObject.js
new file mode 100644
index 0000000..e2fbb65
--- /dev/null
+++ b/extensions/gjs/GObject.js
@@ -0,0 +1,413 @@
+// Copyright 2011 Jasper St. Pierre
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+const Lang = imports.lang;
+const Gi = imports._gi;
+const GjsPrivate = imports.gi.GjsPrivate;
+
+let GObject;
+
+// Some common functions between GObject.Class and GObject.Interface
+
+function _createSignals(gtype, signals) {
+ for (let signalName in signals) {
+ let obj = signals[signalName];
+ let flags = (obj.flags !== undefined) ? obj.flags : GObject.SignalFlags.RUN_FIRST;
+ let accumulator = (obj.accumulator !== undefined) ? obj.accumulator : GObject.AccumulatorType.NONE;
+ let rtype = (obj.return_type !== undefined) ? obj.return_type : GObject.TYPE_NONE;
+ let paramtypes = (obj.param_types !== undefined) ? obj.param_types : [];
+
+ try {
+ obj.signal_id = Gi.signal_new(gtype, signalName, flags, accumulator, rtype, paramtypes);
+ } catch (e) {
+ throw new TypeError('Invalid signal ' + signalName + ': ' + e.message);
+ }
+ }
+}
+
+function _createGTypeName(name, gtypename) {
+ if (gtypename)
+ return gtypename;
+ else
+ return 'Gjs_' + name;
+}
+
+function _getGObjectInterfaces(interfaces) {
+ return interfaces.filter((iface) => iface.hasOwnProperty('$gtype'));
+}
+
+function _propertiesAsArray(propertyObj) {
+ let propertiesArray = [];
+ if (propertyObj) {
+ for (let prop in propertyObj) {
+ propertiesArray.push(propertyObj[prop]);
+ }
+ }
+ return propertiesArray;
+}
+
+const GObjectMeta = new Lang.Class({
+ Name: 'GObjectClass',
+ Extends: Lang.Class,
+
+ _init: function (params) {
+ // retrieve signals and remove them from params before chaining
+ let signals = params.Signals;
+ delete params.Signals;
+
+ this.parent(params);
+
+ if (signals)
+ _createSignals(this.$gtype, signals);
+
+ let propertyObj = { };
+ Object.getOwnPropertyNames(params).forEach(function(name) {
+ if (name == 'Name' || name == 'Extends' || name == 'Abstract')
+ return;
+
+ let descriptor = Object.getOwnPropertyDescriptor(params, name);
+
+ if (typeof descriptor.value === 'function') {
+ let wrapped = this.prototype[name];
+
+ if (name.slice(0, 6) == 'vfunc_') {
+ Gi.hook_up_vfunc(this.prototype, name.slice(6), wrapped);
+ } else if (name.slice(0, 3) == 'on_') {
+ let id = GObject.signal_lookup(name.slice(3).replace('_', '-'), this.$gtype);
+ if (id != 0) {
+ GObject.signal_override_class_closure(id, this.$gtype, function() {
+ let argArray = Array.prototype.slice.call(arguments);
+ let emitter = argArray.shift();
+
+ return wrapped.apply(emitter, argArray);
+ });
+ }
+ }
+ }
+ }.bind(this));
+ },
+
+ _isValidClass: function(klass) {
+ let proto = klass.prototype;
+
+ if (!proto)
+ return false;
+
+ // If proto == GObject.Object.prototype, then
+ // proto.__proto__ is Object, so "proto instanceof GObject.Object"
+ // will return false.
+ return proto == GObject.Object.prototype ||
+ proto instanceof GObject.Object;
+ },
+
+ // If we want an object with a custom JSClass, we can't just
+ // use a function. We have to use a custom constructor here.
+ _construct: function(params) {
+ if (!params.Name)
+ throw new TypeError("Classes require an explicit 'Name' parameter.");
+ let name = params.Name;
+
+ let gtypename = _createGTypeName(params.Name, params.GTypeName);
+
+ if (!params.Extends)
+ params.Extends = GObject.Object;
+ let parent = params.Extends;
+
+ if (!this._isValidClass(parent))
+ throw new TypeError('GObject.Class used with invalid base class (is ' + parent + ')');
+
+ let interfaces = params.Implements || [];
+ if (parent instanceof Lang.Class)
+ interfaces = interfaces.filter((iface) => !parent.implements(iface));
+ let gobjectInterfaces = _getGObjectInterfaces(interfaces);
+
+ let propertiesArray = _propertiesAsArray(params.Properties);
+ delete params.Properties;
+
+ let newClass = Gi.register_type(parent.prototype, gtypename,
+ gobjectInterfaces, propertiesArray);
+
+ // See Class.prototype._construct in lang.js for the reasoning
+ // behind this direct __proto__ set.
+ newClass.__proto__ = this.constructor.prototype;
+ newClass.__super__ = parent;
+
+ newClass._init.apply(newClass, arguments);
+
+ Object.defineProperties(newClass.prototype, {
+ '__metaclass__': { writable: false,
+ configurable: false,
+ enumerable: false,
+ value: this.constructor },
+ '__interfaces__': { writable: false,
+ configurable: false,
+ enumerable: false,
+ value: interfaces }
+ });
+
+ interfaces.forEach((iface) => {
+ if (iface instanceof Lang.Interface)
+ iface._check(newClass.prototype);
+ });
+
+ return newClass;
+ },
+
+ // Overrides Lang.Class.implements()
+ implements: function (iface) {
+ if (iface instanceof GObject.Interface) {
+ return GObject.type_is_a(this.$gtype, iface.$gtype);
+ } else {
+ return this.parent(iface);
+ }
+ }
+});
+
+function GObjectInterface(params) {
+ return this._construct.apply(this, arguments);
+}
+
+GObjectMeta.MetaInterface = GObjectInterface;
+
+GObjectInterface.__super__ = Lang.Interface;
+GObjectInterface.prototype = Object.create(Lang.Interface.prototype);
+GObjectInterface.prototype.constructor = GObjectInterface;
+GObjectInterface.prototype.__name__ = 'GObjectInterface';
+
+GObjectInterface.prototype._construct = function (params) {
+ if (!params.Name) {
+ throw new TypeError("Interfaces require an explicit 'Name' parameter.");
+ }
+
+ let gtypename = _createGTypeName(params.Name, params.GTypeName);
+ delete params.GTypeName;
+
+ let interfaces = params.Requires || [];
+ let gobjectInterfaces = _getGObjectInterfaces(interfaces);
+
+ let properties = _propertiesAsArray(params.Properties);
+ delete params.Properties;
+
+ let newInterface = Gi.register_interface(gtypename, gobjectInterfaces,
+ properties);
+
+ // See Class.prototype._construct in lang.js for the reasoning
+ // behind this direct __proto__ set.
+ newInterface.__proto__ = this.constructor.prototype;
+ newInterface.__super__ = GObjectInterface;
+ newInterface.prototype.constructor = newInterface;
+
+ newInterface._init.apply(newInterface, arguments);
+
+ Object.defineProperty(newInterface.prototype, '__metaclass__', {
+ writable: false,
+ configurable: false,
+ enumerable: false,
+ value: this.constructor
+ });
+
+ return newInterface;
+};
+
+GObjectInterface.prototype._init = function (params) {
+ let signals = params.Signals;
+ delete params.Signals;
+
+ Lang.Interface.prototype._init.call(this, params);
+
+ _createSignals(this.$gtype, signals);
+};
+
+function _init() {
+
+ GObject = this;
+
+ function _makeDummyClass(obj, name, upperName, gtypeName, actual) {
+ let gtype = GObject.type_from_name(gtypeName);
+ obj['TYPE_' + upperName] = gtype;
+ obj[name] = function(v) { return new actual(v); };
+ obj[name].$gtype = gtype;
+ }
+
+ _makeDummyClass(this, 'VoidType', 'NONE', 'void', function() {});
+ _makeDummyClass(this, 'Char', 'CHAR', 'gchar', Number);
+ _makeDummyClass(this, 'UChar', 'UCHAR', 'guchar', Number);
+ _makeDummyClass(this, 'Unichar', 'UNICHAR', 'gint', String);
+
+ this.TYPE_BOOLEAN = GObject.type_from_name('gboolean');
+ this.Boolean = Boolean;
+ Boolean.$gtype = this.TYPE_BOOLEAN;
+
+ _makeDummyClass(this, 'Int', 'INT', 'gint', Number);
+ _makeDummyClass(this, 'UInt', 'UINT', 'guint', Number);
+ _makeDummyClass(this, 'Long', 'LONG', 'glong', Number);
+ _makeDummyClass(this, 'ULong', 'ULONG', 'gulong', Number);
+ _makeDummyClass(this, 'Int64', 'INT64', 'gint64', Number);
+ _makeDummyClass(this, 'UInt64', 'UINT64', 'guint64', Number);
+
+ this.TYPE_ENUM = GObject.type_from_name('GEnum');
+ this.TYPE_FLAGS = GObject.type_from_name('GFlags');
+
+ _makeDummyClass(this, 'Float', 'FLOAT', 'gfloat', Number);
+ this.TYPE_DOUBLE = GObject.type_from_name('gdouble');
+ this.Double = Number;
+ Number.$gtype = this.TYPE_DOUBLE;
+
+ this.TYPE_STRING = GObject.type_from_name('gchararray');
+ this.String = String;
+ String.$gtype = this.TYPE_STRING;
+
+ this.TYPE_POINTER = GObject.type_from_name('gpointer');
+ this.TYPE_BOXED = GObject.type_from_name('GBoxed');
+ this.TYPE_PARAM = GObject.type_from_name('GParam');
+ this.TYPE_INTERFACE = GObject.type_from_name('GInterface');
+ this.TYPE_OBJECT = GObject.type_from_name('GObject');
+ this.TYPE_VARIANT = GObject.type_from_name('GVariant');
+
+ _makeDummyClass(this, 'Type', 'GTYPE', 'GType', GObject.type_from_name);
+
+ this.ParamSpec.char = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_char(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.uchar = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_uchar(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.int = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_int(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.uint = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_uint(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.long = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_long(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.ulong = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_ulong(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.int64 = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_int64(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.uint64 = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_uint64(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.float = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_float(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.boolean = function(name, nick, blurb, flags, default_value) {
+ return GObject.param_spec_boolean(name, nick, blurb, default_value, flags);
+ };
+
+ this.ParamSpec.flags = function(name, nick, blurb, flags, flags_type, default_value) {
+ return GObject.param_spec_flags(name, nick, blurb, flags_type, default_value, flags);
+ };
+
+ this.ParamSpec.enum = function(name, nick, blurb, flags, enum_type, default_value) {
+ return GObject.param_spec_enum(name, nick, blurb, enum_type, default_value, flags);
+ };
+
+ this.ParamSpec.double = function(name, nick, blurb, flags, minimum, maximum, default_value) {
+ return GObject.param_spec_double(name, nick, blurb, minimum, maximum, default_value, flags);
+ };
+
+ this.ParamSpec.string = function(name, nick, blurb, flags, default_value) {
+ return GObject.param_spec_string(name, nick, blurb, default_value, flags);
+ };
+
+ this.ParamSpec.boxed = function(name, nick, blurb, flags, boxed_type) {
+ return GObject.param_spec_boxed(name, nick, blurb, boxed_type, flags);
+ };
+
+ this.ParamSpec.object = function(name, nick, blurb, flags, object_type) {
+ return GObject.param_spec_object(name, nick, blurb, object_type, flags);
+ };
+
+ this.ParamSpec.param = function(name, nick, blurb, flags, param_type) {
+ return GObject.param_spec_param(name, nick, blurb, param_type, flags);
+ };
+
+ // XXX:: Commented out due to compatibility issues
+ //this.ParamSpec.override = Gi.override_property;
+
+ Object.defineProperties(this.ParamSpec.prototype, {
+ 'name': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_name() } },
+ '_nick': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_nick() } },
+ 'nick': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_nick() } },
+ '_blurb': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_blurb() } },
+ 'blurb': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_blurb() } },
+ 'default_value': { configurable: false,
+ enumerable: false,
+ get: function() { return this.get_default_value() } },
+ 'flags': { configurable: false,
+ enumerable: false,
+ get: function() { return GjsPrivate.param_spec_get_flags(this) } },
+ 'value_type': { configurable: false,
+ enumerable: false,
+ get: function() { return GjsPrivate.param_spec_get_value_type(this) } },
+ 'owner_type': { configurable: false,
+ enumerable: false,
+ get: function() { return GjsPrivate.param_spec_get_owner_type(this) } },
+ });
+
+
+ this.Class = GObjectMeta;
+ this.Interface = GObjectInterface;
+
+ /* XXX: removed due to compability issues between gjs and seed
+ *
+ * //this.Object.prototype.__metaclass__ = this.Class;
+ *
+ * // For compatibility with Lang.Class... we need a _construct
+ * // or the Lang.Class constructor will fail.
+ * this.Object.prototype._construct = function() {
+ * this._init.apply(this, arguments);
+ * return this;
+ * };
+
+ * // fake enum for signal accumulators, keep in sync with gi/object.c
+ * this.AccumulatorType = {
+ * NONE: 0,
+ * FIRST_WINS: 1,
+ * TRUE_HANDLED: 2
+ * };
+
+ * this.Object.prototype.disconnect = function(id) {
+ * return GObject.signal_handler_disconnect(this, id);
+ * };
+ */
+}
diff --git a/extensions/gjs/Gio.js b/extensions/gjs/Gio.js
new file mode 100644
index 0000000..950641b
--- /dev/null
+++ b/extensions/gjs/Gio.js
@@ -0,0 +1,394 @@
+// Copyright 2011 Giovanni Campagna
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+var GLib = imports.gi.GLib;
+var GObject = imports.gi.GObject;
+var GjsPrivate = imports.gi.GjsPrivate;
+var Lang = imports.lang;
+var Signals = imports.signals;
+var Gio;
+
+function _signatureLength(sig) {
+ var counter = 0;
+ // make it an array
+ var signature = Array.prototype.slice.call(sig);
+ while (signature.length) {
+ GLib._read_single_type(sig);
+ counter++;
+ }
+ return counter;
+}
+
+function _proxyInvoker(methodName, sync, inSignature, arg_array) {
+ var replyFunc;
+ var flags = 0;
+ var cancellable = null;
+
+ /* Convert arg_array to a *real* array */
+ arg_array = Array.prototype.slice.call(arg_array);
+
+ /* The default replyFunc only logs the responses */
+ replyFunc = _logReply;
+
+ var signatureLength = inSignature.length;
+ var minNumberArgs = signatureLength;
+ var maxNumberArgs = signatureLength + 3;
+
+ if (arg_array.length < minNumberArgs) {
+ throw new Error("Not enough arguments passed for method: " + methodName +
+ ". Expected " + minNumberArgs + ", got " + arg_array.length);
+ } else if (arg_array.length > maxNumberArgs) {
+ throw new Error("Too many arguments passed for method: " + methodName +
+ ". Maximum is " + maxNumberArgs +
+ " + one callback and/or flags");
+ }
+
+ while (arg_array.length > signatureLength) {
+ var argNum = arg_array.length - 1;
+ var arg = arg_array.pop();
+ if (typeof(arg) == "function" && !sync) {
+ replyFunc = arg;
+ } else if (typeof(arg) == "number") {
+ flags = arg;
+ } else if (arg instanceof Gio.Cancellable) {
+ cancellable = arg;
+ } else {
+ throw new Error("Argument " + argNum + " of method " + methodName +
+ " is " + typeof(arg) + ". It should be a callback, flags or a Gio.Cancellable");
+ }
+ }
+
+ var inVariant = new GLib.Variant('(' + inSignature.join('') + ')', arg_array);
+
+ var asyncCallback = function (proxy, result) {
+ var outVariant = null, succeeded = false;
+ try {
+ outVariant = proxy.call_finish(result);
+ succeeded = true;
+ } catch (e) {
+ replyFunc(null, e);
+ }
+
+ if (succeeded)
+ replyFunc(outVariant.deep_unpack(), null);
+ };
+
+ if (sync) {
+ return this.call_sync(methodName,
+ inVariant,
+ flags,
+ -1,
+ cancellable).deep_unpack();
+ } else {
+ return this.call(methodName,
+ inVariant,
+ flags,
+ -1,
+ cancellable,
+ asyncCallback);
+ }
+}
+
+function _logReply(result, exc) {
+ if (exc != null) {
+ log("Ignored exception from dbus method: " + exc.toString());
+ }
+}
+
+function _makeProxyMethod(method, sync) {
+ var i;
+ var name = method.name;
+ var inArgs = method.in_args;
+ var inSignature = [ ];
+ for (i = 0; i < inArgs.length; i++)
+ inSignature.push(inArgs[i].signature);
+
+ return function() {
+ return _proxyInvoker.call(this, name, sync, inSignature, arguments);
+ };
+}
+
+function _convertToNativeSignal(proxy, sender_name, signal_name, parameters) {
+ Signals._emit.call(proxy, signal_name, sender_name, parameters.deep_unpack());
+}
+
+function _propertyGetter(name) {
+ let value = this.get_cached_property(name);
+ return value ? value.deep_unpack() : null;
+}
+
+function _propertySetter(value, name, signature) {
+ let variant = new GLib.Variant(signature, value);
+ this.set_cached_property(name, variant);
+
+ this.call('org.freedesktop.DBus.Properties.Set',
+ new GLib.Variant('(ssv)',
+ [this.g_interface_name,
+ name, variant]),
+ Gio.DBusCallFlags.NONE, -1, null,
+ Lang.bind(this, function(proxy, result) {
+ try {
+ this.call_finish(result);
+ } catch(e) {
+ log('Could not set property ' + name + ' on remote object ' +
+ this.g_object_path + ': ' + e.message);
+ }
+ }));
+}
+
+function _addDBusConvenience() {
+ let info = this.g_interface_info;
+ if (!info)
+ return;
+
+ if (info.signals.length > 0)
+ this.connect('g-signal', _convertToNativeSignal);
+
+ let i, methods = info.methods;
+ for (i = 0; i < methods.length; i++) {
+ var method = methods[i];
+ this[method.name + 'Remote'] = _makeProxyMethod(methods[i], false);
+ this[method.name + 'Sync'] = _makeProxyMethod(methods[i], true);
+ }
+
+ let properties = info.properties;
+ for (i = 0; i < properties.length; i++) {
+ let name = properties[i].name;
+ let signature = properties[i].signature;
+ Object.defineProperty(this, name, { get: Lang.bind(this, _propertyGetter, name),
+ set: Lang.bind(this, _propertySetter, name, signature),
+ configurable: true,
+ enumerable: true });
+ }
+}
+
+function _makeProxyWrapper(interfaceXml) {
+ var info = _newInterfaceInfo(interfaceXml);
+ var iname = info.name;
+ return function(bus, name, object, asyncCallback, cancellable) {
+ var obj = new Gio.DBusProxy({ g_connection: bus,
+ g_interface_name: iname,
+ g_interface_info: info,
+ g_name: name,
+ g_object_path: object });
+ if (!cancellable)
+ cancellable = null;
+ if (asyncCallback)
+ obj.init_async(GLib.PRIORITY_DEFAULT, cancellable, function(initable, result) {
+ let caughtErrorWhenInitting = null;
+ try {
+ initable.init_finish(result);
+ } catch(e) {
+ caughtErrorWhenInitting = e;
+ }
+
+ if (caughtErrorWhenInitting === null) {
+ asyncCallback(initable, null);
+ } else {
+ asyncCallback(null, caughtErrorWhenInitting);
+ }
+ });
+ else
+ obj.init(cancellable);
+ return obj;
+ };
+}
+
+
+function _newNodeInfo(constructor, value) {
+ if (typeof value == 'string')
+ return constructor(value);
+ else if (value instanceof XML)
+ return constructor(value.toXMLString());
+ else
+ throw TypeError('Invalid type ' + Object.prototype.toString.call(value));
+}
+
+function _newInterfaceInfo(value) {
+ var nodeInfo = Gio.DBusNodeInfo.new_for_xml(value);
+ return nodeInfo.interfaces[0];
+}
+
+function _injectToMethod(klass, method, addition) {
+ var previous = klass[method];
+
+ klass[method] = function() {
+ addition.apply(this, arguments);
+ return previous.apply(this, arguments);
+ };
+}
+
+function _wrapFunction(klass, method, addition) {
+ var previous = klass[method];
+
+ klass[method] = function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(previous);
+ return addition.apply(this, args);
+ };
+}
+
+function _makeOutSignature(args) {
+ var ret = '(';
+ for (var i = 0; i < args.length; i++)
+ ret += args[i].signature;
+
+ return ret + ')';
+}
+
+function _handleMethodCall(info, impl, method_name, parameters, invocation) {
+ // prefer a sync version if available
+ if (this[method_name]) {
+ let retval;
+ try {
+ retval = this[method_name].apply(this, parameters.deep_unpack());
+ } catch (e) {
+ if (e instanceof GLib.Error) {
+ invocation.return_gerror(e);
+ } else {
+ let name = e.name;
+ if (name.indexOf('.') == -1) {
+ // likely to be a normal JS error
+ name = 'org.gnome.gjs.JSError.' + name;
+ }
+ logError(e, "Exception in method call: " + method_name);
+ invocation.return_dbus_error(name, e.message);
+ }
+ return;
+ }
+ if (retval === undefined) {
+ // undefined (no return value) is the empty tuple
+ retval = new GLib.Variant('()', []);
+ }
+ try {
+ if (!(retval instanceof GLib.Variant)) {
+ // attempt packing according to out signature
+ let methodInfo = info.lookup_method(method_name);
+ let outArgs = methodInfo.out_args;
+ let outSignature = _makeOutSignature(outArgs);
+ if (outArgs.length == 1) {
+ // if one arg, we don't require the handler wrapping it
+ // into an Array
+ retval = [retval];
+ }
+ retval = new GLib.Variant(outSignature, retval);
+ }
+ invocation.return_value(retval);
+ } catch(e) {
+ // if we don't do this, the other side will never see a reply
+ invocation.return_dbus_error('org.gnome.gjs.JSError.ValueError',
+ "Service implementation returned an incorrect value type");
+ }
+ } else if (this[method_name + 'Async']) {
+ this[method_name + 'Async'](parameters.deep_unpack(), invocation);
+ } else {
+ log('Missing handler for DBus method ' + method_name);
+ invocation.return_gerror(new Gio.DBusError({ code: Gio.DBusError.UNKNOWN_METHOD,
+ message: 'Method ' + method_name + ' is not implemented' }));
+ }
+}
+
+function _handlePropertyGet(info, impl, property_name) {
+ let propInfo = info.lookup_property(property_name);
+ let jsval = this[property_name];
+ if (jsval != undefined)
+ return new GLib.Variant(propInfo.signature, jsval);
+ else
+ return null;
+}
+
+function _handlePropertySet(info, impl, property_name, new_value) {
+ this[property_name] = new_value.deep_unpack();
+}
+
+function _wrapJSObject(interfaceInfo, jsObj) {
+ var info;
+ if (interfaceInfo instanceof Gio.DBusInterfaceInfo)
+ info = interfaceInfo;
+ else
+ info = Gio.DBusInterfaceInfo.new_for_xml(interfaceInfo);
+ info.cache_build();
+
+ var impl = new GjsPrivate.DBusImplementation({ g_interface_info: info });
+ impl.connect('handle-method-call', function(impl, method_name, parameters, invocation) {
+ return _handleMethodCall.call(jsObj, info, impl, method_name, parameters, invocation);
+ });
+ impl.connect('handle-property-get', function(impl, property_name) {
+ return _handlePropertyGet.call(jsObj, info, impl, property_name);
+ });
+ impl.connect('handle-property-set', function(impl, property_name, value) {
+ return _handlePropertySet.call(jsObj, info, impl, property_name, value);
+ });
+
+ return impl;
+}
+
+function _init() {
+ Gio = this;
+
+ Gio.DBus = {
+ get session() {
+ return Gio.bus_get_sync(Gio.BusType.SESSION, null);
+ },
+ get system() {
+ return Gio.bus_get_sync(Gio.BusType.SYSTEM, null);
+ },
+
+ // Namespace some functions
+ get: Gio.bus_get,
+ get_finish: Gio.bus_get_finish,
+ get_sync: Gio.bus_get_sync,
+
+ own_name: Gio.bus_own_name,
+ own_name_on_connection: Gio.bus_own_name_on_connection,
+ unown_name: Gio.bus_unown_name,
+
+ watch_name: Gio.bus_watch_name,
+ watch_name_on_connection: Gio.bus_watch_name_on_connection,
+ unwatch_name: Gio.bus_unwatch_name
+ };
+
+ Gio.DBusConnection.prototype.watch_name = function(name, flags, appeared, vanished) {
+ return Gio.bus_watch_name_on_connection(this, name, flags, appeared, vanished);
+ };
+ Gio.DBusConnection.prototype.unwatch_name = function(id) {
+ return Gio.bus_unwatch_name(id);
+ };
+ Gio.DBusConnection.prototype.own_name = function(name, flags, acquired, lost) {
+ return Gio.bus_own_name_on_connection(this, name, flags, acquired, lost);
+ };
+ Gio.DBusConnection.prototype.unown_name = function(id) {
+ return Gio.bus_unown_name(id);
+ };
+
+ _injectToMethod(Gio.DBusProxy.prototype, 'init', _addDBusConvenience);
+ _injectToMethod(Gio.DBusProxy.prototype, 'init_async', _addDBusConvenience);
+ Gio.DBusProxy.prototype.connectSignal = Signals._connect;
+ Gio.DBusProxy.prototype.disconnectSignal = Signals._disconnect;
+
+ Gio.DBusProxy.makeProxyWrapper = _makeProxyWrapper;
+
+ // Some helpers
+ _wrapFunction(Gio.DBusNodeInfo, 'new_for_xml', _newNodeInfo);
+ Gio.DBusInterfaceInfo.new_for_xml = _newInterfaceInfo;
+
+ Gio.DBusExportedObject = GjsPrivate.DBusImplementation;
+ Gio.DBusExportedObject.wrapJSObject = _wrapJSObject;
+}
diff --git a/extensions/gjs/Gtk.js b/extensions/gjs/Gtk.js
new file mode 100644
index 0000000..8a23977
--- /dev/null
+++ b/extensions/gjs/Gtk.js
@@ -0,0 +1,113 @@
+// application/javascript;version=1.8
+// Copyright 2013 Giovanni Campagna
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+const Lang = imports.lang;
+const GObject = imports.gi.GObject;
+
+var GjsPrivate = imports.gi.GjsPrivate;
+
+let Gtk;
+
+const GtkWidgetClass = new Lang.Class({
+ Name: 'GtkWidgetClass',
+ Extends: GObject.Class,
+
+ _init: function(params) {
+ let template = params.Template;
+ delete params.Template;
+
+ let children = params.Children;
+ delete params.Children;
+
+ let internalChildren = params.InternalChildren;
+ delete params.InternalChildren;
+
+ if (template) {
+ params._instance_init = function() {
+ this.init_template();
+ };
+ }
+
+ this.parent(params);
+
+ if (template) {
+ if (typeof template == 'string' &&
+ template.startsWith('resource:///'))
+ Gtk.Widget.set_template_from_resource.call(this, template.slice(11));
+ else
+ Gtk.Widget.set_template.call(this, template);
+ }
+
+ this.Template = template;
+ this.Children = children;
+ this.InternalChildren = internalChildren;
+
+ if (children) {
+ for (let i = 0; i < children.length; i++)
+ Gtk.Widget.bind_template_child_full.call(this, children[i], false, 0);
+ }
+
+ if (internalChildren) {
+ for (let i = 0; i < internalChildren.length; i++)
+ Gtk.Widget.bind_template_child_full.call(this, internalChildren[i], true, 0);
+ }
+ },
+
+ _isValidClass: function(klass) {
+ let proto = klass.prototype;
+
+ if (!proto)
+ return false;
+
+ // If proto == Gtk.Widget.prototype, then
+ // proto.__proto__ is GObject.InitiallyUnowned, so
+ // "proto instanceof Gtk.Widget"
+ // will return false.
+ return proto == Gtk.Widget.prototype ||
+ proto instanceof Gtk.Widget;
+ },
+});
+
+function _init() {
+
+ Gtk = this;
+
+ Gtk.Widget.prototype.__metaclass__ = GtkWidgetClass;
+ if (GjsPrivate.gtk_container_child_set_property) {
+ Gtk.Container.prototype.child_set_property = function(child, property, value) {
+ GjsPrivate.gtk_container_child_set_property(this, child, property, value);
+ };
+ }
+
+ Gtk.Widget.prototype._init = function(params) {
+ GObject.Object.prototype._init.call(this, params);
+
+ if (this.constructor.Template) {
+ let children = this.constructor.Children || [];
+ for (let child of children)
+ this[child.replace('-', '_', 'g')] = this.get_template_child(this.constructor, child);
+
+ let internalChildren = this.constructor.InternalChildren || [];
+ for (let child of internalChildren)
+ this['_' + child.replace('-', '_', 'g')] = this.get_template_child(this.constructor, child);
+ }
+ };
+}
diff --git a/extensions/gjs/Makefile.am b/extensions/gjs/Makefile.am
new file mode 100644
index 0000000..ab5906f
--- /dev/null
+++ b/extensions/gjs/Makefile.am
@@ -0,0 +1,4 @@
+EXTRA_DIST= Gio.js GLib.js GObject.js Gtk.js
+
+gjs_overridesdir=$(datadir)/seed@SEED_GTK_VERSION@/extensions/gjs
+gjs_overrides_DATA = Gio.js GLib.js GObject.js Gtk.js
diff --git a/extensions/gjs/Makefile.in b/extensions/gjs/Makefile.in
new file mode 100644
index 0000000..edf9e22
--- /dev/null
+++ b/extensions/gjs/Makefile.in
@@ -0,0 +1,604 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = extensions/gjs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(gjs_overridesdir)"
+DATA = $(gjs_overrides_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CAIRO_MODULE = @BUILD_CAIRO_MODULE@
+BUILD_CANVAS_MODULE = @BUILD_CANVAS_MODULE@
+BUILD_DBUS_MODULE = @BUILD_DBUS_MODULE@
+BUILD_DYNAMICOBJECT_MODULE = @BUILD_DYNAMICOBJECT_MODULE@
+BUILD_EXAMPLE_MODULE = @BUILD_EXAMPLE_MODULE@
+BUILD_FFI_MODULE = @BUILD_FFI_MODULE@
+BUILD_GETTEXT_MODULE = @BUILD_GETTEXT_MODULE@
+BUILD_GTKBUILDER_MODULE = @BUILD_GTKBUILDER_MODULE@
+BUILD_LIBXML_MODULE = @BUILD_LIBXML_MODULE@
+BUILD_MPFR_MODULE = @BUILD_MPFR_MODULE@
+BUILD_MULTIPROCESSING_MODULE = @BUILD_MULTIPROCESSING_MODULE@
+BUILD_OS_MODULE = @BUILD_OS_MODULE@
+BUILD_READLINE_MODULE = @BUILD_READLINE_MODULE@
+BUILD_SQLITE_MODULE = @BUILD_SQLITE_MODULE@
+BUILD_XORG_MODULE = @BUILD_XORG_MODULE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LDFLAGS = @CAIRO_LDFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUSGLIB_CFLAGS = @DBUSGLIB_CFLAGS@
+DBUSGLIB_LDFLAGS = @DBUSGLIB_LDFLAGS@
+DBUSGLIB_LIBS = @DBUSGLIB_LIBS@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LDFLAGS = @DBUS_LDFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FFI_CFLAGS = @FFI_CFLAGS@
+FFI_LDFLAGS = @FFI_LDFLAGS@
+FFI_LIBS = @FFI_LIBS@
+FGREP = @FGREP@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LDFLAGS = @GDK_LDFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GMODULE_CFLAGS = @GMODULE_CFLAGS@
+GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_JS_CFLAGS = @GNOME_JS_CFLAGS@
+GNOME_JS_DIR = @GNOME_JS_DIR@
+GNOME_JS_LIBS = @GNOME_JS_LIBS@
+GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
+GOBJECT_INTROSPECTION_LDFLAGS = @GOBJECT_INTROSPECTION_LDFLAGS@
+GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@
+GOBJECT_INTROSPECTION_VERSION = @GOBJECT_INTROSPECTION_VERSION@
+GREP = @GREP@
+GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
+GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LDFLAGS = @GTK_LDFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LDFLAGS = @LIBXML_LDFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSS_CFLAGS = @LIBXSS_CFLAGS@
+LIBXSS_LIBS = @LIBXSS_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
+SEED_GTK_VERSION = @SEED_GTK_VERSION@
+SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
+SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SQLITE_CFLAGS = @SQLITE_CFLAGS@
+SQLITE_LDFLAGS = @SQLITE_LDFLAGS@
+SQLITE_LIBS = @SQLITE_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WEBKIT_CFLAGS = @WEBKIT_CFLAGS@
+WEBKIT_LDFLAGS = @WEBKIT_LDFLAGS@
+WEBKIT_LIBS = @WEBKIT_LIBS@
+WEBKIT_PC = @WEBKIT_PC@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = Gio.js GLib.js GObject.js Gtk.js
+gjs_overridesdir = $(datadir)/seed@SEED_GTK_VERSION@/extensions/gjs
+gjs_overrides_DATA = Gio.js GLib.js GObject.js Gtk.js
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extensions/gjs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu extensions/gjs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-gjs_overridesDATA: $(gjs_overrides_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(gjs_overrides_DATA)'; test -n "$(gjs_overridesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gjs_overridesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gjs_overridesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gjs_overridesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(gjs_overridesdir)" || exit $$?; \
+ done
+
+uninstall-gjs_overridesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(gjs_overrides_DATA)'; test -n "$(gjs_overridesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(gjs_overridesdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(gjs_overridesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-gjs_overridesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-gjs_overridesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am \
+ install-gjs_overridesDATA install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-gjs_overridesDATA
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libgjs-private/Makefile.am b/libgjs-private/Makefile.am
new file mode 100644
index 0000000..9d8bcc2
--- /dev/null
+++ b/libgjs-private/Makefile.am
@@ -0,0 +1,54 @@
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+
+lib_LTLIBRARIES = \
+ libseed_gjsprivate.la
+
+libgjs_private_source_files = \
+ gjs-gdbus-wrapper.c \
+ gjs-gdbus-wrapper.h \
+ gjs-util.c \
+ gjs-util.h \
+ gjs-gtk-util.h \
+ gjs-gtk-util.c \
+ $(NULL)
+
+libseed_gjsprivate_la_SOURCES = $(libgjs_private_source_files)
+
+AM_CPPFLAGS = \
+ -I@top_srcdir@/libseed/ \
+ $(GOBJECT_INTROSPECTION_CFLAGS) \
+ $(SEED_DEBUG_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(SEED_PROFILE_CFLAGS)
+
+libseed_gjsprivate_la_LDFLAGS = \
+ -module -avoid-version \
+ $(GOBJECT_INTROSPECTION_LDFLAGS)
+
+libseed_gjsprivate_la_LIBADD = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(GTK_LIBS) \
+ $(SEED_PROFILE_LIBS)
+
+INTROSPECTION_SCANNER_ARGS = \
+ --add-include-path=@top_srcdir@ --add-include-path=$(GTK_CFLAGS) --warn-all
+INTROSPECTION_COMPILER_ARGS = \
+ --includedir=@top_srcdir@
+
+GjsPrivate-1.0.gir: libseed_gjsprivate.la
+GjsPrivate_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
+GjsPrivate_1_0_gir_CFLAGS = $(INCLUDES)
+GjsPrivate_1_0_gir_LIBS = libseed_gjsprivate.la
+GjsPrivate_1_0_gir_FILES = $(libgjs_private_source_files)
+INTROSPECTION_GIRS += GjsPrivate-1.0.gir
+
+GjsPrivate_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gjs --symbol-prefix=gjs_ --warn-all
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(pkglibdir)@SEED_GTK_VERSION@/girepository-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES = $(gir_DATA) $(typelib_DATA)
+
diff --git a/libgjs-private/Makefile.in b/libgjs-private/Makefile.in
new file mode 100644
index 0000000..9124a35
--- /dev/null
+++ b/libgjs-private/Makefile.in
@@ -0,0 +1,855 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libgjs-private
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
+ "$(DESTDIR)$(typelibdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libseed_gjsprivate_la_DEPENDENCIES = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am__objects_1 = gjs-gdbus-wrapper.lo gjs-util.lo gjs-gtk-util.lo
+am_libseed_gjsprivate_la_OBJECTS = $(am__objects_1)
+libseed_gjsprivate_la_OBJECTS = $(am_libseed_gjsprivate_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libseed_gjsprivate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libseed_gjsprivate_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libseed_gjsprivate_la_SOURCES)
+DIST_SOURCES = $(libseed_gjsprivate_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(gir_DATA) $(typelib_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CAIRO_MODULE = @BUILD_CAIRO_MODULE@
+BUILD_CANVAS_MODULE = @BUILD_CANVAS_MODULE@
+BUILD_DBUS_MODULE = @BUILD_DBUS_MODULE@
+BUILD_DYNAMICOBJECT_MODULE = @BUILD_DYNAMICOBJECT_MODULE@
+BUILD_EXAMPLE_MODULE = @BUILD_EXAMPLE_MODULE@
+BUILD_FFI_MODULE = @BUILD_FFI_MODULE@
+BUILD_GETTEXT_MODULE = @BUILD_GETTEXT_MODULE@
+BUILD_GTKBUILDER_MODULE = @BUILD_GTKBUILDER_MODULE@
+BUILD_LIBXML_MODULE = @BUILD_LIBXML_MODULE@
+BUILD_MPFR_MODULE = @BUILD_MPFR_MODULE@
+BUILD_MULTIPROCESSING_MODULE = @BUILD_MULTIPROCESSING_MODULE@
+BUILD_OS_MODULE = @BUILD_OS_MODULE@
+BUILD_READLINE_MODULE = @BUILD_READLINE_MODULE@
+BUILD_SQLITE_MODULE = @BUILD_SQLITE_MODULE@
+BUILD_XORG_MODULE = @BUILD_XORG_MODULE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LDFLAGS = @CAIRO_LDFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUSGLIB_CFLAGS = @DBUSGLIB_CFLAGS@
+DBUSGLIB_LDFLAGS = @DBUSGLIB_LDFLAGS@
+DBUSGLIB_LIBS = @DBUSGLIB_LIBS@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LDFLAGS = @DBUS_LDFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FFI_CFLAGS = @FFI_CFLAGS@
+FFI_LDFLAGS = @FFI_LDFLAGS@
+FFI_LIBS = @FFI_LIBS@
+FGREP = @FGREP@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LDFLAGS = @GDK_LDFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GMODULE_CFLAGS = @GMODULE_CFLAGS@
+GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_JS_CFLAGS = @GNOME_JS_CFLAGS@
+GNOME_JS_DIR = @GNOME_JS_DIR@
+GNOME_JS_LIBS = @GNOME_JS_LIBS@
+GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
+GOBJECT_INTROSPECTION_LDFLAGS = @GOBJECT_INTROSPECTION_LDFLAGS@
+GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@
+GOBJECT_INTROSPECTION_VERSION = @GOBJECT_INTROSPECTION_VERSION@
+GREP = @GREP@
+GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
+GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LDFLAGS = @GTK_LDFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LDFLAGS = @LIBXML_LDFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSS_CFLAGS = @LIBXSS_CFLAGS@
+LIBXSS_LIBS = @LIBXSS_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
+SEED_GTK_VERSION = @SEED_GTK_VERSION@
+SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
+SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SQLITE_CFLAGS = @SQLITE_CFLAGS@
+SQLITE_LDFLAGS = @SQLITE_LDFLAGS@
+SQLITE_LIBS = @SQLITE_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WEBKIT_CFLAGS = @WEBKIT_CFLAGS@
+WEBKIT_LDFLAGS = @WEBKIT_LDFLAGS@
+WEBKIT_LIBS = @WEBKIT_LIBS@
+WEBKIT_PC = @WEBKIT_PC@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+INTROSPECTION_GIRS = GjsPrivate-1.0.gir
+lib_LTLIBRARIES = \
+ libseed_gjsprivate.la
+
+libgjs_private_source_files = \
+ gjs-gdbus-wrapper.c \
+ gjs-gdbus-wrapper.h \
+ gjs-util.c \
+ gjs-util.h \
+ gjs-gtk-util.h \
+ gjs-gtk-util.c \
+ $(NULL)
+
+libseed_gjsprivate_la_SOURCES = $(libgjs_private_source_files)
+AM_CPPFLAGS = \
+ -I@top_srcdir@/libseed/ \
+ $(GOBJECT_INTROSPECTION_CFLAGS) \
+ $(SEED_DEBUG_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(SEED_PROFILE_CFLAGS)
+
+libseed_gjsprivate_la_LDFLAGS = \
+ -module -avoid-version \
+ $(GOBJECT_INTROSPECTION_LDFLAGS)
+
+libseed_gjsprivate_la_LIBADD = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(GTK_LIBS) \
+ $(SEED_PROFILE_LIBS)
+
+INTROSPECTION_SCANNER_ARGS = \
+ --add-include-path=@top_srcdir@ --add-include-path=$(GTK_CFLAGS) --warn-all
+
+INTROSPECTION_COMPILER_ARGS = \
+ --includedir=@top_srcdir@
+
+GjsPrivate_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
+GjsPrivate_1_0_gir_CFLAGS = $(INCLUDES)
+GjsPrivate_1_0_gir_LIBS = libseed_gjsprivate.la
+GjsPrivate_1_0_gir_FILES = $(libgjs_private_source_files)
+GjsPrivate_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gjs --symbol-prefix=gjs_ --warn-all
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(INTROSPECTION_GIRS)
+typelibdir = $(pkglibdir)@SEED_GTK_VERSION@/girepository-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+CLEANFILES = $(gir_DATA) $(typelib_DATA)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libgjs-private/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu libgjs-private/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libseed_gjsprivate.la: $(libseed_gjsprivate_la_OBJECTS) $(libseed_gjsprivate_la_DEPENDENCIES) $(EXTRA_libseed_gjsprivate_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libseed_gjsprivate_la_LINK) -rpath $(libdir) $(libseed_gjsprivate_la_OBJECTS) $(libseed_gjsprivate_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjs-gdbus-wrapper.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjs-gtk-util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjs-util.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-girDATA: $(gir_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
+ done
+
+uninstall-girDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-typelibDATA: $(typelib_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(typelibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \
+ done
+
+uninstall-typelibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(typelibdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-girDATA install-typelibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
+ uninstall-typelibDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-girDATA install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip install-typelibDATA installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-girDATA \
+ uninstall-libLTLIBRARIES uninstall-typelibDATA
+
+.PRECIOUS: Makefile
+
+-include $(INTROSPECTION_MAKEFILE)
+
+GjsPrivate-1.0.gir: libseed_gjsprivate.la
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libgjs-private/gjs-gdbus-wrapper.c b/libgjs-private/gjs-gdbus-wrapper.c
new file mode 100644
index 0000000..f01d629
--- /dev/null
+++ b/libgjs-private/gjs-gdbus-wrapper.c
@@ -0,0 +1,336 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2011 Giovanni Campagna. All Rights Reserved. */
+
+#include <config.h>
+#include <string.h>
+
+#include "gjs-gdbus-wrapper.h"
+
+enum
+{
+ PROP_0,
+ PROP_G_INTERFACE_INFO,
+ PROP_LAST
+};
+
+enum
+{
+ SIGNAL_HANDLE_METHOD,
+ SIGNAL_HANDLE_PROPERTY_GET,
+ SIGNAL_HANDLE_PROPERTY_SET,
+ SIGNAL_LAST,
+};
+
+static guint signals[SIGNAL_LAST];
+
+struct _GjsDBusImplementationPrivate
+{
+ GDBusInterfaceVTable vtable;
+ GDBusInterfaceInfo* ifaceinfo;
+
+ // from gchar* to GVariant*
+ GHashTable* outstanding_properties;
+ guint idle_id;
+};
+
+G_DEFINE_TYPE(GjsDBusImplementation,
+ gjs_dbus_implementation,
+ G_TYPE_DBUS_INTERFACE_SKELETON)
+
+static void
+gjs_dbus_implementation_method_call(GDBusConnection* connection,
+ const char* sender,
+ const char* object_path,
+ const char* interface_name,
+ const char* method_name,
+ GVariant* parameters,
+ GDBusMethodInvocation* invocation,
+ gpointer user_data)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(user_data);
+
+ g_signal_emit(self, signals[SIGNAL_HANDLE_METHOD], 0, method_name,
+ parameters, invocation);
+ g_object_unref(invocation);
+}
+
+static GVariant*
+gjs_dbus_implementation_property_get(GDBusConnection* connection,
+ const char* sender,
+ const char* object_path,
+ const char* interface_name,
+ const char* property_name,
+ GError** error,
+ gpointer user_data)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(user_data);
+ GVariant* value;
+
+ g_signal_emit(self, signals[SIGNAL_HANDLE_PROPERTY_GET], 0, property_name,
+ &value);
+
+ /* Marshaling GErrors is not supported, so this is the best we can do
+ (GIO will assert if value is NULL and error is not set) */
+ if (!value)
+ g_set_error(error, g_quark_from_static_string("gjs-error-domain"), 0,
+ "Property retrieval failed");
+
+ return value;
+}
+
+static gboolean
+gjs_dbus_implementation_property_set(GDBusConnection* connection,
+ const char* sender,
+ const char* object_path,
+ const char* interface_name,
+ const char* property_name,
+ GVariant* value,
+ GError** error,
+ gpointer user_data)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(user_data);
+
+ g_signal_emit(self, signals[SIGNAL_HANDLE_PROPERTY_SET], 0, property_name,
+ value);
+
+ return TRUE;
+}
+
+static void
+gjs_dbus_implementation_init(GjsDBusImplementation* self)
+{
+ GjsDBusImplementationPrivate* priv
+ = G_TYPE_INSTANCE_GET_PRIVATE(self, GJS_TYPE_DBUS_IMPLEMENTATION,
+ GjsDBusImplementationPrivate);
+
+ self->priv = priv;
+
+ priv->vtable.method_call = gjs_dbus_implementation_method_call;
+ priv->vtable.get_property = gjs_dbus_implementation_property_get;
+ priv->vtable.set_property = gjs_dbus_implementation_property_set;
+
+ priv->outstanding_properties
+ = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify) g_variant_unref);
+}
+
+static void
+gjs_dbus_implementation_finalize(GObject* object)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(object);
+
+ g_dbus_interface_info_unref(self->priv->ifaceinfo);
+ g_hash_table_unref(self->priv->outstanding_properties);
+
+ G_OBJECT_CLASS(gjs_dbus_implementation_parent_class)->finalize(object);
+}
+
+static void
+gjs_dbus_implementation_set_property(GObject* object,
+ guint property_id,
+ const GValue* value,
+ GParamSpec* pspec)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(object);
+
+ switch (property_id) {
+ case PROP_G_INTERFACE_INFO:
+ self->priv->ifaceinfo
+ = (GDBusInterfaceInfo*) g_value_dup_boxed(value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
+ }
+}
+
+static GDBusInterfaceInfo*
+gjs_dbus_implementation_get_info(GDBusInterfaceSkeleton* skeleton)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(skeleton);
+
+ return self->priv->ifaceinfo;
+}
+
+static GDBusInterfaceVTable*
+gjs_dbus_implementation_get_vtable(GDBusInterfaceSkeleton* skeleton)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(skeleton);
+
+ return &(self->priv->vtable);
+}
+
+static GVariant*
+gjs_dbus_implementation_get_properties(GDBusInterfaceSkeleton* skeleton)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(skeleton);
+
+ GDBusInterfaceInfo* info = self->priv->ifaceinfo;
+ GDBusPropertyInfo** props;
+ GVariantBuilder builder;
+
+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
+
+ for (props = info->properties; *props; ++props) {
+ GDBusPropertyInfo* prop = *props;
+ GVariant* value;
+
+ /* If we have a cached value, we use that instead of querying again */
+ if ((value = (GVariant*) g_hash_table_lookup(
+ self->priv->outstanding_properties, prop->name))) {
+ g_variant_builder_add(&builder, "{sv}", prop->name, value);
+ continue;
+ }
+
+ g_signal_emit(self, signals[SIGNAL_HANDLE_PROPERTY_GET], 0, prop->name,
+ &value);
+ g_variant_builder_add(&builder, "{sv}", prop->name, value);
+ }
+
+ return g_variant_builder_end(&builder);
+}
+
+static void
+gjs_dbus_implementation_flush(GDBusInterfaceSkeleton* skeleton)
+{
+ GjsDBusImplementation* self = GJS_DBUS_IMPLEMENTATION(skeleton);
+
+ GVariantBuilder changed_props;
+ GVariantBuilder invalidated_props;
+ GHashTableIter iter;
+ GVariant* val;
+ gchar* prop_name;
+
+ g_variant_builder_init(&changed_props, G_VARIANT_TYPE_VARDICT);
+ g_variant_builder_init(&invalidated_props, G_VARIANT_TYPE_STRING_ARRAY);
+
+ g_hash_table_iter_init(&iter, self->priv->outstanding_properties);
+ while (g_hash_table_iter_next(&iter, (void**) &prop_name, (void**) &val)) {
+ if (val)
+ g_variant_builder_add(&changed_props, "{sv}", prop_name, val);
+ else
+ g_variant_builder_add(&invalidated_props, "s", prop_name);
+ }
+
+ g_dbus_connection_emit_signal(
+ g_dbus_interface_skeleton_get_connection(skeleton), NULL, /* bus name */
+ g_dbus_interface_skeleton_get_object_path(skeleton),
+ "org.freedesktop.DBus.Properties", "PropertiesChanged",
+ g_variant_new("(s@a{sv}@as)", self->priv->ifaceinfo->name,
+ g_variant_builder_end(&changed_props),
+ g_variant_builder_end(&invalidated_props)),
+ NULL /* error */);
+
+ g_hash_table_remove_all(self->priv->outstanding_properties);
+ if (self->priv->idle_id) {
+ g_source_remove(self->priv->idle_id);
+ self->priv->idle_id = 0;
+ }
+}
+
+void
+gjs_dbus_implementation_class_init(GjsDBusImplementationClass* klass)
+{
+ GObjectClass* gobject_class = G_OBJECT_CLASS(klass);
+ GDBusInterfaceSkeletonClass* skeleton_class
+ = G_DBUS_INTERFACE_SKELETON_CLASS(klass);
+
+ g_type_class_add_private(klass, sizeof(GjsDBusImplementationPrivate));
+
+ gobject_class->finalize = gjs_dbus_implementation_finalize;
+ gobject_class->set_property = gjs_dbus_implementation_set_property;
+
+ skeleton_class->get_info = gjs_dbus_implementation_get_info;
+ skeleton_class->get_vtable = gjs_dbus_implementation_get_vtable;
+ skeleton_class->get_properties = gjs_dbus_implementation_get_properties;
+ skeleton_class->flush = gjs_dbus_implementation_flush;
+
+ g_object_class_install_property(
+ gobject_class, PROP_G_INTERFACE_INFO,
+ g_param_spec_boxed("g-interface-info", "Interface Info",
+ "A DBusInterfaceInfo representing the exported object",
+ G_TYPE_DBUS_INTERFACE_INFO,
+ (GParamFlags)(G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE
+ | G_PARAM_CONSTRUCT_ONLY)));
+
+ signals[SIGNAL_HANDLE_METHOD]
+ = g_signal_new("handle-method-call", G_TYPE_FROM_CLASS(klass),
+ (GSignalFlags) 0, /* flags */
+ 0, /* closure */
+ NULL, /* accumulator */
+ NULL, /* accumulator data */
+ NULL, /* C marshal */
+ G_TYPE_NONE, 3, G_TYPE_STRING, /* method name */
+ G_TYPE_VARIANT, /* parameters */
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ signals[SIGNAL_HANDLE_PROPERTY_GET]
+ = g_signal_new("handle-property-get", G_TYPE_FROM_CLASS(klass),
+ (GSignalFlags) 0, /* flags */
+ 0, /* closure */
+ g_signal_accumulator_first_wins,
+ NULL, /* accumulator data */
+ NULL, /* C marshal */
+ G_TYPE_VARIANT, 1, G_TYPE_STRING /* property name */);
+
+ signals[SIGNAL_HANDLE_PROPERTY_SET]
+ = g_signal_new("handle-property-set", G_TYPE_FROM_CLASS(klass),
+ (GSignalFlags) 0, /* flags */
+ 0, /* closure */
+ NULL, /* accumulator */
+ NULL, /* accumulator data */
+ NULL, /* C marshal */
+ G_TYPE_NONE, 2, G_TYPE_STRING, /* property name */
+ G_TYPE_VARIANT /* parameters */);
+}
+
+static gboolean
+idle_cb(gpointer data)
+{
+ GDBusInterfaceSkeleton* skeleton = G_DBUS_INTERFACE_SKELETON(data);
+
+ g_dbus_interface_skeleton_flush(skeleton);
+ return FALSE;
+}
+
+/**
+ * gjs_dbus_implementation_emit_property_changed:
+ * @self: a #GjsDBusImplementation
+ * @property: the name of the property that changed
+ * @newvalue: (allow-none): the new value, or %NULL to just invalidate it
+ *
+ * Queue a PropertyChanged signal for emission, or update the one queued
+ * adding @property
+ */
+void
+gjs_dbus_implementation_emit_property_changed(GjsDBusImplementation* self,
+ gchar* property,
+ GVariant* newvalue)
+{
+ g_hash_table_replace(self->priv->outstanding_properties, g_strdup(property),
+ g_variant_ref(newvalue));
+
+ if (!self->priv->idle_id)
+ self->priv->idle_id = g_idle_add(idle_cb, self);
+}
+
+/**
+ * gjs_dbus_implementation_emit_signal:
+ * @self: a #GjsDBusImplementation
+ * @signal_name: the name of the signal
+ * @parameters: (allow-none): signal parameters, or %NULL for none
+ *
+ * Emits a signal named @signal_name from the object and interface represented
+ * by @self. This signal has no destination.
+ */
+void
+gjs_dbus_implementation_emit_signal(GjsDBusImplementation* self,
+ gchar* signal_name,
+ GVariant* parameters)
+{
+ GDBusInterfaceSkeleton* skeleton = G_DBUS_INTERFACE_SKELETON(self);
+
+ g_dbus_connection_emit_signal(
+ g_dbus_interface_skeleton_get_connection(skeleton), NULL,
+ g_dbus_interface_skeleton_get_object_path(skeleton),
+ self->priv->ifaceinfo->name, signal_name, parameters, NULL);
+}
diff --git a/libgjs-private/gjs-gdbus-wrapper.h b/libgjs-private/gjs-gdbus-wrapper.h
new file mode 100644
index 0000000..3d55b09
--- /dev/null
+++ b/libgjs-private/gjs-gdbus-wrapper.h
@@ -0,0 +1,74 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2011 Giovanni Campagna
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef __GJS_UTIL_DBUS_H__
+#define __GJS_UTIL_DBUS_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GjsDBusImplementation GjsDBusImplementation;
+typedef struct _GjsDBusImplementationClass GjsDBusImplementationClass;
+typedef struct _GjsDBusImplementationPrivate GjsDBusImplementationPrivate;
+
+#define GJS_TYPE_DBUS_IMPLEMENTATION (gjs_dbus_implementation_get_type())
+#define GJS_DBUS_IMPLEMENTATION(object) \
+ (G_TYPE_CHECK_INSTANCE_CAST((object), GJS_TYPE_DBUS_IMPLEMENTATION, \
+ GjsDBusImplementation))
+#define GJS_DBUS_IMPLEMENTATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), GJS_TYPE_DBUS_IMPLEMENTATION, \
+ GjsDBusImplementationClass))
+#define GJS_IS_DBUS_IMPLEMENTATION(object) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((object), GJS_TYPE_DBUS_IMPLEMENTATION))
+#define GJS_IS_DBUS_IMPLEMENTATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass), GJS_TYPE_DBUS_IMPLEMENTATION))
+#define GJS_DBUS_IMPLEMENTATION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS((obj), GJS_TYPE_DBUS_IMPLEMENTATION, \
+ GjsDBusImplementationClass))
+
+struct _GjsDBusImplementation
+{
+ GDBusInterfaceSkeleton parent;
+
+ GjsDBusImplementationPrivate* priv;
+};
+
+struct _GjsDBusImplementationClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType gjs_dbus_implementation_get_type(void);
+
+void gjs_dbus_implementation_emit_property_changed(GjsDBusImplementation* self,
+ gchar* property,
+ GVariant* newvalue);
+void gjs_dbus_implementation_emit_signal(GjsDBusImplementation* self,
+ gchar* signal_name,
+ GVariant* parameters);
+
+G_END_DECLS
+
+#endif /* __GJS_UTIL_DBUS_H__ */
diff --git a/libgjs-private/gjs-gtk-util.c b/libgjs-private/gjs-gtk-util.c
new file mode 100644
index 0000000..4a6cebf
--- /dev/null
+++ b/libgjs-private/gjs-gtk-util.c
@@ -0,0 +1,63 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2014 Endless Mobile, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+
+#include "gjs-gtk-util.h"
+
+void
+gjs_gtk_container_child_set_property(GtkContainer* container,
+ GtkWidget* child,
+ const gchar* property,
+ const GValue* value)
+{
+ GParamSpec* pspec;
+
+ pspec
+ = gtk_container_class_find_child_property(G_OBJECT_GET_CLASS(container),
+ property);
+ if (pspec == NULL) {
+ g_warning("%s does not have a property called %s",
+ g_type_name(G_OBJECT_TYPE(container)), property);
+ return;
+ }
+
+ if ((G_VALUE_TYPE(value) == G_TYPE_POINTER)
+ && (g_value_get_pointer(value) == NULL)
+ && !g_value_type_transformable(G_VALUE_TYPE(value),
+ pspec->value_type)) {
+ /* Set an empty value. This will happen when we set a NULL value from
+ * JS.
+ * Since GJS doesn't know the GParamSpec for this property, it
+ * will just put NULL into a G_TYPE_POINTER GValue, which will later
+ * fail when trying to transform it to the GParamSpec's GType.
+ */
+ GValue null_value = G_VALUE_INIT;
+ g_value_init(&null_value, pspec->value_type);
+ gtk_container_child_set_property(container, child, property,
+ &null_value);
+ g_value_unset(&null_value);
+ } else {
+ gtk_container_child_set_property(container, child, property, value);
+ }
+}
diff --git a/libgjs-private/gjs-gtk-util.h b/libgjs-private/gjs-gtk-util.h
new file mode 100644
index 0000000..0f048aa
--- /dev/null
+++ b/libgjs-private/gjs-gtk-util.h
@@ -0,0 +1,37 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2014 Endless Mobile, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef __GJS_PRIVATE_GTK_UTIL_H__
+#define __GJS_PRIVATE_GTK_UTIL_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+void gjs_gtk_container_child_set_property(GtkContainer* container,
+ GtkWidget* child,
+ const gchar* property,
+ const GValue* value);
+
+G_END_DECLS
+
+#endif /* __GJS_PRIVATE_GTK_UTIL_H__ */
diff --git a/libgjs-private/gjs-util.c b/libgjs-private/gjs-util.c
new file mode 100644
index 0000000..9bda1c9
--- /dev/null
+++ b/libgjs-private/gjs-util.c
@@ -0,0 +1,110 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2012 Giovanni Campagna <scampa.giovanni@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <config.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include "gjs-util.h"
+
+char*
+gjs_format_int_alternative_output(int n)
+{
+ return g_strdup_printf("%Id", n);
+}
+
+GType
+gjs_locale_category_get_type(void)
+{
+ static volatile size_t g_define_type_id__volatile = 0;
+ if (g_once_init_enter(&g_define_type_id__volatile)) {
+ static const GEnumValue v[]
+ = { { GJS_LOCALE_CATEGORY_ALL, "GJS_LOCALE_CATEGORY_ALL", "all" },
+ { GJS_LOCALE_CATEGORY_COLLATE, "GJS_LOCALE_CATEGORY_COLLATE",
+ "collate" },
+ { GJS_LOCALE_CATEGORY_CTYPE, "GJS_LOCALE_CATEGORY_CTYPE",
+ "ctype" },
+ { GJS_LOCALE_CATEGORY_MESSAGES, "GJS_LOCALE_CATEGORY_MESSAGES",
+ "messages" },
+ { GJS_LOCALE_CATEGORY_MONETARY, "GJS_LOCALE_CATEGORY_MONETARY",
+ "monetary" },
+ { GJS_LOCALE_CATEGORY_NUMERIC, "GJS_LOCALE_CATEGORY_NUMERIC",
+ "numeric" },
+ { GJS_LOCALE_CATEGORY_TIME, "GJS_LOCALE_CATEGORY_TIME", "time" },
+ { 0, NULL, NULL } };
+ GType g_define_type_id
+ = g_enum_register_static(g_intern_static_string("GjsLocaleCategory"),
+ v);
+
+ g_once_init_leave(&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+/**
+ * gjs_setlocale:
+ * @category:
+ * @locale: (allow-none):
+ *
+ * Returns:
+ */
+const char*
+gjs_setlocale(GjsLocaleCategory category, const char* locale)
+{
+ /* According to man setlocale(3), the return value may be allocated in
+ * static storage. */
+ return (const char*) setlocale(category, locale);
+}
+
+void
+gjs_textdomain(const char* domain)
+{
+ textdomain(domain);
+}
+
+void
+gjs_bindtextdomain(const char* domain, const char* location)
+{
+ bindtextdomain(domain, location);
+ /* Always use UTF-8; we assume it internally here */
+ bind_textdomain_codeset(domain, "UTF-8");
+}
+
+GParamFlags
+gjs_param_spec_get_flags(GParamSpec* pspec)
+{
+ return pspec->flags;
+}
+
+GType
+gjs_param_spec_get_value_type(GParamSpec* pspec)
+{
+ return pspec->value_type;
+}
+
+GType
+gjs_param_spec_get_owner_type(GParamSpec* pspec)
+{
+ return pspec->owner_type;
+}
diff --git a/libgjs-private/gjs-util.h b/libgjs-private/gjs-util.h
new file mode 100644
index 0000000..ae09733
--- /dev/null
+++ b/libgjs-private/gjs-util.h
@@ -0,0 +1,58 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* Copyright 2012 Giovanni Campagna <scampa.giovanni@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef __GJS_PRIVATE_UTIL_H__
+#define __GJS_PRIVATE_UTIL_H__
+
+#include <locale.h>
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* For imports.format */
+char* gjs_format_int_alternative_output(int n);
+
+/* For imports.gettext */
+typedef enum {
+ GJS_LOCALE_CATEGORY_ALL = LC_ALL,
+ GJS_LOCALE_CATEGORY_COLLATE = LC_COLLATE,
+ GJS_LOCALE_CATEGORY_CTYPE = LC_CTYPE,
+ GJS_LOCALE_CATEGORY_MESSAGES = LC_MESSAGES,
+ GJS_LOCALE_CATEGORY_MONETARY = LC_MONETARY,
+ GJS_LOCALE_CATEGORY_NUMERIC = LC_NUMERIC,
+ GJS_LOCALE_CATEGORY_TIME = LC_TIME
+} GjsLocaleCategory;
+
+const char* gjs_setlocale(GjsLocaleCategory category, const char* locale);
+void gjs_textdomain(const char* domain);
+void gjs_bindtextdomain(const char* domain, const char* location);
+GType gjs_locale_category_get_type(void) G_GNUC_CONST;
+
+/* For imports.overrides.GObject */
+GParamFlags gjs_param_spec_get_flags(GParamSpec* pspec);
+GType gjs_param_spec_get_value_type(GParamSpec* pspec);
+GType gjs_param_spec_get_owner_type(GParamSpec* pspec);
+
+G_END_DECLS
+
+#endif
diff --git a/libseed/Makefile.in b/libseed/Makefile.in
index c947a35..633502a 100644
--- a/libseed/Makefile.in
+++ b/libseed/Makefile.in
@@ -324,6 +324,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -371,7 +379,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/libseed/seed-engine.c b/libseed/seed-engine.c
index b545e7c..7636cbb 100644
--- a/libseed/seed-engine.c
+++ b/libseed/seed-engine.c
@@ -32,10 +32,8 @@
JSObjectRef function_proto;
JSObjectRef seed_obj_ref;
-#ifdef SEED_ENABLE_GJSCOMPAT
JSObjectRef ARGV_obj_ref;
JSObjectRef window_obj_ref;
-#endif
GQuark qname;
GQuark qprototype;
@@ -56,9 +54,6 @@ GQuark js_ref_quark;
guint seed_debug_flags = 0; /* global seed debug flag */
gboolean seed_arg_print_version = FALSE; // Flag to print version and quit
-#ifdef SEED_ENABLE_GJSCOMPAT
-gboolean seed_arg_gjs_compatiblity = TRUE;
-#endif
pthread_key_t seed_next_gobject_wrapper_key;
@@ -112,10 +107,8 @@ seed_prepare_global_context(JSContextRef ctx)
seed_object_set_property(ctx, global, "imports", importer);
seed_object_set_property(ctx, global, "GType", seed_gtype_constructor);
seed_object_set_property(ctx, global, "Seed", seed_obj_ref);
-#ifdef SEED_ENABLE_GJSCOMPAT
seed_object_set_property(ctx, global, "ARGV", ARGV_obj_ref);
seed_object_set_property(ctx, global, "window", window_obj_ref);
-#endif
seed_object_set_property(ctx, global, "print", seed_print_ref);
seed_object_set_property(ctx, global, "printerr", seed_printerr_ref);
@@ -450,6 +443,46 @@ seed_gobject_init_method_invoked(JSContextRef ctx,
return JSValueMakeUndefined(ctx);
}
+// Pre-process the arguments list to find which arguments needs to be skipped.
+gint* _process_skipped_arguments(const JSValueRef arguments[], GIBaseInfo *info,
+ gint *out_skipped_args)
+{
+ int n_args = g_callable_info_get_n_args((GICallableInfo*) info);
+ int skipped_args = 0;;
+ int i;
+
+ gint *skip = g_new0(gint, n_args + 1);
+
+ GITypeInfo* type_info = NULL;
+ GIArgInfo* arg_info = NULL;
+
+ for (i = 0; (i < (n_args)); i++) {
+ arg_info = g_callable_info_get_arg((GICallableInfo*) info, i);
+ type_info = g_arg_info_get_type(arg_info);
+ GIDirection dir = g_arg_info_get_direction(arg_info);
+
+
+ GITypeTag type_tag = g_type_info_get_tag(type_info);
+ gint array_len_pos = g_type_info_get_array_length(type_info);
+
+ if (dir == GI_DIRECTION_IN)
+ if (type_tag == GI_TYPE_TAG_ARRAY
+ && g_type_info_get_array_type(type_info) == GI_ARRAY_TYPE_C
+ && array_len_pos >= 0) {
+ skip[array_len_pos] = 1;
+ skipped_args++;
+ }
+
+ g_base_info_unref((GIBaseInfo*) type_info);
+ g_base_info_unref((GIBaseInfo*) arg_info);
+ type_info = NULL;
+ arg_info = NULL;
+ }
+
+ *out_skipped_args = skipped_args;
+ return skip;
+}
+
static JSValueRef
seed_gobject_method_invoked(JSContextRef ctx,
JSObjectRef function,
@@ -466,13 +499,13 @@ seed_gobject_method_invoked(JSContextRef ctx,
GIBaseInfo* iface_info = NULL;
GArgument retval;
GArgument* in_args;
- gint* skipped_args;
GArgument* out_args;
GArgument* out_values;
+ gint* skipped_args = NULL;
gint* out_pos;
gint first_out = -1;
guint use_return_as_out = 0;
- guint n_args, n_in_args, n_out_args, i;
+ guint n_args, n_in_args, n_out_args, i, j;
guint in_args_pos, out_args_pos;
GIArgInfo* arg_info = NULL;
GITypeInfo* type_info = NULL;
@@ -497,20 +530,28 @@ seed_gobject_method_invoked(JSContextRef ctx,
out_pos = g_new0(gint, n_args + 1);
in_args = g_new0(GArgument, n_args + 1);
- skipped_args = g_new0(gint, n_args + 1);
out_args = g_new0(GArgument, n_args + 1);
out_values = g_new0(GArgument, n_args + 1);
n_in_args = n_out_args = 0;
caller_allocated = g_new0(gboolean, n_args + 1);
- memset(skipped_args, 0, n_args);
-
- // start buy pushing the object onto the call stack.
+ // start by pushing the object onto the call stack.
if (instance_method)
in_args[n_in_args++].v_pointer = object;
+ int out_skipped_args = 0;
+ skipped_args = _process_skipped_arguments(arguments, info, &out_skipped_args);
+
// now loop through all the other args.
- for (i = 0; (i < (n_args)); i++) {
+ for (i = 0, j = 0; (i < (n_args)); i++) {
+ if (skipped_args[i]) {
+ SEED_NOTE(INVOCATION,
+ "Skipping parameter %d", i);
+ n_in_args++;
+ j++;
+ continue;
+ }
+
out_pos[i] = -1;
arg_info = g_callable_info_get_arg((GICallableInfo*) info, i);
dir = g_arg_info_get_direction(arg_info);
@@ -549,7 +590,7 @@ seed_gobject_method_invoked(JSContextRef ctx,
g_base_info_get_name((GIBaseInfo*) arg_info), i,
g_base_info_get_name(info), exception);
- if (i + 1 > argumentCount) {
+ if (i + 1 > argumentCount + out_skipped_args) {
if (dir == GI_DIRECTION_OUT) {
GArgument* out_value = &out_values[n_out_args];
@@ -567,14 +608,14 @@ seed_gobject_method_invoked(JSContextRef ctx,
caller_allocated[i] = TRUE;
}
n_out_args++;
- } else if (!skipped_args[i])
+ } else
in_args[n_in_args++].v_pointer = 0;
} else if (dir == GI_DIRECTION_IN || dir == GI_DIRECTION_INOUT) {
if (!g_arg_info_may_be_null(arg_info)) {
gboolean is_null
- = (!arguments[i] || JSValueIsNull(ctx, arguments[i]));
+ = (!arguments[i-j] || JSValueIsNull(ctx, arguments[i-j]));
if (!is_null && (g_type_info_get_tag(type_info)
== GI_TYPE_TAG_INTERFACE)) {
@@ -583,7 +624,7 @@ seed_gobject_method_invoked(JSContextRef ctx,
type_info);
GIInfoType interface_type = g_base_info_get_type(interface);
- gboolean arg_is_object = JSValueIsObject(ctx, arguments[i]);
+ gboolean arg_is_object = JSValueIsObject(ctx, arguments[i-j]);
gboolean is_gvalue
= (interface_type == GI_INFO_TYPE_STRUCT)
@@ -605,7 +646,7 @@ seed_gobject_method_invoked(JSContextRef ctx,
arrays.
*/
if (!is_gvalue && is_struct_or_union && arg_is_object
- && (seed_pointer_get_pointer(ctx, arguments[i]) == 0)) {
+ && (seed_pointer_get_pointer(ctx, arguments[i-j]) == 0)) {
is_null = TRUE;
}
g_base_info_unref(interface);
@@ -635,19 +676,18 @@ seed_gobject_method_invoked(JSContextRef ctx,
}
guint out_length = 0;
- if (!skipped_args[i])
- if (!seed_value_to_gi_argument_with_out_length(
- ctx, arguments[i], type_info, transfer,
- &in_args[n_in_args++], &out_length, exception)) {
- seed_make_exception(ctx, exception, "ArgumentError",
- "Unable to make argument %d for"
- " function: %s. \n",
- i + 1, g_base_info_get_name(
- (GIBaseInfo*) info));
-
- retval_ref = JSValueMakeNull(ctx);
- goto invoke_return;
- }
+ if (!seed_value_to_gi_argument_with_out_length(
+ ctx, arguments[i-j], type_info, transfer,
+ &in_args[n_in_args++], &out_length, exception)) {
+ seed_make_exception(ctx, exception, "ArgumentError",
+ "Unable to make argument %d for"
+ " function: %s. \n",
+ i + 1, g_base_info_get_name(
+ (GIBaseInfo*) info));
+
+ retval_ref = JSValueMakeNull(ctx);
+ goto invoke_return;
+ }
// check if what we did we did on an array,
// if yes, fill the g_type_info_get_array_length() position with the
@@ -657,8 +697,7 @@ seed_gobject_method_invoked(JSContextRef ctx,
if (type_tag == GI_TYPE_TAG_ARRAY
&& g_type_info_get_array_type(type_info) == GI_ARRAY_TYPE_C
&& array_len_pos >= 0) {
- n_in_args++;
- skipped_args[array_len_pos] = 1;
+ skipped_args[array_len_pos] = TRUE;
in_args[array_len_pos + 1].v_uint64 = out_length;
}
@@ -720,10 +759,7 @@ seed_gobject_method_invoked(JSContextRef ctx,
// There's one out_arg AND tag != GI_TYPE_TAG_VOID
// AND, of course, if it's not an INTERFACE.
gboolean force_return_array = false;
-#ifdef SEED_ENABLE_GJSCOMPAT
- if (seed_arg_gjs_compatiblity)
- force_return_array = (tag != GI_TYPE_TAG_INTERFACE);
-#endif
+ force_return_array = (tag != GI_TYPE_TAG_INTERFACE);
if (force_return_array) {
if (n_out_args + !!(tag != GI_TYPE_TAG_VOID) > 1) {
@@ -933,10 +969,10 @@ seed_gobject_method_invoked(JSContextRef ctx,
if (use_return_as_out) {
if (force_return_array) {
- gchar* atoi = g_strdup_printf("%d", array_return_count++);
- seed_object_set_property(ctx, (JSObjectRef) retval_ref, atoi,
+ gchar* int_str = g_strdup_printf("%d", array_return_count++);
+ seed_object_set_property(ctx, (JSObjectRef) retval_ref, int_str,
jsout_val);
- g_free(atoi);
+ g_free(int_str);
} else {
seed_object_set_property(ctx, (JSObjectRef) retval_ref,
g_base_info_get_name(
@@ -1640,10 +1676,6 @@ static GOptionEntry seed_args[] = {
{ "seed-no-debug", 0, 0, G_OPTION_ARG_CALLBACK, seed_arg_no_debug_cb,
"Disable Seed debugging", "FLAGS" },
#endif /* SEED_ENABLE_DEBUG */
-#ifdef SEED_ENABLE_GJSCOMPAT
- { "seed-gjs-compatibility", 0, 0, G_OPTION_ARG_NONE,
- &seed_arg_gjs_compatiblity, "Enable gjs compatibility", 0 },
-#endif /* SEED_ENABLE_GJSCOMPAT */
{ "seed-version", 0, 0, G_OPTION_ARG_NONE, &seed_arg_print_version,
"Print libseed version", 0 },
{
@@ -1795,12 +1827,10 @@ seed_init_constrained_with_context_and_group(gint* argc,
seed_object_set_property(eng->context, eng->global, "Seed", seed_obj_ref);
JSValueProtect(eng->context, seed_obj_ref);
-#ifdef SEED_ENABLE_GJSCOMPAT
window_obj_ref = JSObjectMake(eng->context, NULL, NULL);
seed_object_set_property(eng->context, eng->global, "window",
window_obj_ref);
JSValueProtect(eng->context, window_obj_ref);
-#endif
g_irepository_require(g_irepository_get_default(), "GObject", NULL, 0, 0);
g_irepository_require(g_irepository_get_default(), "GIRepository", NULL, 0,
0);
diff --git a/libseed/seed-importer.c b/libseed/seed-importer.c
index 7c83691..e2bd6cb 100644
--- a/libseed/seed-importer.c
+++ b/libseed/seed-importer.c
@@ -630,6 +630,7 @@ seed_importer_get_search_path(JSContextRef ctx, JSValueRef* exception)
static JSObjectRef seed_importer_handle_file(JSContextRef ctx,
const gchar* dir,
const gchar* file,
+ const gchar* module_name,
JSValueRef* exception);
static JSObjectRef
@@ -673,7 +674,7 @@ seed_importer_handle_native_module(JSContextRef ctx,
JSValueProtect(ctx, module_obj);
file_path = g_strconcat("libseed_", prop, ".js", NULL);
- seed_importer_handle_file(ctx, dir, file_path, exception);
+ seed_importer_handle_file(ctx, dir, file_path, prop, exception);
g_free(file_path);
return module_obj;
@@ -696,12 +697,13 @@ static JSObjectRef
seed_importer_handle_file(JSContextRef ctx,
const gchar* dir,
const gchar* file,
+ const gchar* module_name,
JSValueRef* exception)
{
JSContextRef nctx;
JSValueRef js_file_dirname;
JSObjectRef global, c_global;
- JSStringRef file_contents, file_name;
+ JSStringRef file_contents, file_name, initscript;
gchar *contents, *walk, *file_path, *canonical, *absolute_path;
char* normalized_path;
@@ -765,6 +767,17 @@ seed_importer_handle_file(JSContextRef ctx,
JSEvaluateScript(nctx, file_contents, NULL, file_name, 0, exception);
+ if (gi_imports && g_hash_table_lookup(gi_imports, module_name)) {
+ SEED_NOTE(IMPORTER, "Calling %s_init():", module_name);
+ gchar* initstr = g_strdup_printf(
+ "if (typeof(_init) === \"function\") { _init.apply(imports.gi.%s)}",
+ module_name);
+ initscript = JSStringCreateWithUTF8CString(initstr);
+ JSEvaluateScript(nctx, initscript, NULL, file_name, 0, exception);
+ JSStringRelease(initscript);
+ g_free(initstr);
+ }
+
// Does leak...but it's a debug statement.
SEED_NOTE(IMPORTER, "Evaluated file, exception: %s",
*exception ? seed_exception_to_string(ctx, *exception)
@@ -797,7 +810,7 @@ seed_importer_try_load(JSContextRef ctx,
// check if prop is a file or dir (imports['foo.js'] or imports.mydir)
file_path = g_build_filename(test_path, prop, NULL);
if (g_file_test(file_path, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_DIR)) {
- ret = seed_importer_handle_file(ctx, test_path, prop, exception);
+ ret = seed_importer_handle_file(ctx, test_path, prop, prop, exception);
g_free(file_path);
return ret;
}
@@ -806,7 +819,8 @@ seed_importer_try_load(JSContextRef ctx,
// check if prop is file ending with '.js'
file_path = g_build_filename(test_path, prop_as_js, NULL);
if (g_file_test(file_path, G_FILE_TEST_IS_REGULAR)) {
- ret = seed_importer_handle_file(ctx, test_path, prop_as_js, exception);
+ ret = seed_importer_handle_file(ctx, test_path, prop_as_js, prop,
+ exception);
g_free(file_path);
return ret;
}
@@ -849,21 +863,17 @@ seed_importer_search_dirs(JSContextRef ctx,
ret = NULL;
walk = path;
-#ifdef SEED_ENABLE_GJSCOMPAT
- if (seed_arg_gjs_compatiblity) {
- while (walk) {
- gchar* test_path = g_strconcat(walk->data, "/gjs", NULL);
+ while (walk) {
+ gchar* test_path = g_strconcat(walk->data, "/gjs", NULL);
- ret = seed_importer_try_load(ctx, test_path, script_path, prop,
- prop_as_js, prop_as_lib, exception);
- g_free(test_path);
- walk = walk->next;
+ ret = seed_importer_try_load(ctx, test_path, script_path, prop,
+ prop_as_js, prop_as_lib, exception);
+ g_free(test_path);
+ walk = walk->next;
- if (ret)
- break;
- }
+ if (ret)
+ break;
}
-#endif
if (!ret) {
walk = path;
while (walk) {
diff --git a/libseed/seed-path.h b/libseed/seed-path.h
index 3ebf081..876a5c7 100644
--- a/libseed/seed-path.h
+++ b/libseed/seed-path.h
@@ -1 +1 @@
-#define SEED_PREFIX_PATH "/home/kov/work/Bosch/usr""/share/seed-gtk4/"
+#define SEED_PREFIX_PATH "/home/danilo/webkitinstall""/share/seed-gtk4/"
diff --git a/libseed/seed-private.h b/libseed/seed-private.h
index 17627b7..6fde94e 100644
--- a/libseed/seed-private.h
+++ b/libseed/seed-private.h
@@ -54,8 +54,4 @@ struct _SeedEngine
#include "seed-exceptions.h"
#include "seed-importer.h"
-#ifdef SEED_ENABLE_GJSCOMPAT
-extern gboolean seed_arg_gjs_compatiblity;
-#endif
-
#endif
diff --git a/modules/DynamicObject/Makefile.in b/modules/DynamicObject/Makefile.in
index 02fb152..840791f 100644
--- a/modules/DynamicObject/Makefile.in
+++ b/modules/DynamicObject/Makefile.in
@@ -310,6 +310,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -357,7 +365,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/Makefile.am b/modules/Makefile.am
index 3ed114d..d363381 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -1,5 +1,3 @@
SUBDIRS = example sqlite canvas multiprocessing readline os sandbox dbus libxml cairo gtkbuilder gettext mpfr ffi DynamicObject xorg
-if SEED_ENABLE_GJSCOMPAT
SUBDIRS += gjs
-endif
diff --git a/modules/Makefile.in b/modules/Makefile.in
index 4f7c786..fbd07aa 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
@@ -87,7 +87,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-@SEED_ENABLE_GJSCOMPAT_TRUE@am__append_1 = gjs
subdir = modules
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
@@ -156,9 +155,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-DIST_SUBDIRS = example sqlite canvas multiprocessing readline os \
- sandbox dbus libxml cairo gtkbuilder gettext mpfr ffi \
- DynamicObject xorg gjs
+DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
@@ -287,6 +284,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -334,7 +339,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
@@ -407,7 +411,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = example sqlite canvas multiprocessing readline os sandbox \
dbus libxml cairo gtkbuilder gettext mpfr ffi DynamicObject \
- xorg $(am__append_1)
+ xorg gjs
all: all-recursive
.SUFFIXES:
diff --git a/modules/cairo/Makefile.in b/modules/cairo/Makefile.in
index 7ae59ea..9bb35e2 100644
--- a/modules/cairo/Makefile.in
+++ b/modules/cairo/Makefile.in
@@ -321,6 +321,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -368,7 +376,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/canvas/Makefile.in b/modules/canvas/Makefile.in
index d168ebf..a202222 100644
--- a/modules/canvas/Makefile.in
+++ b/modules/canvas/Makefile.in
@@ -312,6 +312,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -359,7 +367,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/dbus/Makefile.in b/modules/dbus/Makefile.in
index 29999c1..521c707 100644
--- a/modules/dbus/Makefile.in
+++ b/modules/dbus/Makefile.in
@@ -362,6 +362,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -409,7 +417,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/dbus/util/Makefile.in b/modules/dbus/util/Makefile.in
index 58f9121..fee40d2 100644
--- a/modules/dbus/util/Makefile.in
+++ b/modules/dbus/util/Makefile.in
@@ -224,6 +224,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -271,7 +279,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/example/Makefile.in b/modules/example/Makefile.in
index e7a6021..9369492 100644
--- a/modules/example/Makefile.in
+++ b/modules/example/Makefile.in
@@ -311,6 +311,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -358,7 +366,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/ffi/Makefile.in b/modules/ffi/Makefile.in
index af068b3..44821ce 100644
--- a/modules/ffi/Makefile.in
+++ b/modules/ffi/Makefile.in
@@ -310,6 +310,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -357,7 +365,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/gettext/Makefile.in b/modules/gettext/Makefile.in
index 8d2b1b3..e2d7f92 100644
--- a/modules/gettext/Makefile.in
+++ b/modules/gettext/Makefile.in
@@ -311,6 +311,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -358,7 +366,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/gjs/Makefile.am b/modules/gjs/Makefile.am
index a2f2e0b..d9a106c 100644
--- a/modules/gjs/Makefile.am
+++ b/modules/gjs/Makefile.am
@@ -1,10 +1,6 @@
-if SEED_ENABLE_GJSCOMPAT
-
-SUBDIRS = system
+SUBDIRS = system _gi
EXTRA_DIST= cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
gjs_extensiondir=$(datadir)/seed@SEED_GTK_VERSION@/gjs
gjs_extension_DATA = cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
-
-endif \ No newline at end of file
diff --git a/modules/gjs/Makefile.in b/modules/gjs/Makefile.in
index 33ecca5..4eb7a28 100644
--- a/modules/gjs/Makefile.in
+++ b/modules/gjs/Makefile.in
@@ -185,7 +185,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-DIST_SUBDIRS = system
+DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
@@ -314,6 +314,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -361,7 +369,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
@@ -432,10 +439,10 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-@SEED_ENABLE_GJSCOMPAT_TRUE@SUBDIRS = system
-@SEED_ENABLE_GJSCOMPAT_TRUE@EXTRA_DIST = cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
-@SEED_ENABLE_GJSCOMPAT_TRUE@gjs_extensiondir = $(datadir)/seed@SEED_GTK_VERSION@/gjs
-@SEED_ENABLE_GJSCOMPAT_TRUE@gjs_extension_DATA = cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
+SUBDIRS = system _gi
+EXTRA_DIST = cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
+gjs_extensiondir = $(datadir)/seed@SEED_GTK_VERSION@/gjs
+gjs_extension_DATA = cairo.js coverage.js format.js gettext.js jsUnit.js lang.js mainloop.js package.js signals.js
all: all-recursive
.SUFFIXES:
diff --git a/modules/gjs/_gi/Makefile.am b/modules/gjs/_gi/Makefile.am
new file mode 100644
index 0000000..925a99a
--- /dev/null
+++ b/modules/gjs/_gi/Makefile.am
@@ -0,0 +1,22 @@
+seedlibdir = ${libdir}/seed@SEED_GTK_VERSION@/gjs
+
+seedlib_LTLIBRARIES = \
+ libseed__gi.la
+
+libseed__gi_la_SOURCES = \
+ seed-gi.c
+
+AM_CPPFLAGS = \
+ -I@top_srcdir@/libseed/ \
+ $(GOBJECT_INTROSPECTION_CFLAGS) \
+ $(SEED_DEBUG_CFLAGS) \
+ $(SEED_PROFILE_CFLAGS)
+
+libseed__gi_la_LDFLAGS = \
+ -module -avoid-version \
+ $(GOBJECT_INTROSPECTION_LDFLAGS)
+
+libseed__gi_la_LIBADD = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(SEED_PROFILE_LIBS)
+
diff --git a/modules/gjs/_gi/Makefile.in b/modules/gjs/_gi/Makefile.in
new file mode 100644
index 0000000..271897b
--- /dev/null
+++ b/modules/gjs/_gi/Makefile.in
@@ -0,0 +1,776 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = modules/gjs/_gi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(seedlibdir)"
+LTLIBRARIES = $(seedlib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libseed__gi_la_DEPENDENCIES = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(am__DEPENDENCIES_1)
+am_libseed__gi_la_OBJECTS = seed-gi.lo
+libseed__gi_la_OBJECTS = $(am_libseed__gi_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libseed__gi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libseed__gi_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libseed__gi_la_SOURCES)
+DIST_SOURCES = $(libseed__gi_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CAIRO_MODULE = @BUILD_CAIRO_MODULE@
+BUILD_CANVAS_MODULE = @BUILD_CANVAS_MODULE@
+BUILD_DBUS_MODULE = @BUILD_DBUS_MODULE@
+BUILD_DYNAMICOBJECT_MODULE = @BUILD_DYNAMICOBJECT_MODULE@
+BUILD_EXAMPLE_MODULE = @BUILD_EXAMPLE_MODULE@
+BUILD_FFI_MODULE = @BUILD_FFI_MODULE@
+BUILD_GETTEXT_MODULE = @BUILD_GETTEXT_MODULE@
+BUILD_GTKBUILDER_MODULE = @BUILD_GTKBUILDER_MODULE@
+BUILD_LIBXML_MODULE = @BUILD_LIBXML_MODULE@
+BUILD_MPFR_MODULE = @BUILD_MPFR_MODULE@
+BUILD_MULTIPROCESSING_MODULE = @BUILD_MULTIPROCESSING_MODULE@
+BUILD_OS_MODULE = @BUILD_OS_MODULE@
+BUILD_READLINE_MODULE = @BUILD_READLINE_MODULE@
+BUILD_SQLITE_MODULE = @BUILD_SQLITE_MODULE@
+BUILD_XORG_MODULE = @BUILD_XORG_MODULE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LDFLAGS = @CAIRO_LDFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUSGLIB_CFLAGS = @DBUSGLIB_CFLAGS@
+DBUSGLIB_LDFLAGS = @DBUSGLIB_LDFLAGS@
+DBUSGLIB_LIBS = @DBUSGLIB_LIBS@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LDFLAGS = @DBUS_LDFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FFI_CFLAGS = @FFI_CFLAGS@
+FFI_LDFLAGS = @FFI_LDFLAGS@
+FFI_LIBS = @FFI_LIBS@
+FGREP = @FGREP@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LDFLAGS = @GDK_LDFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GMODULE_CFLAGS = @GMODULE_CFLAGS@
+GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_JS_CFLAGS = @GNOME_JS_CFLAGS@
+GNOME_JS_DIR = @GNOME_JS_DIR@
+GNOME_JS_LIBS = @GNOME_JS_LIBS@
+GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
+GOBJECT_INTROSPECTION_LDFLAGS = @GOBJECT_INTROSPECTION_LDFLAGS@
+GOBJECT_INTROSPECTION_LIBS = @GOBJECT_INTROSPECTION_LIBS@
+GOBJECT_INTROSPECTION_VERSION = @GOBJECT_INTROSPECTION_VERSION@
+GREP = @GREP@
+GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
+GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LDFLAGS = @GTK_LDFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LDFLAGS = @LIBXML_LDFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSS_CFLAGS = @LIBXSS_CFLAGS@
+LIBXSS_LIBS = @LIBXSS_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SED = @SED@
+SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
+SEED_GTK_VERSION = @SEED_GTK_VERSION@
+SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
+SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SQLITE_CFLAGS = @SQLITE_CFLAGS@
+SQLITE_LDFLAGS = @SQLITE_LDFLAGS@
+SQLITE_LIBS = @SQLITE_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WEBKIT_CFLAGS = @WEBKIT_CFLAGS@
+WEBKIT_LDFLAGS = @WEBKIT_LDFLAGS@
+WEBKIT_LIBS = @WEBKIT_LIBS@
+WEBKIT_PC = @WEBKIT_PC@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+seedlibdir = ${libdir}/seed@SEED_GTK_VERSION@/gjs
+seedlib_LTLIBRARIES = \
+ libseed__gi.la
+
+libseed__gi_la_SOURCES = \
+ seed-gi.c
+
+AM_CPPFLAGS = \
+ -I@top_srcdir@/libseed/ \
+ $(GOBJECT_INTROSPECTION_CFLAGS) \
+ $(SEED_DEBUG_CFLAGS) \
+ $(SEED_PROFILE_CFLAGS)
+
+libseed__gi_la_LDFLAGS = \
+ -module -avoid-version \
+ $(GOBJECT_INTROSPECTION_LDFLAGS)
+
+libseed__gi_la_LIBADD = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(SEED_PROFILE_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/gjs/_gi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu modules/gjs/_gi/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-seedlibLTLIBRARIES: $(seedlib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(seedlib_LTLIBRARIES)'; test -n "$(seedlibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(seedlibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(seedlibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(seedlibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(seedlibdir)"; \
+ }
+
+uninstall-seedlibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(seedlib_LTLIBRARIES)'; test -n "$(seedlibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(seedlibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(seedlibdir)/$$f"; \
+ done
+
+clean-seedlibLTLIBRARIES:
+ -test -z "$(seedlib_LTLIBRARIES)" || rm -f $(seedlib_LTLIBRARIES)
+ @list='$(seedlib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libseed__gi.la: $(libseed__gi_la_OBJECTS) $(libseed__gi_la_DEPENDENCIES) $(EXTRA_libseed__gi_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libseed__gi_la_LINK) -rpath $(seedlibdir) $(libseed__gi_la_OBJECTS) $(libseed__gi_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seed-gi.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(seedlibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-seedlibLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-seedlibLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-seedlibLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-seedlibLTLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-seedlibLTLIBRARIES \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-seedlibLTLIBRARIES
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/gjs/_gi/seed-gi.c b/modules/gjs/_gi/seed-gi.c
new file mode 100644
index 0000000..a090638
--- /dev/null
+++ b/modules/gjs/_gi/seed-gi.c
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2015 Collabora Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <config.h>
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include <glib.h>
+#include <seed-module.h>
+#include <config.h>
+
+#define GJS_COMPAT_VERSION (1 * 100 + 40) * 100 + 0
+
+#define NUMARG_EXPECTED_EXCEPTION(name, argc) \
+ seed_make_exception(ctx, exception, "ArgumentError", \
+ name " expected " argc " but got %zd", argumentCount); \
+ return seed_make_undefined(ctx);
+
+static SeedValue
+gjs_override_property(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+
+static SeedValue
+gjs_register_interface(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+static SeedValue
+gjs_register_type(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+
+static SeedValue
+gjs_add_interface(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+
+static SeedValue
+gjs_hook_up_vfunc(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+
+static SeedValue
+gjs_signal_new(SeedContext ctx,
+ SeedObject function,
+ SeedObject this_object,
+ size_t argumentCount,
+ const SeedValue arguments[],
+ SeedException* exception)
+{
+ // TODO: to be implemented.
+ seed_make_exception(ctx, exception, "ImplementationError",
+ "Not implemented yet");
+ return seed_make_undefined(ctx);
+}
+
+static seed_static_function module_funcs[]
+ = { { "override_property", gjs_override_property, 0 },
+ { "register_interface", gjs_register_interface, 0 },
+ { "register_type", gjs_register_type, 0 },
+ { "add_interface", gjs_add_interface, 0 },
+ { "hook_up_vfunc", gjs_hook_up_vfunc, 0 },
+ { "signal_new", gjs_signal_new, 0 },
+ { 0, 0, 0 } };
+
+static seed_class_definition system_def = {
+ 0, /* Version, always 0 */
+ SEED_CLASS_ATTRIBUTE_NO_SHARED_PROTOTYPE, /* JSClassAttributes */
+ "_gi", /* Class Name */
+ NULL, /* Parent Class */
+ NULL, /* Static Values */
+ module_funcs, /* Static Functions */
+ NULL,
+ NULL, /* Finalize */
+ NULL, /* Has Property */
+ NULL, /* Get Property */
+ NULL, /* Set Property */
+ NULL, /* Delete Property */
+ NULL, /* Get Property Names */
+ NULL, /* Call As Function */
+ NULL, /* Call As Constructor */
+ NULL, /* Has Instance */
+ NULL /* Convert To Type */
+};
+
+SeedObject
+gjs_compat_define_gi_stuff(SeedEngine* eng)
+{
+ SeedContext context = eng->context;
+ SeedObject module;
+ gboolean ret;
+
+ module = seed_make_object(context, seed_create_class(&system_def), NULL);
+ g_print("Module: %p\n", module);
+
+ SeedValue seed = seed_object_get_property(context, eng->global, "Seed");
+ SeedValue argv = seed_object_get_property(context, seed, "argv");
+
+ g_print("Seed: %p\n", seed);
+ g_print("Argv: %p\n", argv);
+
+ ret = seed_object_set_property(
+ context, module, "version",
+ (SeedValue) seed_value_from_int(context, GJS_COMPAT_VERSION, NULL));
+ g_print("Module: %d\n", ret);
+
+ return module;
+}
+
+SeedObject
+seed_module_init(SeedEngine* eng)
+{
+ return gjs_compat_define_gi_stuff(eng);
+}
diff --git a/modules/gjs/system/Makefile.am b/modules/gjs/system/Makefile.am
index 22f63af..20167d7 100644
--- a/modules/gjs/system/Makefile.am
+++ b/modules/gjs/system/Makefile.am
@@ -1,5 +1,3 @@
-if SEED_ENABLE_GJSCOMPAT
-
seedlibdir = ${libdir}/seed@SEED_GTK_VERSION@/gjs
seedlib_LTLIBRARIES = \
@@ -22,7 +20,3 @@ libseed_system_la_LIBADD = \
$(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
$(SEED_PROFILE_LIBS)
-endif
-
-
-
diff --git a/modules/gjs/system/Makefile.in b/modules/gjs/system/Makefile.in
index 54776a2..acb2bbe 100644
--- a/modules/gjs/system/Makefile.in
+++ b/modules/gjs/system/Makefile.in
@@ -132,11 +132,10 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(seedlibdir)"
LTLIBRARIES = $(seedlib_LTLIBRARIES)
am__DEPENDENCIES_1 =
-@SEED_ENABLE_GJSCOMPAT_TRUE@libseed_system_la_DEPENDENCIES = $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(am__DEPENDENCIES_1)
-am__libseed_system_la_SOURCES_DIST = seed-system.c
-@SEED_ENABLE_GJSCOMPAT_TRUE@am_libseed_system_la_OBJECTS = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ seed-system.lo
+libseed_system_la_DEPENDENCIES = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(am__DEPENDENCIES_1)
+am_libseed_system_la_OBJECTS = seed-system.lo
libseed_system_la_OBJECTS = $(am_libseed_system_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -146,8 +145,6 @@ libseed_system_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(libseed_system_la_LDFLAGS) $(LDFLAGS) \
-o $@
-@SEED_ENABLE_GJSCOMPAT_TRUE@am_libseed_system_la_rpath = -rpath \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(seedlibdir)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -183,7 +180,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libseed_system_la_SOURCES)
-DIST_SOURCES = $(am__libseed_system_la_SOURCES_DIST)
+DIST_SOURCES = $(libseed_system_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -311,6 +308,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -358,7 +363,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
@@ -429,26 +433,26 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-@SEED_ENABLE_GJSCOMPAT_TRUE@seedlibdir = ${libdir}/seed@SEED_GTK_VERSION@/gjs
-@SEED_ENABLE_GJSCOMPAT_TRUE@seedlib_LTLIBRARIES = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ libseed_system.la
+seedlibdir = ${libdir}/seed@SEED_GTK_VERSION@/gjs
+seedlib_LTLIBRARIES = \
+ libseed_system.la
-@SEED_ENABLE_GJSCOMPAT_TRUE@libseed_system_la_SOURCES = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ seed-system.c
+libseed_system_la_SOURCES = \
+ seed-system.c
-@SEED_ENABLE_GJSCOMPAT_TRUE@AM_CPPFLAGS = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ -I@top_srcdir@/libseed/ \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(GOBJECT_INTROSPECTION_CFLAGS) \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(SEED_DEBUG_CFLAGS) \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(SEED_PROFILE_CFLAGS)
+AM_CPPFLAGS = \
+ -I@top_srcdir@/libseed/ \
+ $(GOBJECT_INTROSPECTION_CFLAGS) \
+ $(SEED_DEBUG_CFLAGS) \
+ $(SEED_PROFILE_CFLAGS)
-@SEED_ENABLE_GJSCOMPAT_TRUE@libseed_system_la_LDFLAGS = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ -module -avoid-version \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(GOBJECT_INTROSPECTION_LDFLAGS)
+libseed_system_la_LDFLAGS = \
+ -module -avoid-version \
+ $(GOBJECT_INTROSPECTION_LDFLAGS)
-@SEED_ENABLE_GJSCOMPAT_TRUE@libseed_system_la_LIBADD = \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
-@SEED_ENABLE_GJSCOMPAT_TRUE@ $(SEED_PROFILE_LIBS)
+libseed_system_la_LIBADD = \
+ $(top_builddir)/libseed/libseed@SEED_GTK_VERSION@.la \
+ $(SEED_PROFILE_LIBS)
all: all-am
@@ -520,7 +524,7 @@ clean-seedlibLTLIBRARIES:
}
libseed_system.la: $(libseed_system_la_OBJECTS) $(libseed_system_la_DEPENDENCIES) $(EXTRA_libseed_system_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libseed_system_la_LINK) $(am_libseed_system_la_rpath) $(libseed_system_la_OBJECTS) $(libseed_system_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libseed_system_la_LINK) -rpath $(seedlibdir) $(libseed_system_la_OBJECTS) $(libseed_system_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
diff --git a/modules/gtkbuilder/Makefile.in b/modules/gtkbuilder/Makefile.in
index e0b9631..db33648 100644
--- a/modules/gtkbuilder/Makefile.in
+++ b/modules/gtkbuilder/Makefile.in
@@ -312,6 +312,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -359,7 +367,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/libxml/Makefile.in b/modules/libxml/Makefile.in
index 470edf4..e03e255 100644
--- a/modules/libxml/Makefile.in
+++ b/modules/libxml/Makefile.in
@@ -315,6 +315,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -362,7 +370,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/mpfr/Makefile.in b/modules/mpfr/Makefile.in
index 6ec7f93..5ac4599 100644
--- a/modules/mpfr/Makefile.in
+++ b/modules/mpfr/Makefile.in
@@ -314,6 +314,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -361,7 +369,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/multiprocessing/Makefile.in b/modules/multiprocessing/Makefile.in
index 362e833..e95ce3b 100644
--- a/modules/multiprocessing/Makefile.in
+++ b/modules/multiprocessing/Makefile.in
@@ -311,6 +311,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -358,7 +366,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/os/Makefile.in b/modules/os/Makefile.in
index f2111c6..2792b86 100644
--- a/modules/os/Makefile.in
+++ b/modules/os/Makefile.in
@@ -309,6 +309,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -356,7 +364,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/readline/Makefile.in b/modules/readline/Makefile.in
index 2b3559e..baa29c0 100644
--- a/modules/readline/Makefile.in
+++ b/modules/readline/Makefile.in
@@ -310,6 +310,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -357,7 +365,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/sandbox/Makefile.in b/modules/sandbox/Makefile.in
index c25f147..cc970c8 100644
--- a/modules/sandbox/Makefile.in
+++ b/modules/sandbox/Makefile.in
@@ -308,6 +308,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -355,7 +363,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/sqlite/Makefile.in b/modules/sqlite/Makefile.in
index 7901118..5212518 100644
--- a/modules/sqlite/Makefile.in
+++ b/modules/sqlite/Makefile.in
@@ -312,6 +312,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -359,7 +367,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/modules/xorg/Makefile.in b/modules/xorg/Makefile.in
index 6bad38c..e3f9216 100644
--- a/modules/xorg/Makefile.in
+++ b/modules/xorg/Makefile.in
@@ -312,6 +312,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -359,7 +367,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/seed.pc b/seed.pc
index 3165e66..6499968 100644
--- a/seed.pc
+++ b/seed.pc
@@ -1,4 +1,4 @@
-prefix=/home/kov/work/Bosch/usr
+prefix=/home/danilo/webkitinstall
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
bindir=${exec_prefix}/bin
@@ -10,4 +10,4 @@ Libs: -L${libdir} -lseed-gtk4
Name: Seed
Description: Seed Javascript Interpreter.
-Version: 3.8.2
+Version: 4.0.0
diff --git a/src/Makefile.in b/src/Makefile.in
index d507109..58d4128 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -278,6 +278,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -325,7 +333,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 3ad39f9..66946e2 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -284,6 +284,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -331,7 +339,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/c/Makefile.in b/tests/c/Makefile.in
index 0c9b3af..c16b26b 100644
--- a/tests/c/Makefile.in
+++ b/tests/c/Makefile.in
@@ -485,6 +485,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -532,7 +540,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/javascript/Makefile.in b/tests/javascript/Makefile.in
index 30818cc..018f890 100644
--- a/tests/javascript/Makefile.in
+++ b/tests/javascript/Makefile.in
@@ -488,6 +488,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -535,7 +543,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/javascript/gtypes/Makefile.in b/tests/javascript/gtypes/Makefile.in
index 97df2e3..bcd21b3 100644
--- a/tests/javascript/gtypes/Makefile.in
+++ b/tests/javascript/gtypes/Makefile.in
@@ -428,6 +428,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -475,7 +483,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/javascript/signals/Makefile.in b/tests/javascript/signals/Makefile.in
index e27dc8e..32484bc 100644
--- a/tests/javascript/signals/Makefile.in
+++ b/tests/javascript/signals/Makefile.in
@@ -428,6 +428,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -475,7 +483,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@
diff --git a/tests/javascript/structs/Makefile.in b/tests/javascript/structs/Makefile.in
index 7ab2787..d8cc3eb 100644
--- a/tests/javascript/structs/Makefile.in
+++ b/tests/javascript/structs/Makefile.in
@@ -428,6 +428,14 @@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBDL = @LIBDL@
@@ -475,7 +483,6 @@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RANLIB = @RANLIB@
SED = @SED@
SEED_DEBUG_CFLAGS = @SEED_DEBUG_CFLAGS@
-SEED_GJSCOMPAT_CFLAGS = @SEED_GJSCOMPAT_CFLAGS@
SEED_GTK_VERSION = @SEED_GTK_VERSION@
SEED_PROFILE_CFLAGS = @SEED_PROFILE_CFLAGS@
SEED_PROFILE_LIBS = @SEED_PROFILE_LIBS@