From 4de63456b411ae2b16cdb813cf021e3f2e19e5f3 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan 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 ]])], - [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 ]])], - [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