[gjs] build: drop js-config support, xulrunner-1.8/1.9 cruft, etc



commit d352feac6dddf1850483a2834908f966db25d1aa
Author: Nirbheek Chauhan <nirbheek gentoo org>
Date:   Fri May 6 04:53:27 2011 +0530

    build: drop js-config support, xulrunner-1.8/1.9 cruft, etc
    
    * The last working version of mozjs/xulrunner is 1.9.2.x, so drop support for
      everything before that.
    * Spidermonkey got a pkg-config file (gnome bug 646369), so we can get rid of
      js-config script support.
    * Use AC_CHECK_FUNC instead of AC_CHECK_LIB, which avoids having to guess the
      spidermonkey library name, and is the "preferred" way according to
      gnome bug 646369#c3.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=644971

 configure.ac            |  174 +++++++++++------------------------------------
 gjs-internals-1.0.pc.in |    2 +-
 2 files changed, 42 insertions(+), 134 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 1a99c37..bdd6bf1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -97,137 +97,66 @@ 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 x$JS_PACKAGE = x && test "$ac_cv_env_JS_CONFIG_set" != "set"; then
-    AC_PATH_PROG([JS_CONFIG], [js-config], [])
 fi
 
+# If we didn't find mozjs185 (the standalone spidermonkey), look for mozilla-js
 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"
+    AC_MSG_CHECKING([for mozilla-js 1.9.2])
+    PKG_CHECK_EXISTS([mozilla-js >= 1.9.2], JS_PACKAGE=mozilla-js,)
+    if test x$JS_PACKAGE != x; then
+        AC_MSG_RESULT([yes])
     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
+        AC_MSG_ERROR([Could not find mozilla-js 1.9.2])
     fi
 
-    if test x"$FIREFOX_JS_LIBDIR" = x ; then
-       AC_MSG_ERROR([Could not figure out where Firefox JavaScript library lives])
-    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`
 
-    ## 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
+    ## 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
-    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])
+    if test x"$FIREFOX_JS_LIBDIR" = x; then
+        AC_MSG_ERROR([Could not figure out where the Firefox JavaScript library lives])
     fi
 fi
 
 AC_SUBST(JS_PACKAGE)
 AC_SUBST(FIREFOX_JS_LIBDIR)
 
-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_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_LIB], [JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),
-              , [$JS_LIBS])
-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_LIB], [JS_NewCompartmentAndGlobalObject],
-              AC_DEFINE([HAVE_JS_NEWCOMPARTMENTANDGLOBALOBJECT], [1], [Define if we have JS_NewCompartmentAndGlobalObject]),
-              , [$JS_LIBS])
+saved_CFLAGS=$CFLAGS
+saved_LIBS=$LIBS
+CFLAGS=$JS_CFLAGS
+LIBS=$JS_LIBS
+AC_CHECK_FUNC([JS_GetStringBytes], AC_DEFINE([HAVE_JS_GETSTRINGBYTES], [1], [Define if we still have JS_GetStringBytes]),)
+AC_CHECK_FUNC([JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME], [1], [Define if we still have JS_GetFunctionName]),)
+AC_CHECK_FUNC([JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),)
+AC_CHECK_FUNC([JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),)
+AC_CHECK_FUNC([JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),)
+AC_CHECK_FUNC([JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),)
+AC_CHECK_FUNC([JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),)
+AC_CHECK_FUNC([JS_FreezeObject], AC_DEFINE([HAVE_JS_FREEZEOBJECT], [1], [Define if we have JS_FreezeObject]),)
+AC_CHECK_FUNC([JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),)
+AC_CHECK_FUNC([JS_EndPC], AC_DEFINE([HAVE_JS_ENDPC], [1], [Define if we have JS_EndPC]),)
+AC_CHECK_FUNC([JS_NewCompartmentAndGlobalObject], AC_DEFINE([HAVE_JS_NEWCOMPARTMENTANDGLOBALOBJECT], [1], [Define if we have JS_NewCompartmentAndGlobalObject]),)
+CFLAGS=$saved_CFLAGS
+LIBS=$saved_LIBS
 
 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])
@@ -307,27 +236,6 @@ PKG_CHECK_MODULES([GJSTESTS], [$gjstests_packages])
 GI_DATADIR=$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
 AC_SUBST(GI_DATADIR)
 
-if test x"$JS_PACKAGE" = x; then
-    # if JS_PACKAGE is undefined, pkg-config modules don't include
-    # SpiderMonkey and we need to deal with it ourselves
-    GJS_CFLAGS="$GJS_CFLAGS $JS_CFLAGS"
-    GJS_LIBS="$GJS_LIBS $JS_LIBS"
-    GJS_GI_CFLAGS="$GJS_GI_CFLAGS $JS_CFLAGS"
-    GJS_GI_LIBS="$GJS_GI_LIBS $JS_LIBS"
-    GJS_CAIRO_CFLAGS="$GJS_CAIRO_CFLAGS $JS_CFLAGS"
-    GJS_CAIRO_LIBS="$GJS_CAIRO_LIBS $JS_LIBS"
-    GJS_DBUS_CFLAGS="$GJS_DBUS_CFLAGS $JS_CFLAGS"
-    GJS_DBUS_LIBS="$GJS_DBUS_LIBS $JS_LIBS"
-    GJSTESTS_CFLAGS="$GJSTESTS_CFLAGS $JS_CFLAGS"
-    GJSTESTS_LIBS="$GJSTEST_LIBS $JS_LIBS"
-fi
-
-GJS_CFLAGS="$GJS_CFLAGS $JS_EXTRA_CFLAGS"
-GJS_GI_CFLAGS="$GJS_GI_CFLAGS $JS_EXTRA_CFLAGS"
-GJS_CAIRO_CFLAGS="$GJS_CAIRO_CFLAGS $JS_EXTRA_CFLAGS"
-GJS_DBUS_CFLAGS="$GJS_DBUS_CFLAGS $JS_EXTRA_CFLAGS"
-GJSTESTS_CFLAGS="$GJSTESTS_CFLAGS $JS_EXTRA_CFLAGS"
-
 # readline
 LIBS_no_readline=$LIBS
 
diff --git a/gjs-internals-1.0.pc.in b/gjs-internals-1.0.pc.in
index 701dd42..e4517cb 100644
--- a/gjs-internals-1.0.pc.in
+++ b/gjs-internals-1.0.pc.in
@@ -10,7 +10,7 @@ jsdir= gjsjsdir@
 jsnativedir= gjsnativedir@
 mozjslibdir= FIREFOX_JS_LIBDIR@
 
-Cflags: -I${includedir}/gjs-1.0 @JS_EXTRA_CFLAGS@
+Cflags: -I${includedir}/gjs-1.0
 Libs: -Wl,--rpath=${mozjslibdir}
 Requires: gjs-1.0 gobject-introspection-1.0 @JS_PACKAGE@
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]