You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
6.6 KiB
184 lines
6.6 KiB
From 4de63456b411ae2b16cdb813cf021e3f2e19e5f3 Mon Sep 17 00:00:00 2001
|
|
From: Nirbheek Chauhan <nirbheek@gentoo.org>
|
|
Date: Thu, 17 Mar 2011 05:07:06 +0530
|
|
Subject: [PATCH] build: drop js-config support and xulrunner-1.8/1.9 cruft
|
|
|
|
In addition, add JS_LIBS to gjs_console_LDADD so that the
|
|
mozjs library in libdir from pkg-config is picked up first instead of
|
|
the library in /usr/lib which may be from a system install of spidermonkey
|
|
---
|
|
Makefile.am | 1 +
|
|
configure.ac | 114 +++++++---------------------------------------
|
|
gjs-internals-1.0.pc.in | 2 +-
|
|
3 files changed, 20 insertions(+), 97 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index b4814d6..3363ff5 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -121,6 +121,7 @@ gjs_console_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(GOBJECT_CFLAGS)
|
|
gjs_console_LDADD = \
|
|
+ $(JS_LIBS) \
|
|
$(GOBJECT_LIBS) \
|
|
libgjs.la
|
|
gjs_console_LDFLAGS = -R $(FIREFOX_JS_LIBDIR) -rdynamic
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 715f2c3..1903cc6 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -91,54 +91,26 @@ 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.
|
|
+## mozilla-js: Gecko 1.9 and 2.0, all distributions
|
|
+PKG_CHECK_EXISTS([mozilla-js], [JS_PACKAGE=mozilla-js],)
|
|
+PKG_CHECK_MODULES(JS, $JS_PACKAGE)
|
|
|
|
-AC_ARG_VAR([JS_CONFIG], [The js-config program to use])
|
|
-if 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=
|
|
+## 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`
|
|
|
|
- # 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`
|
|
-
|
|
- ## 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
|
|
+## 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
|
|
|
|
if test x"$FIREFOX_JS_LIBDIR" = x ; then
|
|
@@ -179,35 +151,6 @@ 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
|
|
-fi
|
|
-AC_SUBST([JS_EXTRA_CFLAGS])
|
|
-
|
|
AC_MSG_CHECKING([whether JSLocaleToUnicode takes a const char*])
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $JS_CFLAGS -Wno-unused -Werror"
|
|
@@ -258,27 +201,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@
|
|
|
|
--
|
|
1.7.3.4
|
|
|