aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--configure.ac4
-rw-r--r--m4/gecko.m429
3 files changed, 28 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index b1d9fb3d7..e14d10141 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
2006-03-12 Christian Persch <chpe@cvs.gnome.org>
* configure.ac:
+ * m4/gecko.m4:
+
+ Set different exit codes when exiting from different places
+ in the test program, so we can see the cause of the failure
+ in config.log.
+
+2006-03-12 Christian Persch <chpe@cvs.gnome.org>
+
+ * configure.ac:
Update after branching.
diff --git a/configure.ac b/configure.ac
index d82b6237a..961175ef0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -278,10 +278,12 @@ GECKO_RUN_IFELSE([],
[GECKO_XPCOM_PROGRAM(
[[#include <nsIComponentRegistrar.h>]],
[[
+status = 99;
nsCOMPtr<nsIComponentRegistrar> registrar;
rv = NS_GetComponentRegistrar (getter_AddRefs (registrar));
if (NS_FAILED (rv)) break;
+status = 98;
nsCID *classID = nsnull;
rv = registrar->ContractIDToCID ("@mozilla.org/typeaheadfind;1", &classID);
if (NS_FAILED (rv) || !classID) break;
@@ -289,7 +291,7 @@ if (NS_FAILED (rv) || !classID) break;
nsCID badClassID = { 0x46590685, 0xbc00, 0x4aac,
{ 0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4 } };
-retval = ! classID->Equals (badClassID);
+status = classID->Equals (badClassID) ? 97 : EXIT_SUCCESS;
]]
)],
[have_broken_typeaheadfind=no],
diff --git a/m4/gecko.m4 b/m4/gecko.m4
index e0926c029..0f53ae54a 100644
--- a/m4/gecko.m4
+++ b/m4/gecko.m4
@@ -289,9 +289,7 @@ gecko_cv_extra_libs=
gecko_cv_extra_pkg_dependencies=
if test "$gecko_cv_gecko_version_major" = "1" -a "$gecko_cv_gecko_version_minor" -ge "9"; then
- if test "$gecko_cv_gecko" != "xulrunner"; then
- gecko_cv_extra_libs="-lxul"
- fi
+ gecko_cv_extra_libs="-lxul"
else
gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed"
fi
@@ -371,10 +369,11 @@ AC_DEFUN([GECKO_RUN_IFELSE],[_GECKO_DISPATCH([AC_RUN_IFELSE],$@)])
# the BODY part has run. In BODY, the the following variables are predeclared:
#
# nsresult rv
-# PRBool retval (set to PR_FALSE)
+# int status = 1 (EXIT_FAILURE)
#
-# The program's exit status will be EXIT_FAILURE if retval is PR_FALSE;
-# else it will be EXIT_SUCCESS.
+# The program's exit status will be |status|; set it to 0 (or EXIT_SUCCESS)
+# to indicate success and to a value between 1 (EXIT_FAILURE) and 120 to
+# indicate failure.
#
# To jump out of the BODY and exit the test program, you can use |break|.
@@ -397,22 +396,22 @@ AC_DEFUN([GECKO_XPCOM_PROGRAM],
[[
// redirect unwanted mozilla debug output to the bit bucket
freopen ("/dev/null", "w", stdout);
-freopen ("/dev/null", "w", stderr);
+//freopen ("/dev/null", "w", stderr);
nsresult rv;
nsCOMPtr<nsILocalFile> directory;
rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE,
getter_AddRefs (directory));
if (NS_FAILED (rv) || !directory) {
- exit (EXIT_FAILURE);
+ exit (126);
}
rv = NS_InitXPCOM2 (nsnull, directory, nsnull);
if (NS_FAILED (rv)) {
- exit (EXIT_FAILURE);
+ exit (125);
}
-PRBool retval = PR_FALSE;
+int status = EXIT_FAILURE;
// now put in the BODY, scoped with do...while(0) to ensure we don't hold a
// COMptr after XPCOM shutdown and so we can jump out with a simple |break|.
@@ -423,7 +422,7 @@ m4_shiftn(1,$@)
} while (0);
NS_ShutdownXPCOM (nsnull);
-exit (retval ? EXIT_SUCCESS : EXIT_FAILURE);
+exit (status);
]])
]) # GECKO_XPCOM_PROGRAM
@@ -444,7 +443,7 @@ AC_CACHE_CHECK([whether we can compile and run XPCOM programs],
gecko_cv_xpcom_program_check=no
GECKO_RUN_IFELSE([],
- [GECKO_XPCOM_PROGRAM([],[[retval = PR_TRUE;]])],
+ [GECKO_XPCOM_PROGRAM([],[[status = EXIT_SUCCESS;]])],
[gecko_cv_xpcom_program_check=yes],
[gecko_cv_xpcom_program_check=no],
[gecko_cv_xpcom_program_check=maybe])
@@ -481,13 +480,17 @@ GECKO_RUN_IFELSE([],
[GECKO_XPCOM_PROGRAM([[
#include <nsIComponentRegistrar.h>
]],[[
+status = 99;
nsCOMPtr<nsIComponentRegistrar> registrar;
rv = NS_GetComponentRegistrar (getter_AddRefs (registrar));
if (NS_FAILED (rv)) break;
+status = 98;
PRBool isRegistered = PR_FALSE;
rv = registrar->IsContractIDRegistered ("$1", &isRegistered);
-retval = NS_SUCCEEDED (rv) && isRegistered;
+if (NS_FAILED (rv)) break;
+
+status = isRegistered ? EXIT_SUCCESS : 97;
]])
],
[AS_VAR_SET(gecko_cv_have_CID,[yes])],