summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Persch <chpe@src.gnome.org>2006-01-15 18:48:46 +0000
committerChristian Persch <chpe@src.gnome.org>2006-01-15 18:48:46 +0000
commitecc632b75a3844cafc4f36f822cb8e53a9442c47 (patch)
tree2f34b9faba5ec063e7d0d5a9378419d0f00c8507
parente25ebc5c282c0d7343c9e9d094c64a48a838e53e (diff)
downloadyelp-ecc632b75a3844cafc4f36f822cb8e53a9442c47.tar.gz
head -5 ChangeLog
-rw-r--r--ChangeLog7
-rw-r--r--m4/gecko.m4173
2 files changed, 122 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ce5b8ef..f34cf9e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-15 Christian Persch <chpe@cvs.gnome.org>
+
+ * m4/gecko.m4:
+
+ Updated from Epiphany: correct gecko version check
+ if mozilla-config.h includes other files (multi-arch).
+
2006-01-15 Don Scorgie <dscorgie@cvs.gnome.org>
* data/ui/yelp.glade:
diff --git a/m4/gecko.m4 b/m4/gecko.m4
index 7a8d8164..22f95151 100644
--- a/m4/gecko.m4
+++ b/m4/gecko.m4
@@ -15,7 +15,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-# GECKO_INIT([VARIABLE])
+# GECKO_INIT(VARIABLE,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
#
# Checks for gecko, and aborts if it's not found
#
@@ -45,46 +45,63 @@ AC_MSG_CHECKING([which gecko to use])
AC_ARG_WITH([gecko],
AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@],
- [Which gecko engine to use (default: autodetect)]))
+ [Which gecko engine to use (autodetected by default)]))
# Backward compat
AC_ARG_WITH([mozilla],[],[with_gecko=$withval],[])
-_GECKO=$with_gecko
+gecko_cv_gecko=$with_gecko
# Autodetect gecko
_geckos="firefox mozilla-firefox seamonkey mozilla xulrunner"
-if test -z "$_GECKO"; then
+if test -z "$gecko_cv_gecko"; then
for lizard in $_geckos; do
if $PKG_CONFIG --exists $lizard-xpcom; then
- _GECKO=$lizard
+ gecko_cv_gecko=$lizard
break;
fi
done
fi
-if test "x$_GECKO" = "x"; then
- AC_MSG_ERROR([No gecko found])
-elif ! ( echo "$_geckos" | egrep "(^| )$_GECKO(\$| )" > /dev/null); then
- AC_MSG_ERROR([Unknown gecko "$_GECKO" specified])
+AC_MSG_RESULT([$gecko_cv_gecko])
+
+if test "x$gecko_cv_gecko" = "x"; then
+ ifelse([$3],,[AC_MSG_ERROR([No gecko found; you may need to adjust PKG_CONFIG_PATH or install a mozilla/firefox/xulrunner -devel package])],[$3])
+ gecko_cv_have_gecko=no
+elif ! ( echo "$_geckos" | egrep "(^| )$gecko_cv_gecko(\$| )" > /dev/null); then
+ AC_MSG_ERROR([Unknown gecko "gecko_cv_gecko" specified])
+else
+ ifelse([$2],,[],[$2])
+ gecko_cv_have_gecko=yes
fi
-AC_MSG_RESULT([$_GECKO])
+# ****************
+# Define variables
+# ****************
-case "$_GECKO" in
-mozilla) _GECKO_FLAVOUR=mozilla ;;
-seamonkey) _GECKO_FLAVOUR=mozilla ;;
-*firefox) _GECKO_FLAVOUR=toolkit ;;
-xulrunner) _GECKO_FLAVOUR=toolkit ;;
+if test "$gecko_cv_have_gecko" = "yes"; then
+
+case "$gecko_cv_gecko" in
+mozilla) gecko_cv_gecko_flavour=mozilla ;;
+seamonkey) gecko_cv_gecko_flavour=mozilla ;;
+*firefox) gecko_cv_gecko_flavour=toolkit ;;
+xulrunner) gecko_cv_gecko_flavour=toolkit ;;
esac
+_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-gtkmozembed`"
+_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-gtkmozembed`"
+_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-gtkmozembed`"
+
+fi # if gecko_cv_have_gecko
-_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir $_GECKO-gtkmozembed`"
-_GECKO_HOME="`$PKG_CONFIG --variable=libdir $_GECKO-gtkmozembed`"
-_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix $_GECKO-gtkmozembed`"
+if test "$gecko_cv_gecko_flavour" = "toolkit"; then
+ AC_DEFINE([HAVE_MOZILLA_TOOLKIT],[1],[Define if mozilla is of the toolkit flavour])
+fi
+
+AM_CONDITIONAL([HAVE_MOZILLA_TOOLKIT],[test "$gecko_cv_gecko_flavour" = "toolkit"])
-$1[]=$_GECKO
-$1[]_FLAVOUR=$_GECKO_FLAVOUR
+$1[]=$gecko_cv_gecko
+$1[]_FLAVOUR=$gecko_cv_gecko_flavour
$1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT
$1[]_HOME=$_GECKO_HOME
$1[]_PREFIX=$_GECKO_PREFIX
@@ -101,6 +118,8 @@ _GECKO_EXTRA_CFLAGS=
_GECKO_EXTRA_CXXFLAGS=
_GECKO_EXTRA_LDFLAGS=
+if test "$gecko_cv_have_gecko" = "yes"; then
+
AC_LANG_PUSH([C++])
_SAVE_CXXFLAGS=$CXXFLAGS
@@ -126,10 +145,14 @@ if test "$gecko_cv_have_usable_wchar_option" = "yes"; then
AM_CXXFLAGS="$AM_CXXFLAGS -fshort-wchar"
fi
+fi # if gecko_cv_have_gecko
+
# **************
# Check for RTTI
# **************
+if test "$gecko_cv_have_gecko" = "yes"; then
+
AC_MSG_CHECKING([whether to enable C++ RTTI])
AC_ARG_ENABLE([cpp-rtti],
AS_HELP_STRING([--enable-cpp-rtti],[Enable C++ RTTI]),
@@ -141,10 +164,14 @@ if test "$enable_cpp_rtti" = "no"; then
AM_CXXFLAGS="-fno-rtti $AM_CXXFLAGS"
fi
+fi # if gecko_cv_have_gecko
+
# *************
# Various tests
# *************
+if test "$gecko_cv_have_gecko" = "yes"; then
+
AC_LANG_PUSH([C++])
_SAVE_CPPFLAGS="$CPPFLAGS"
@@ -165,7 +192,7 @@ AC_RUN_IFELSE(
AC_MSG_RESULT([$result])
AC_MSG_CHECKING([[whether we have a gecko debug build]])
-AC_PREPROC_IFELSE(
+AC_COMPILE_IFELSE(
[AC_LANG_SOURCE(
[[#include <mozilla-config.h>
#if !defined(MOZ_REFLOW_PERF) || !defined(MOZ_REFLOW_PERF_DSP)
@@ -185,47 +212,70 @@ if test "$gecko_cv_have_debug" = "yes"; then
AM_CXXFLAGS="-DDEBUG -D_DEBUG $AM_CXXFLAGS"
fi
+fi # if gecko_cv_have_gecko
+
# ***********************
# Check for gecko version
# ***********************
-AC_MSG_CHECKING([[for gecko version]])
+if test "$gecko_cv_have_gecko" = "yes"; then
-_GECKO_VERSION_SPLIT=`cat $_GECKO_INCLUDE_ROOT/mozilla-config.h | grep MOZILLA_VERSION_U | awk '{ print $[3]; }' | tr ".ab+" " "`
-if test -z "$_GECKO_VERSION_SPLIT"; then
- _GECKO_VERSION_SPLIT="1 7"
-fi
+AC_MSG_CHECKING([for gecko version])
-_GECKO_VERSION_MAJOR=`echo $_GECKO_VERSION_SPLIT | awk '{ print $[1]; }'`
-_GECKO_VERSION_MINOR=`echo $_GECKO_VERSION_SPLIT | awk '{ print $[2]; }'`
-_GECKO_VERSION="$_GECKO_VERSION_MAJOR.$_GECKO_VERSION_MINOR"
+# We cannot in grep in mozilla-config.h directly, since in some setups
+# (mult-arch for instance) it includes another file with the real
+# definitions.
-AC_MSG_RESULT([$_GECKO_VERSION])
+AC_LANG_PUSH([C++])
-$1[]_VERSION=$_GECKO_VERSION
-$1[]_VERSION_MAJOR=$_GECKO_VERSION_MAJOR
-$1[]_VERSION_MINOR=$_GECKO_VERSION_MINOR
+_SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT"
+
+AC_EGREP_CPP([\"1\.9],
+ [#include <mozilla-config.h>
+ MOZILLA_VERSION],
+ [gecko_cv_gecko_version_major=1 gecko_cv_gecko_version_minor=9],
+ [AC_EGREP_CPP([\"1\.8],
+ [#include <mozilla-config.h>
+ MOZILLA_VERSION],
+ [gecko_cv_gecko_version_major=1 gecko_cv_gecko_version_minor=8],
+ [gecko_cv_gecko_version_major=1 gecko_cv_gecko_version_minor=7])
+])
+
+CPPFLAGS="$_SAVE_CPPFLAGS"
+
+AC_LANG_POP([C++])
+
+gecko_cv_gecko_version="$gecko_cv_gecko_version_major.$gecko_cv_gecko_version_minor"
+
+AC_MSG_RESULT([$gecko_cv_gecko_version])
-if test "$_GECKO_VERSION_MAJOR" != "1" -o "$_GECKO_VERSION_MINOR" -lt "7" -o "$_GECKO_VERSION_MINOR" -gt "9"; then
- AC_MSG_ERROR([Gecko version $_GECKO_VERSION is not supported!])
+if test "$gecko_cv_gecko_version_major" != "1" -o "$gecko_cv_gecko_version_minor" -lt "7" -o "$gecko_cv_gecko_version_minor" -gt "9"; then
+ AC_MSG_ERROR([Gecko version $gecko_cv_gecko_version is not supported!])
fi
-if test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "7"; then
+if test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "7"; then
AC_DEFINE([HAVE_GECKO_1_7],[1],[Define if we have gecko 1.7])
gecko_cv_have_gecko_1_7=yes
fi
-if test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "8"; then
+if test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "8"; then
AC_DEFINE([HAVE_GECKO_1_8],[1],[Define if we have gecko 1.8])
gecko_cv_have_gecko_1_8=yes
fi
-if test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "9"; then
+if test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "9"; then
AC_DEFINE([HAVE_GECKO_1_9],[1],[Define if we have gecko 1.9])
gecko_cv_have_gecko_1_9=yes
fi
-AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "7"])
-AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "8"])
-AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_VERSION_MINOR" -ge "9"])
+fi # if gecko_cv_have_gecko
+
+AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "7"])
+AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "8"])
+AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "9"])
+
+$1[]_VERSION=$gecko_cv_gecko_version
+$1[]_VERSION_MAJOR=$gecko_cv_gecko_version_major
+$1[]_VERSION_MINOR=$gecko_cv_gecko_version_minor
])
@@ -238,14 +288,18 @@ AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$_GECKO_VERSION_MAJOR" = "1" -a "$_GECKO_
m4_define([GECKO_DISPATCH],
[
+if test "$gecko_cv_have_gecko" != "yes"; then
+ AC_MSG_FAILURE([Gecko not present; can't run this test!])
+fi
+
AC_LANG_PUSH([C++])
_SAVE_CPPFLAGS="$CPPFLAGS"
_SAVE_CXXFLAGS="$CXXFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
-CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I $_GECKO-xpcom)"
-CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other $_GECKO-xpcom)"
-LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS $($PKG_CONFIG --libs $_GECKO-xpcom) -Wl,--rpath=$_GECKO_HOME"
+CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
+CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)"
+LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom) -Wl,--rpath=$_GECKO_HOME"
_GECKO_DISPATCH_HEADERS="$2"
@@ -285,17 +339,19 @@ AC_DEFUN([GECKO_RUN_IFELSE],[GECKO_DISPATCH([AC_RUN_IFELSE],$@)])
# ***************************************************************************
# ***************************************************************************
-# GECKO_CHECK_CONTRACTID(IDENTIFIER, CONTRACTID, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# GECKO_CHECK_CONTRACTID(CONTRACTID, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Checks wheter CONTRACTID is a registered contract ID
AC_DEFUN([GECKO_CHECK_CONTRACTID],
[AC_REQUIRE([GECKO_INIT])dnl
-AC_CACHE_CHECK([for the $2 XPCOM component],
-[gecko_cv_xpcom_contractid_[]$1],
+AS_VAR_PUSHDEF([gecko_cv_have_CID],[gecko_cv_have_$1])
+
+AC_CACHE_CHECK([for the $1 XPCOM component],
+[gecko_cv_have_CID],
[
-gecko_cv_xpcom_contractid_[]$1[]=no
+AS_VAR_SET(gecko_cv_have_CID,[no])
GECKO_RUN_IFELSE([],
[AC_LANG_PROGRAM([[
@@ -334,26 +390,27 @@ if (NS_FAILED (rv)) {
}
PRBool isRegistered = PR_FALSE;
-rv = registar->IsContractIDRegistered ("$2", &isRegistered);
+rv = registar->IsContractIDRegistered ("$1", &isRegistered);
registar = nsnull; // release registar before shutdown
NS_ShutdownXPCOM (nsnull);
exit (isRegistered ? EXIT_SUCCESS : EXIT_FAILURE);
]])
],
-[gecko_cv_xpcom_contractid_[]$1[]=present],
-[gecko_cv_xpcom_contractid_[]$1[]="not present"],
-[gecko_cv_xpcom_contractid_[]$1[]="not present (cross-compiling)"])
+[AS_VAR_SET(gecko_cv_have_CID,[yes])],
+[AS_VAR_SET(gecko_cv_have_CID,[no])],
+[AS_VAR_SET(gecko_cv_have_CID,[maybe])])
])
-if test "$gecko_cv_xpcom_contractid_[]$1" = "present"; then
- ifelse([$3],,[:],[$3])
+if test AS_VAR_GET(gecko_cv_have_CID) = "yes"; then
+ ifelse([$2],,[:],[$2])
else
- ifelse([$4],,[AC_MSG_FAILURE([dnl
-Contract ID "$2" is not registered, but $PACKAGE_NAME depends on it.])],
- [$4])
+ ifelse([$3],,[AC_MSG_FAILURE([dnl
+Contract ID "$1" is not registered, but $PACKAGE_NAME depends on it.])],
+ [$3])
fi
-])
+AS_VAR_POPDEF([gecko_cv_have_CID])
+])