summaryrefslogtreecommitdiff
path: root/extra/gjs
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-07-12 14:14:44 +0000
committerroot <root@rshg047.dnsready.net>2011-07-12 14:14:44 +0000
commitec9bd2e246eb94181a9254dcb2de7ddc191bb8cc (patch)
tree2f7af52e79332c2dc24b2c28ac3fceb0cbda7f10 /extra/gjs
parente03f4b9bc9da3327de94bc58aa92ecb836c1580d (diff)
Tue Jul 12 14:14:44 UTC 2011
Diffstat (limited to 'extra/gjs')
-rw-r--r--extra/gjs/PKGBUILD14
-rw-r--r--extra/gjs/gjs-0.7.14-js185-backport.patch436
2 files changed, 445 insertions, 5 deletions
diff --git a/extra/gjs/PKGBUILD b/extra/gjs/PKGBUILD
index 34fd492d4..3ce7f9db8 100644
--- a/extra/gjs/PKGBUILD
+++ b/extra/gjs/PKGBUILD
@@ -1,20 +1,24 @@
-# $Id: PKGBUILD 117650 2011-04-04 14:59:48Z ibiru $
+# $Id: PKGBUILD 130216 2011-07-04 12:55:31Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gjs
pkgver=0.7.14
-pkgrel=1
+pkgrel=2
pkgdesc="Javascript Bindings for GNOME"
arch=('i686' 'x86_64')
url="http://live.gnome.org/Gjs"
license=('GPL')
-depends=('gobject-introspection' 'xulrunner')
+depends=('cairo' 'dbus-glib' 'gobject-introspection' 'js')
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('3af6f449a505c419d4a0e5938737da8d1b9b09b33710cc1ac1edee2eaa86e348')
+source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2
+ gjs-0.7.14-js185-backport.patch)
+sha256sums=('3af6f449a505c419d4a0e5938737da8d1b9b09b33710cc1ac1edee2eaa86e348'
+ 'b1fd3b8aa5978c5b60bfe39ce4298e67b9baa190d9cbf1a0ebe47af356197335')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
sed -i 's|python|python2|' scripts/make-tests
+ patch -Np1 -i "${srcdir}/gjs-0.7.14-js185-backport.patch"
+ autoreconf -fi
./configure --prefix=/usr --disable-static
make
}
diff --git a/extra/gjs/gjs-0.7.14-js185-backport.patch b/extra/gjs/gjs-0.7.14-js185-backport.patch
new file mode 100644
index 000000000..b8b2082a3
--- /dev/null
+++ b/extra/gjs/gjs-0.7.14-js185-backport.patch
@@ -0,0 +1,436 @@
+From cef9c0835bfd8be105ff8905083d6b51d9010b8f Mon Sep 17 00:00:00 2001
+From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Date: Fri, 1 Apr 2011 21:04:57 +0200
+Subject: [PATCH 1/4] Conditionally adapt to JS_DestroyScript removal
+
+Upstream changed the behaviour of several things about JSScripts in
+http://hg.mozilla.org/mozilla-central/rev/c919a7271ac1
+
+We now have to use a JSObject instead of a JSScript in certain circumstances,
+and we no longer have to call JS_DestroyScript which no longer exists
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646471
+
+Conflicts:
+
+ configure.ac
+---
+ configure.ac | 1 +
+ modules/console.c | 6 ++++++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 715f2c3..f81704b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -160,6 +160,7 @@ AC_CHECK_LIB([mozjs], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME],
+ AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
+ AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
+ AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
++AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
+
+ AC_MSG_CHECKING([for mozilla-js >= 2 ])
+ if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
+diff --git a/modules/console.c b/modules/console.c
+index 49f891b..e6945be 100644
+--- a/modules/console.c
++++ b/modules/console.c
+@@ -161,7 +161,11 @@ gjs_console_interact(JSContext *context,
+ {
+ JSObject *object = JS_THIS_OBJECT(context, vp);
+ gboolean eof = FALSE;
++#ifdef HAVE_JS_DESTROYSCRIPT
+ JSScript *script = NULL;
++#else
++ JSObject *script = NULL;
++#endif
+ jsval result;
+ JSString *str;
+ GString *buffer = NULL;
+@@ -219,8 +223,10 @@ gjs_console_interact(JSContext *context,
+ }
+
+ next:
++#ifdef HAVE_JS_DESTROYSCRIPT
+ if (script)
+ JS_DestroyScript(context, script);
++#endif
+ g_string_free(buffer, TRUE);
+ } while (!eof);
+
+--
+1.7.5.4
+
+
+From 3c8396821c78e362c8b3a89a27dcf4d32e25ee05 Mon Sep 17 00:00:00 2001
+From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Date: Fri, 29 Apr 2011 01:01:03 +0200
+Subject: [PATCH 2/4] conditonally adapt to JS_BufferIsCompilableUnit changes
+
+Upstream added an argument to JS_BufferIsCompilableUnit in commit
+http://hg.mozilla.org/mozilla-central/rev/a773890b676f
+We now have to tell if the bytes are utf8 or not.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646471
+---
+ configure.ac | 1 +
+ modules/console.c | 4 ++++
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f81704b..270bc46 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -161,6 +161,7 @@ AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [
+ AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
+ AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
+ AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
++AC_CHECK_LIB([mozjs], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
+
+ AC_MSG_CHECKING([for mozilla-js >= 2 ])
+ if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
+diff --git a/modules/console.c b/modules/console.c
+index e6945be..8e20db3 100644
+--- a/modules/console.c
++++ b/modules/console.c
+@@ -196,7 +196,11 @@ gjs_console_interact(JSContext *context,
+ g_string_append(buffer, temp_buf);
+ g_free(temp_buf);
+ lineno++;
++#ifdef HAVE_JS_DECODEUTF8
++ } while (!JS_BufferIsCompilableUnit(context, JS_TRUE, object, buffer->str, buffer->len));
++#else
+ } while (!JS_BufferIsCompilableUnit(context, object, buffer->str, buffer->len));
++#endif
+
+ script = JS_CompileScript(context, object, buffer->str, buffer->len, "typein",
+ startline);
+--
+1.7.5.4
+
+
+From 00dd38de7ac8e82ac35c40909707fa91665c3102 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Thu, 5 May 2011 12:49:09 -0400
+Subject: [PATCH 3/4] JS_CLASS_TRACE is a preprocessor macro, can't use
+ AC_CHECK_LIB
+
+Conflicts:
+
+ configure.ac
+---
+ configure.ac | 24 ++++++++++++++++++++++++
+ 1 files changed, 24 insertions(+), 0 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 270bc46..d259471 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -230,6 +230,30 @@ if test "$have_jslocale_to_unicode_const" = yes; then
+ AC_DEFINE([JS_LOCALETOUNICODE_NEEDS_CONST_CHAR], [1], [Define if JSLocaleToUnicode takes a const char* for its src])
+ fi
+
++save_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS $JS_CFLAGS"
++AC_MSG_CHECKING([for JS_CLASS_TRACE macro])
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[
++ #include <jsapi.h>
++ #ifndef JS_CLASS_TRACE
++ #error "No JS_CLASS_TRACE"
++ #endif
++ ]],
++ [[(void) 0;]]
++ )],
++ [have_js_class_trace=yes],
++ [have_js_class_trace=no])
++
++if test "x$have_js_class_trace" = xyes; then
++ AC_MSG_RESULT([yes])
++ AC_DEFINE([HAVE_JS_CLASS_TRACE], [1], [Define if we still have JS_CLASS_TRACE])
++else
++ AC_MSG_RESULT([no])
++fi
++CFLAGS="$save_CFLAGS"
++
+ common_packages="gobject-2.0 >= gobject_required_version $JS_PACKAGE"
+ gjs_packages="gmodule-2.0 gthread-2.0 $common_packages"
+ gjs_gi_packages="gobject-introspection-1.0 >= 0.10.1 $common_packages"
+--
+1.7.5.4
+
+
+From 5553cdd691ffddae3e3ffa5cc75e6575a237d0b7 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Wed, 4 May 2011 14:14:18 -0400
+Subject: [PATCH 4/4] Support compilation with standalone mozjs185 release
+
+Adjust the detection logic so that we look for mozjs-185.pc first. If
+we have this, we can skip all kinds of insanity.
+
+See https://bugzilla.mozilla.org/show_bug.cgi?id=628723
+for the discussion about creating this release.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646369
+
+Conflicts:
+
+ configure.ac
+---
+ configure.ac | 218 ++++++++++++++++++++++++++++++++--------------------------
+ 1 files changed, 121 insertions(+), 97 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d259471..cb54ffc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -91,124 +91,148 @@ m4_define(gobject_required_version, 2.18.0)
+ AC_CHECK_HEADERS([malloc.h])
+ AC_CHECK_FUNCS(mallinfo)
+
+-# Look for Spidermonkey. If js-config exists, use that;
+-# otherwise we try some pkgconfig files from various distributions.
++# First, try separate mozjs185 release
++AC_MSG_CHECKING([for standalone mozjs])
++PKG_CHECK_EXISTS([mozjs185], JS_PACKAGE=mozjs185,)
++if test x$JS_PACKAGE != x; then
++ FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
++ MOZJS_IS_STANDALONE=yes
++ MOZJS_LIB=mozjs185
++ AC_MSG_RESULT([yes])
++ PKG_CHECK_MODULES(JS, $JS_PACKAGE)
++else
++ AC_MSG_RESULT([no])
++ MOZJS_LIB=mozjs
++fi
++
++# If we didn't find mozjs185 (the standalone spidermonkey); look for
++# one from Firefox/XULRunner. If js-config exists, use that; otherwise
++# we try some pkgconfig files from various distributions.
+
+ AC_ARG_VAR([JS_CONFIG], [The js-config program to use])
+-if test "$ac_cv_env_JS_CONFIG_set" != "set"; then
++if test x$JS_PACKAGE = x && test "$ac_cv_env_JS_CONFIG_set" != "set"; then
+ AC_PATH_PROG([JS_CONFIG], [js-config], [])
+ fi
+
+-if test -n "$JS_CONFIG"; then
+- JS_CFLAGS="$($JS_CONFIG --cflags)"
+- JS_LIBS="$($JS_CONFIG --libs)"
+- FIREFOX_JS_LIBDIR="$($JS_CONFIG --libdir)"
+- JS_PACKAGE=
+-
+- # js-config gives almost usable CFLAGS, we must define one of XP_BEOS,
+- # XP_OS2, XP_WIN or XP_UNIX
+- JS_CFLAGS="$JS_CFLAGS -DXP_UNIX"
+-else
+- ## spidermonkey .pc file name varies across distributions and Gecko version
+- ##
+- ## mozilla-js: Gecko 1.9, all distributions
+- ## xulrunner-js: Gecko 1.8 (and earlier?) Debian/Ubuntu
+- ## firefox-js: ???
+- ##
+- ## Checking for mozilla-js first will hopefully get us the newest version
+- ## of spidermonkey.
+- PKG_CHECK_EXISTS([mozilla-js], [JS_PACKAGE=mozilla-js],
+- [PKG_CHECK_EXISTS([xulrunner-js], [JS_PACKAGE=xulrunner-js], [JS_PACKAGE=firefox-js])])
+-
+- PKG_CHECK_MODULES(JS, $JS_PACKAGE)
+-
+- ## some flavors of Firefox .pc only set sdkdir, not libdir
+- FIREFOX_JS_SDKDIR=`$PKG_CONFIG --variable=sdkdir $JS_PACKAGE`
+- FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
++if test x$JS_PACKAGE = x; then
++ if test -n "$JS_CONFIG"; then
++ JS_CFLAGS="$($JS_CONFIG --cflags)"
++ JS_LIBS="$($JS_CONFIG --libs)"
++ FIREFOX_JS_LIBDIR="$($JS_CONFIG --libdir)"
++ JS_PACKAGE=
++
++ # js-config gives almost usable CFLAGS, we must define one of XP_BEOS,
++ # XP_OS2, XP_WIN or XP_UNIX
++ JS_CFLAGS="$JS_CFLAGS -DXP_UNIX"
++ else
++ ## spidermonkey .pc file name varies across distributions and Gecko version
++ ##
++ ## mozilla-js: Gecko 1.9, all distributions
++ ## xulrunner-js: Gecko 1.8 (and earlier?) Debian/Ubuntu
++ ## firefox-js: ???
++ ##
++ ## Checking for mozilla-js first will hopefully get us the newest version
++ ## of spidermonkey.
++ if test x$JS_PACKAGE = x; then
++ PKG_CHECK_EXISTS([mozilla-js], [JS_PACKAGE=mozilla-js],)
++
++ fi
++ if test x$JS_PACKAGE = x; then
++ PKG_CHECK_EXISTS([xulrunner-js], [JS_PACKAGE=xulrunner-js])
++ fi
++ if test x$JS_PACKAGE = x; then
++ PKG_CHECK_EXISTS([firefox-js], [JS_PACKAGE=firefox-js])
++ fi
++ if test x$JS_PACKAGE = x; then
++ AC_MSG_ERROR([Unable to find spidermonkey package])
++ fi
++
++ PKG_CHECK_MODULES(JS, $JS_PACKAGE)
++
++ ## some flavors of Firefox .pc only set sdkdir, not libdir
++ FIREFOX_JS_SDKDIR=`$PKG_CONFIG --variable=sdkdir $JS_PACKAGE`
++ FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
++
++ ## Ubuntu does not set libdir in mozilla-js.pc
++ if test x"$FIREFOX_JS_LIBDIR" = x ; then
++ ## Ubuntu returns xulrunner-devel as the sdkdir, but for the
++ ## libdir we want the runtime location on the target system,
++ ## so can't use -devel.
++ ## The library is in the non-devel directory also.
++ ## Don't ask me why it's in two places.
++ FIREFOX_JS_LIBDIR=`echo "$FIREFOX_JS_SDKDIR" | sed -e 's/-devel//g'`
++
++ if ! test -d "$FIREFOX_JS_LIBDIR" ; then
++ FIREFOX_JS_LIBDIR=
++ fi
++ fi
++ fi
+
+- ## Ubuntu does not set libdir in mozilla-js.pc
+ if test x"$FIREFOX_JS_LIBDIR" = x ; then
+- ## Ubuntu returns xulrunner-devel as the sdkdir, but for the
+- ## libdir we want the runtime location on the target system,
+- ## so can't use -devel.
+- ## The library is in the non-devel directory also.
+- ## Don't ask me why it's in two places.
+- FIREFOX_JS_LIBDIR=`echo "$FIREFOX_JS_SDKDIR" | sed -e 's/-devel//g'`
+-
+- if ! test -d "$FIREFOX_JS_LIBDIR" ; then
+- FIREFOX_JS_LIBDIR=
+- fi
++ AC_MSG_ERROR([Could not figure out where Firefox JavaScript library lives])
+ fi
+-fi
+
+-if test x"$FIREFOX_JS_LIBDIR" = x ; then
+- AC_MSG_ERROR([Could not figure out where Firefox JavaScript library lives])
++ ## workaround for Ubuntu Hardy bug where mozilla-js.pc gives CFLAGS
++ ## -I.../stable while jsapi.h is in .../unstable
++ AC_MSG_CHECKING([if SpiderMonkey needs extra compiler flags])
++ save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS $JS_CFLAGS"
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
++ [js_extra_cflags_needed=no],
++ [js_extra_cflags_needed=yes])
++ CFLAGS="$save_CFLAGS"
++ AC_MSG_RESULT([$js_extra_cflags_needed])
++
++ JS_EXTRA_CFLAGS=
++ if test "$js_extra_cflags_needed" = yes; then
++ try_cflags="-I`$PKG_CONFIG --variable=includedir $JS_PACKAGE`/unstable"
++ AC_MSG_CHECKING([if $try_cflags works])
++ save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS $JS_CFLAGS $try_cflags"
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
++ [AC_MSG_RESULT([yes])
++ JS_EXTRA_CFLAGS="$try_cflags"],
++ [AC_MSG_RESULT([no])])
++ CFLAGS="$save_CFLAGS"
++
++ if test x"$JS_EXTRA_CFLAGS" = x; then
++ AC_MSG_ERROR([Unable to determine extra compiler flags needed])
++ fi
++ fi
++ AC_SUBST([JS_EXTRA_CFLAGS])
++
++ AC_MSG_CHECKING([for mozilla-js >= 1.9.2 ])
++ if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 1.9.2`; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_ERROR([$JS_PACKAGE >= 1.9.2 is required])
++ fi
+ fi
+
+ AC_SUBST(JS_PACKAGE)
+ AC_SUBST(FIREFOX_JS_LIBDIR)
+
+-AC_MSG_CHECKING([for mozilla-js >= 1.9.2 ])
+-if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 1.9.2`; then
+- AC_MSG_RESULT([yes])
+-else
+- AC_MSG_ERROR([$JS_PACKAGE >= 1.9.2 is required])
+-fi
+-
+-AC_CHECK_LIB([mozjs], [JS_GetStringBytes], AC_DEFINE([HAVE_JS_GETSTRINGBYTES], [1], [Define if we still have JS_GetStringBytes]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME], [1], [Define if we still have JS_GetFunctionName]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
+-AC_CHECK_LIB([mozjs], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
+-
+-AC_MSG_CHECKING([for mozilla-js >= 2 ])
+-if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
+- AC_MSG_RESULT([yes])
+- AC_DEFINE(HAVE_MOZJS_2, [1], [Define if mozilla-js is at least 2])
+- AC_CHECK_LIB([mozjs], [JS_FreezeObject], AC_DEFINE([HAVE_JS_FREEZEOBJECT], [1], [Define if we have JS_FreezeObject]),
++AC_CHECK_LIB([$MOZJS_LIB], [JS_GetStringBytes], AC_DEFINE([HAVE_JS_GETSTRINGBYTES], [1], [Define if we still have JS_GetStringBytes]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME], [1], [Define if we still have JS_GetFunctionName]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_CLASS_TRACE], AC_DEFINE([HAVE_JS_CLASS_TRACE], [1], [Define if we still have JS_CLASS_TRACE]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
++AC_CHECK_LIB([$MOZJS_LIB], [JS_FreezeObject], AC_DEFINE([HAVE_JS_FREEZEOBJECT], [1], [Define if we have JS_FreezeObject]),
+ , [$JS_LIBS])
+- AC_CHECK_LIB([mozjs], [JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),
++AC_CHECK_LIB([$MOZJS_LIB], [JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),
+ , [$JS_LIBS])
+- AC_CHECK_LIB([mozjs], [JS_EndPC], AC_DEFINE([HAVE_JS_ENDPC], [1], [Define if we have JS_EndPC]),
++AC_CHECK_LIB([$MOZJS_LIB], [JS_EndPC], AC_DEFINE([HAVE_JS_ENDPC], [1], [Define if we have JS_EndPC]),
+ , [$JS_LIBS])
+- AC_CHECK_LIB([mozjs], [JS_NewCompartmentAndGlobalObject],
++AC_CHECK_LIB([$MOZJS_LIB], [JS_NewCompartmentAndGlobalObject],
+ AC_DEFINE([HAVE_JS_NEWCOMPARTMENTANDGLOBALOBJECT], [1], [Define if we have JS_NewCompartmentAndGlobalObject]),
+ , [$JS_LIBS])
+
+-else
+- AC_MSG_RESULT([no])
+-fi
+-
+-## workaround for Ubuntu Hardy bug where mozilla-js.pc gives CFLAGS
+-## -I.../stable while jsapi.h is in .../unstable
+-AC_MSG_CHECKING([if SpiderMonkey needs extra compiler flags])
+-save_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS $JS_CFLAGS"
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
+- [js_extra_cflags_needed=no],
+- [js_extra_cflags_needed=yes])
+-CFLAGS="$save_CFLAGS"
+-AC_MSG_RESULT([$js_extra_cflags_needed])
+-
+-JS_EXTRA_CFLAGS=
+-if test "$js_extra_cflags_needed" = yes; then
+- try_cflags="-I`$PKG_CONFIG --variable=includedir $JS_PACKAGE`/unstable"
+- AC_MSG_CHECKING([if $try_cflags works])
+- save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS $JS_CFLAGS $try_cflags"
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
+- [AC_MSG_RESULT([yes])
+- JS_EXTRA_CFLAGS="$try_cflags"],
+- [AC_MSG_RESULT([no])])
+- CFLAGS="$save_CFLAGS"
+-
+- if test x"$JS_EXTRA_CFLAGS" = x; then
+- AC_MSG_ERROR([Unable to determine extra compiler flags needed])
+- fi
++if test x$MOZJS_IS_STANDALONE = xyes || `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
++ AC_DEFINE(HAVE_MOZJS_2, [1], [Define if mozilla-js is at least 2])
+ fi
+-AC_SUBST([JS_EXTRA_CFLAGS])
+
+ AC_MSG_CHECKING([whether JSLocaleToUnicode takes a const char*])
+ save_CFLAGS="$CFLAGS"
+--
+1.7.5.4
+