summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-01 15:43:33 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-01 15:43:33 +0000
commit64581c907fb51e23bbddbc48dd3d0af8eab52d36 (patch)
tree5b8ab8b1b4bdabaee83c0a3791f23f1fd4ca81d8
parent014a4f821f669161de39fcf5db8113c2e77799c9 (diff)
automatic import of gjsopeneuler24.03_LTS
-rw-r--r--.gitignore2
-rw-r--r--0001-Skip-failing-tests-on-ppc64-and-s390x.patch30
-rw-r--r--0001-function-Always-initialize-callback-return-value.patch67
-rw-r--r--0001-gobject-Guard-against-null-JS-wrapper-in-set-get-pro.patch91
-rw-r--r--0002-D89554-autoconf1.diff5771
-rw-r--r--0003-D94538-autoconf2.diff118
-rw-r--r--FixSharedArray.diff12
-rw-r--r--copy-headers.patch38
-rw-r--r--definitions_for_user_vfp.patch35
-rw-r--r--emitter.patch61
-rw-r--r--gjs.spec1001
-rw-r--r--icu_sources_data-Write-command-output-to-our-stderr.patch34
-rw-r--r--icu_sources_data.py-Decouple-from-Mozilla-build-system.patch26
-rw-r--r--init_patch.patch12
-rw-r--r--sources2
-rw-r--r--spidermonkey_checks_disable.patch9
-rw-r--r--spidermonkey_style_check_disable_s390x.patch11
-rw-r--r--tests-increase-timeout.patch26
18 files changed, 7346 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..b48f865 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/firefox-78.10.0esr.source.tar.xz
+/gjs-1.68.6.tar.xz
diff --git a/0001-Skip-failing-tests-on-ppc64-and-s390x.patch b/0001-Skip-failing-tests-on-ppc64-and-s390x.patch
new file mode 100644
index 0000000..d548dde
--- /dev/null
+++ b/0001-Skip-failing-tests-on-ppc64-and-s390x.patch
@@ -0,0 +1,30 @@
+From db3a0a25b97377b388532b23e73a10d246f66496 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
+Date: Mon, 3 Aug 2020 10:27:00 +0200
+Subject: [PATCH] Skip failing tests on ppc64 and s390x
+
+ppc64 and s390x: non262/extensions/clone-errors.js
+s390x: test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+---
+ js/src/tests/jstests.list | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list
+index 4085ce3..4f014f5 100644
+--- a/js/src/tests/jstests.list
++++ b/js/src/tests/jstests.list
+@@ -56,6 +56,11 @@ skip-if(!this.hasOwnProperty('addIntlExtras')) include test262/intl402/DisplayNa
+ skip-if(!this.hasOwnProperty("Atomics")) include test262/built-ins/Atomics/jstests.list
+ skip-if(!this.hasOwnProperty("SharedArrayBuffer")) include test262/built-ins/SharedArrayBuffer/jstests.list
+
++# Crashes on s390x and ppc64, avoid it
++skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script non262/extensions/clone-errors.js
++
++# Crashes on s390x, avoid it
++skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+
+ #####################################
+ # Test262 tests disabled on browser #
+--
+2.26.2
+
diff --git a/0001-function-Always-initialize-callback-return-value.patch b/0001-function-Always-initialize-callback-return-value.patch
new file mode 100644
index 0000000..4ab69a8
--- /dev/null
+++ b/0001-function-Always-initialize-callback-return-value.patch
@@ -0,0 +1,67 @@
+From 4cbaa23f1f4a3510176a1f38489834203f71b2b6 Mon Sep 17 00:00:00 2001
+From: Sebastian Keller <skeller@gnome.org>
+Date: Thu, 16 Mar 2023 22:35:49 +0100
+Subject: [PATCH] function: Always initialize callback return value
+
+When callback_closure() exits early, for example due to being called
+during GC, the return value would not be initialized. This value is
+often non-zero. If the callback is a source func of an idle or a timeout
+this would then get interpreted as G_SOURCE_CONTINUE and the same would
+repeat in the next iteration. If this happens fast enough, this results
+in the entire process being seemingly frozen while spamming the log with
+error messages.
+
+To fix this always initialize the return value to 0 or a comparable
+neutral value.
+
+Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1868
+---
+ gi/function.cpp | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/gi/function.cpp b/gi/function.cpp
+index 7c0064c8..5d69ed8a 100644
+--- a/gi/function.cpp
++++ b/gi/function.cpp
+@@ -308,6 +308,15 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
+ JSContext *context;
+ GITypeInfo ret_type;
+
++ g_callable_info_load_return_type(m_info, &ret_type);
++
++ // Fill in the result with some hopefully neutral value
++ if (g_type_info_get_tag(&ret_type) != GI_TYPE_TAG_VOID) {
++ GIArgument argument = {};
++ gjs_gi_argument_init_default(&ret_type, &argument);
++ set_return_ffi_arg_from_giargument(&ret_type, result, &argument);
++ }
++
+ if (G_UNLIKELY(!gjs_closure_is_valid(m_js_function))) {
+ warn_about_illegal_js_callback(
+ "during shutdown",
+@@ -382,7 +391,6 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
+
+ JS::RootedValue rval(context);
+
+- g_callable_info_load_return_type(m_info, &ret_type);
+ GIArgument* error_argument = nullptr;
+
+ if (g_callable_info_can_throw_gerror(m_info))
+@@ -406,14 +414,6 @@ void GjsCallbackTrampoline::callback_closure(GIArgument** args, void* result) {
+ m_info.ns(), m_info.name());
+ }
+
+- // Fill in the result with some hopefully neutral value
+- if (g_type_info_get_tag(&ret_type) != GI_TYPE_TAG_VOID) {
+- GIArgument argument = {};
+- g_callable_info_load_return_type(m_info, &ret_type);
+- gjs_gi_argument_init_default(&ret_type, &argument);
+- set_return_ffi_arg_from_giargument(&ret_type, result, &argument);
+- }
+-
+ // If the callback has a GError** argument and invoking the closure
+ // returned an error, try to make a GError from it
+ if (error_argument && rval.isObject()) {
+--
+2.35.1
+
diff --git a/0001-gobject-Guard-against-null-JS-wrapper-in-set-get-pro.patch b/0001-gobject-Guard-against-null-JS-wrapper-in-set-get-pro.patch
new file mode 100644
index 0000000..4be0a12
--- /dev/null
+++ b/0001-gobject-Guard-against-null-JS-wrapper-in-set-get-pro.patch
@@ -0,0 +1,91 @@
+From cf128c8d52a3b86177d5231f32c2e156837fa8e7 Mon Sep 17 00:00:00 2001
+From: Philip Chimento <philip.chimento@gmail.com>
+Date: Mon, 14 Nov 2022 22:01:59 -0800
+Subject: [PATCH] gobject: Guard against null JS wrapper in set/get property
+
+The wrapper object may be disassociated from the GObject if dispose has
+been run. In that case, the pointers in the get/set property vfuncs may
+be null. Handle that case with a warning and don't get or set the
+property.
+
+Closes: #510
+---
+ gi/gobject.cpp | 12 ++++++++++
+ installed-tests/js/testIntrospection.js | 31 +++++++++++++++++++++++++
+ 2 files changed, 43 insertions(+)
+
+diff --git a/gi/gobject.cpp b/gi/gobject.cpp
+index b86872c2..881c06f8 100644
+--- a/gi/gobject.cpp
++++ b/gi/gobject.cpp
+@@ -171,6 +171,12 @@ static void gjs_object_set_gproperty(GObject* object,
+ unsigned property_id [[maybe_unused]],
+ const GValue* value, GParamSpec* pspec) {
+ auto* priv = ObjectInstance::for_gobject(object);
++ if (!priv) {
++ g_warning("Wrapper for GObject %p was disposed, cannot set property %s",
++ object, g_param_spec_get_name(pspec));
++ return;
++ }
++
+ JSContext *cx = current_context();
+
+ JS::RootedObject js_obj(cx, priv->wrapper());
+@@ -184,6 +190,12 @@ static void gjs_object_get_gproperty(GObject* object,
+ unsigned property_id [[maybe_unused]],
+ GValue* value, GParamSpec* pspec) {
+ auto* priv = ObjectInstance::for_gobject(object);
++ if (!priv) {
++ g_warning("Wrapper for GObject %p was disposed, cannot get property %s",
++ object, g_param_spec_get_name(pspec));
++ return;
++ }
++
+ JSContext *cx = current_context();
+
+ JS::RootedObject js_obj(cx, priv->wrapper());
+diff --git a/installed-tests/js/testIntrospection.js b/installed-tests/js/testIntrospection.js
+index 5e2ee7df..a0ffeefe 100644
+--- a/installed-tests/js/testIntrospection.js
++++ b/installed-tests/js/testIntrospection.js
+@@ -140,6 +140,37 @@ describe('Garbage collection of introspected objects', function () {
+ System.gc();
+ GLib.idle_add(GLib.PRIORITY_LOW, () => done());
+ });
++
++ // This tests a race condition that would crash; it should warn instead
++ it('handles setting a property from C on an object whose JS wrapper has been collected', function (done) {
++ const SomeObject = GObject.registerClass({
++ Properties: {
++ 'screenfull': GObject.ParamSpec.boolean('screenfull', '', '',
++ GObject.ParamFlags.READWRITE,
++ false),
++ },
++ }, class SomeObject extends GObject.Object {});
++
++ GLib.test_expect_message('Gjs', GLib.LogLevelFlags.LEVEL_WARNING,
++ '*property screenfull*');
++
++ const settings = new Gio.Settings({schema: 'org.gnome.GjsTest'});
++ let obj = new SomeObject();
++ settings.bind('fullscreen', obj, 'screenfull', Gio.SettingsBindFlags.DEFAULT);
++ const handler = settings.connect('changed::fullscreen', () => {
++ obj.run_dispose();
++ obj = null;
++ settings.disconnect(handler);
++ GLib.idle_add(GLib.PRIORITY_LOW, () => {
++ GLib.test_assert_expected_messages_internal('Gjs',
++ 'testIntrospection.js', 0,
++ 'Warn about setting property on disposed JS object');
++ done();
++ });
++ });
++ settings.set_boolean('fullscreen', !settings.get_boolean('fullscreen'));
++ settings.reset('fullscreen');
++ });
+ });
+
+ describe('Gdk.Atom', function () {
+--
+2.39.1
+
diff --git a/0002-D89554-autoconf1.diff b/0002-D89554-autoconf1.diff
new file mode 100644
index 0000000..5b97812
--- /dev/null
+++ b/0002-D89554-autoconf1.diff
@@ -0,0 +1,5771 @@
+diff -up firefox-78.8.0/build/autoconf/acgeneral.m4.D89554-autoconf1.diff firefox-78.8.0/build/autoconf/acgeneral.m4
+--- firefox-78.8.0/build/autoconf/acgeneral.m4.D89554-autoconf1.diff 2021-02-25 13:48:13.603993474 +0100
++++ firefox-78.8.0/build/autoconf/acgeneral.m4 2021-02-25 13:48:13.603993474 +0100
+@@ -0,0 +1,2607 @@
++dnl Parameterized macros.
++dnl Requires GNU m4.
++dnl This file is part of Autoconf.
++dnl Copyright (C) 1992, 93, 94, 95, 96, 1998 Free Software Foundation, Inc.
++dnl
++dnl This program is free software; you can redistribute it and/or modify
++dnl it under the terms of the GNU General Public License as published by
++dnl the Free Software Foundation; either version 2, or (at your option)
++dnl any later version.
++dnl
++dnl This program is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++dnl GNU General Public License for more details.
++dnl
++dnl You should have received a copy of the GNU General Public License
++dnl along with this program; if not, write to the Free Software
++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++dnl 02111-1307, USA.
++dnl
++dnl As a special exception, the Free Software Foundation gives unlimited
++dnl permission to copy, distribute and modify the configure scripts that
++dnl are the output of Autoconf. You need not follow the terms of the GNU
++dnl General Public License when using or distributing such scripts, even
++dnl though portions of the text of Autoconf appear in them. The GNU
++dnl General Public License (GPL) does govern all other use of the material
++dnl that constitutes the Autoconf program.
++dnl
++dnl Certain portions of the Autoconf source text are designed to be copied
++dnl (in certain cases, depending on the input) into the output of
++dnl Autoconf. We call these the "data" portions. The rest of the Autoconf
++dnl source text consists of comments plus executable code that decides which
++dnl of the data portions to output in any given case. We call these
++dnl comments and executable code the "non-data" portions. Autoconf never
++dnl copies any of the non-data portions into its output.
++dnl
++dnl This special exception to the GPL applies to versions of Autoconf
++dnl released by the Free Software Foundation. When you make and
++dnl distribute a modified version of Autoconf, you may extend this special
++dnl exception to the GPL to apply to your modified version as well, *unless*
++dnl your modified version has the potential to copy into its output some
++dnl of the text that was the non-data portion of the version that you started
++dnl with. (In other words, unless your change moves or copies text from
++dnl the non-data portions to the data portions.) If your modification has
++dnl such potential, you must delete any notice of this special exception
++dnl to the GPL from your modified version.
++dnl
++dnl Written by David MacKenzie, with help from
++dnl Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
++dnl Roland McGrath, Noah Friedman, david d zuhn, and many others.
++dnl
++divert(-1)dnl Throw away output until AC_INIT is called.
++changequote([, ])
++
++define(AC_ACVERSION, 2.13)
++
++dnl Some old m4's don't support m4exit. But they provide
++dnl equivalent functionality by core dumping because of the
++dnl long macros we define.
++ifdef([__gnu__], , [errprint(Autoconf requires GNU m4.
++Install it before installing Autoconf or set the
++M4 environment variable to its path name.
++)m4exit(2)])
++
++undefine([eval])
++undefine([include])
++undefine([shift])
++undefine([format])
++
++
++dnl ### Defining macros
++
++
++dnl m4 output diversions. We let m4 output them all in order at the end,
++dnl except that we explicitly undivert AC_DIVERSION_SED, AC_DIVERSION_CMDS,
++dnl and AC_DIVERSION_ICMDS.
++
++dnl AC_DIVERSION_NOTICE - 1 (= 0) AC_REQUIRE'd #! /bin/sh line
++define(AC_DIVERSION_NOTICE, 1)dnl copyright notice & option help strings
++define(AC_DIVERSION_INIT, 2)dnl initialization code
++define(AC_DIVERSION_NORMAL_4, 3)dnl AC_REQUIRE'd code, 4 level deep
++define(AC_DIVERSION_NORMAL_3, 4)dnl AC_REQUIRE'd code, 3 level deep
++define(AC_DIVERSION_NORMAL_2, 5)dnl AC_REQUIRE'd code, 2 level deep
++define(AC_DIVERSION_NORMAL_1, 6)dnl AC_REQUIRE'd code, 1 level deep
++define(AC_DIVERSION_NORMAL, 7)dnl the tests and output code
++define(AC_DIVERSION_SED, 8)dnl variable substitutions in config.status
++define(AC_DIVERSION_CMDS, 9)dnl extra shell commands in config.status
++define(AC_DIVERSION_ICMDS, 10)dnl extra initialization in config.status
++
++dnl Change the diversion stream to STREAM, while stacking old values.
++dnl AC_DIVERT_PUSH(STREAM)
++define(AC_DIVERT_PUSH,
++[pushdef([AC_DIVERSION_CURRENT], $1)dnl
++divert(AC_DIVERSION_CURRENT)dnl
++])
++
++dnl Change the diversion stream to its previous value, unstacking it.
++dnl AC_DIVERT_POP()
++define(AC_DIVERT_POP,
++[popdef([AC_DIVERSION_CURRENT])dnl
++divert(AC_DIVERSION_CURRENT)dnl
++])
++
++dnl Initialize the diversion setup.
++define([AC_DIVERSION_CURRENT], AC_DIVERSION_NORMAL)
++dnl This will be popped by AC_REQUIRE in AC_INIT.
++pushdef([AC_DIVERSION_CURRENT], AC_DIVERSION_NOTICE)
++
++dnl The prologue for Autoconf macros.
++dnl AC_PRO(MACRO-NAME)
++define(AC_PRO,
++[define([AC_PROVIDE_$1], )dnl
++ifelse(AC_DIVERSION_CURRENT, AC_DIVERSION_NORMAL,
++[AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))],
++[pushdef([AC_DIVERSION_CURRENT], AC_DIVERSION_CURRENT)])dnl
++])
++
++dnl The Epilogue for Autoconf macros.
++dnl AC_EPI()
++define(AC_EPI,
++[AC_DIVERT_POP()dnl
++ifelse(AC_DIVERSION_CURRENT, AC_DIVERSION_NORMAL,
++[undivert(AC_DIVERSION_NORMAL_4)dnl
++undivert(AC_DIVERSION_NORMAL_3)dnl
++undivert(AC_DIVERSION_NORMAL_2)dnl
++undivert(AC_DIVERSION_NORMAL_1)dnl
++])dnl
++])
++
++dnl Define a macro which automatically provides itself. Add machinery
++dnl so the macro automatically switches expansion to the diversion
++dnl stack if it is not already using it. In this case, once finished,
++dnl it will bring back all the code accumulated in the diversion stack.
++dnl This, combined with AC_REQUIRE, achieves the topological ordering of
++dnl macros. We don't use this macro to define some frequently called
++dnl macros that are not involved in ordering constraints, to save m4
++dnl processing.
++dnl AC_DEFUN(NAME, EXPANSION)
++define([AC_DEFUN],
++[define($1, [AC_PRO([$1])$2[]AC_EPI()])])
++
++
++dnl ### Initialization
++
++
++dnl AC_INIT_NOTICE()
++AC_DEFUN(AC_INIT_NOTICE,
++[# Guess values for system-dependent variables and create Makefiles.
++# Generated automatically using autoconf version] AC_ACVERSION [
++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
++#
++# This configure script is free software; the Free Software Foundation
++# gives unlimited permission to copy, distribute and modify it.
++
++# Defaults:
++ac_help=
++ac_default_prefix=/usr/local
++[#] Any additions from configure.in:])
++
++dnl AC_PREFIX_DEFAULT(PREFIX)
++AC_DEFUN(AC_PREFIX_DEFAULT,
++[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++ac_default_prefix=$1
++AC_DIVERT_POP()])
++
++dnl AC_INIT_PARSE_ARGS()
++AC_DEFUN(AC_INIT_PARSE_ARGS,
++[
++# Initialize some variables set by options.
++# The variables have the same names as the options, with
++# dashes changed to underlines.
++build=NONE
++cache_file=./config.cache
++exec_prefix=NONE
++host=NONE
++no_create=
++nonopt=NONE
++no_recursion=
++prefix=NONE
++program_prefix=NONE
++program_suffix=NONE
++program_transform_name=s,x,x,
++silent=
++site=
++srcdir=
++target=NONE
++verbose=
++x_includes=NONE
++x_libraries=NONE
++dnl Installation directory options.
++dnl These are left unexpanded so users can "make install exec_prefix=/foo"
++dnl and all the variables that are supposed to be based on exec_prefix
++dnl by default will actually change.
++dnl Use braces instead of parens because sh, perl, etc. also accept them.
++bindir='${exec_prefix}/bin'
++sbindir='${exec_prefix}/sbin'
++libexecdir='${exec_prefix}/libexec'
++datadir='${prefix}/share'
++sysconfdir='${prefix}/etc'
++sharedstatedir='${prefix}/com'
++localstatedir='${prefix}/var'
++libdir='${exec_prefix}/lib'
++includedir='${prefix}/include'
++oldincludedir='/usr/include'
++infodir='${prefix}/info'
++mandir='${prefix}/man'
++
++# Initialize some other variables.
++subdirs=
++MFLAGS= MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++# Maximum number of lines to put in a shell here document.
++ac_max_here_lines=12
++
++ac_prev=
++for ac_option
++do
++
++ # If the previous option needs an argument, assign it.
++ if test -n "$ac_prev"; then
++ eval "$ac_prev=\$ac_option"
++ ac_prev=
++ continue
++ fi
++
++ case "$ac_option" in
++changequote(, )dnl
++ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++changequote([, ])dnl
++ *) ac_optarg= ;;
++ esac
++
++ # Accept the important Cygnus configure options, so we can diagnose typos.
++
++ case "$ac_option" in
++
++ -bindir | --bindir | --bindi | --bind | --bin | --bi)
++ ac_prev=bindir ;;
++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
++ bindir="$ac_optarg" ;;
++
++ -build | --build | --buil | --bui | --bu)
++ ac_prev=build ;;
++ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
++ build="$ac_optarg" ;;
++
++ -cache-file | --cache-file | --cache-fil | --cache-fi \
++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
++ ac_prev=cache_file ;;
++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
++ cache_file="$ac_optarg" ;;
++
++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
++ ac_prev=datadir ;;
++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
++ | --da=*)
++ datadir="$ac_optarg" ;;
++
++ -disable-* | --disable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
++ # Reject names that are not valid shell variable names.
++changequote(, )dnl
++ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
++changequote([, ])dnl
++ AC_MSG_ERROR($ac_feature: invalid feature name)
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ eval "enable_${ac_feature}=no" ;;
++
++ -enable-* | --enable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++changequote(, )dnl
++ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
++changequote([, ])dnl
++ AC_MSG_ERROR($ac_feature: invalid feature name)
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ case "$ac_option" in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval "enable_${ac_feature}='$ac_optarg'" ;;
++
++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
++ | --exec | --exe | --ex)
++ ac_prev=exec_prefix ;;
++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
++ | --exec=* | --exe=* | --ex=*)
++ exec_prefix="$ac_optarg" ;;
++
++ -gas | --gas | --ga | --g)
++ # Obsolete; use --with-gas.
++ with_gas=yes ;;
++
++ -help | --help | --hel | --he)
++ # Omit some internal or obsolete options to make the list less imposing.
++ # This message is too long to be a string in the A/UX 3.1 sh.
++ cat << EOF
++changequote(, )dnl
++Usage: configure [options] [host]
++Options: [defaults in brackets after descriptions]
++Configuration:
++ --cache-file=FILE cache test results in FILE
++ --help print this message
++ --no-create do not create output files
++ --quiet, --silent do not print \`checking...' messages
++ --version print the version of autoconf that created configure
++Directory and file names:
++ --prefix=PREFIX install architecture-independent files in PREFIX
++ [$ac_default_prefix]
++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
++ [same as prefix]
++ --bindir=DIR user executables in DIR [EPREFIX/bin]
++ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
++ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
++ --datadir=DIR read-only architecture-independent data in DIR
++ [PREFIX/share]
++ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
++ --sharedstatedir=DIR modifiable architecture-independent data in DIR
++ [PREFIX/com]
++ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
++ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
++ --includedir=DIR C header files in DIR [PREFIX/include]
++ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
++ --infodir=DIR info documentation in DIR [PREFIX/info]
++ --mandir=DIR man documentation in DIR [PREFIX/man]
++ --srcdir=DIR find the sources in DIR [configure dir or ..]
++ --program-prefix=PREFIX prepend PREFIX to installed program names
++ --program-suffix=SUFFIX append SUFFIX to installed program names
++ --program-transform-name=PROGRAM
++ run sed PROGRAM on installed program names
++EOF
++ cat << EOF
++Host type:
++ --build=BUILD configure for building on BUILD [BUILD=HOST]
++ --host=HOST configure for HOST [guessed]
++ --target=TARGET configure for TARGET [TARGET=HOST]
++Features and packages:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
++ --x-includes=DIR X include files are in DIR
++ --x-libraries=DIR X library files are in DIR
++changequote([, ])dnl
++EOF
++ if test -n "$ac_help"; then
++ echo "--enable and --with options recognized:$ac_help"
++ fi
++ exit 0 ;;
++
++ -host | --host | --hos | --ho)
++ ac_prev=host ;;
++ -host=* | --host=* | --hos=* | --ho=*)
++ host="$ac_optarg" ;;
++
++ -includedir | --includedir | --includedi | --included | --include \
++ | --includ | --inclu | --incl | --inc)
++ ac_prev=includedir ;;
++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
++ | --includ=* | --inclu=* | --incl=* | --inc=*)
++ includedir="$ac_optarg" ;;
++
++ -infodir | --infodir | --infodi | --infod | --info | --inf)
++ ac_prev=infodir ;;
++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
++ infodir="$ac_optarg" ;;
++
++ -libdir | --libdir | --libdi | --libd)
++ ac_prev=libdir ;;
++ -libdir=* | --libdir=* | --libdi=* | --libd=*)
++ libdir="$ac_optarg" ;;
++
++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
++ | --libexe | --libex | --libe)
++ ac_prev=libexecdir ;;
++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
++ | --libexe=* | --libex=* | --libe=*)
++ libexecdir="$ac_optarg" ;;
++
++ -localstatedir | --localstatedir | --localstatedi | --localstated \
++ | --localstate | --localstat | --localsta | --localst \
++ | --locals | --local | --loca | --loc | --lo)
++ ac_prev=localstatedir ;;
++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
++ localstatedir="$ac_optarg" ;;
++
++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
++ ac_prev=mandir ;;
++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
++ mandir="$ac_optarg" ;;
++
++ -nfp | --nfp | --nf)
++ # Obsolete; use --without-fp.
++ with_fp=no ;;
++
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c)
++ no_create=yes ;;
++
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
++ no_recursion=yes ;;
++
++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
++ | --oldin | --oldi | --old | --ol | --o)
++ ac_prev=oldincludedir ;;
++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
++ oldincludedir="$ac_optarg" ;;
++
++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
++ ac_prev=prefix ;;
++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
++ prefix="$ac_optarg" ;;
++
++ -program-prefix | --program-prefix | --program-prefi | --program-pref \
++ | --program-pre | --program-pr | --program-p)
++ ac_prev=program_prefix ;;
++ -program-prefix=* | --program-prefix=* | --program-prefi=* \
++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
++ program_prefix="$ac_optarg" ;;
++
++ -program-suffix | --program-suffix | --program-suffi | --program-suff \
++ | --program-suf | --program-su | --program-s)
++ ac_prev=program_suffix ;;
++ -program-suffix=* | --program-suffix=* | --program-suffi=* \
++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
++ program_suffix="$ac_optarg" ;;
++
++ -program-transform-name | --program-transform-name \
++ | --program-transform-nam | --program-transform-na \
++ | --program-transform-n | --program-transform- \
++ | --program-transform | --program-transfor \
++ | --program-transfo | --program-transf \
++ | --program-trans | --program-tran \
++ | --progr-tra | --program-tr | --program-t)
++ ac_prev=program_transform_name ;;
++ -program-transform-name=* | --program-transform-name=* \
++ | --program-transform-nam=* | --program-transform-na=* \
++ | --program-transform-n=* | --program-transform-=* \
++ | --program-transform=* | --program-transfor=* \
++ | --program-transfo=* | --program-transf=* \
++ | --program-trans=* | --program-tran=* \
++ | --progr-tra=* | --program-tr=* | --program-t=*)
++ program_transform_name="$ac_optarg" ;;
++
++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++ | -silent | --silent | --silen | --sile | --sil)
++ silent=yes ;;
++
++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
++ ac_prev=sbindir ;;
++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
++ | --sbi=* | --sb=*)
++ sbindir="$ac_optarg" ;;
++
++ -sharedstatedir | --sharedstatedir | --sharedstatedi \
++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
++ | --sharedst | --shareds | --shared | --share | --shar \
++ | --sha | --sh)
++ ac_prev=sharedstatedir ;;
++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
++ | --sha=* | --sh=*)
++ sharedstatedir="$ac_optarg" ;;
++
++ -site | --site | --sit)
++ ac_prev=site ;;
++ -site=* | --site=* | --sit=*)
++ site="$ac_optarg" ;;
++
++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
++ ac_prev=srcdir ;;
++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
++ srcdir="$ac_optarg" ;;
++
++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
++ | --syscon | --sysco | --sysc | --sys | --sy)
++ ac_prev=sysconfdir ;;
++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
++ sysconfdir="$ac_optarg" ;;
++
++ -target | --target | --targe | --targ | --tar | --ta | --t)
++ ac_prev=target ;;
++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
++ target="$ac_optarg" ;;
++
++ -v | -verbose | --verbose | --verbos | --verbo | --verb)
++ verbose=yes ;;
++
++ -version | --version | --versio | --versi | --vers)
++ echo "configure generated by autoconf version AC_ACVERSION"
++ exit 0 ;;
++
++ -with-* | --with-*)
++ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++changequote(, )dnl
++ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
++changequote([, ])dnl
++ AC_MSG_ERROR($ac_package: invalid package name)
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ case "$ac_option" in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval "with_${ac_package}='$ac_optarg'" ;;
++
++ -without-* | --without-*)
++ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
++ # Reject names that are not valid shell variable names.
++changequote(, )dnl
++ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
++changequote([, ])dnl
++ AC_MSG_ERROR($ac_package: invalid package name)
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ eval "with_${ac_package}=no" ;;
++
++ --x)
++ # Obsolete; use --with-x.
++ with_x=yes ;;
++
++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
++ | --x-incl | --x-inc | --x-in | --x-i)
++ ac_prev=x_includes ;;
++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
++ x_includes="$ac_optarg" ;;
++
++ -x-libraries | --x-libraries | --x-librarie | --x-librari \
++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
++ ac_prev=x_libraries ;;
++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
++ x_libraries="$ac_optarg" ;;
++
++ -*) AC_MSG_ERROR([$ac_option: invalid option; use --help to show usage])
++ ;;
++
++ *)
++changequote(, )dnl
++ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
++changequote([, ])dnl
++ AC_MSG_WARN($ac_option: invalid host type)
++ fi
++ if test "x$nonopt" != xNONE; then
++ AC_MSG_ERROR(can only configure for one host and one target at a time)
++ fi
++ nonopt="$ac_option"
++ ;;
++
++ esac
++done
++
++if test -n "$ac_prev"; then
++ AC_MSG_ERROR(missing argument to --`echo $ac_prev | sed 's/_/-/g'`)
++fi
++])
++
++dnl Try to have only one #! line, so the script doesn't look funny
++dnl for users of AC_REVISION.
++dnl AC_INIT_BINSH()
++AC_DEFUN(AC_INIT_BINSH,
++[#! /bin/sh
++])
++
++dnl AC_INIT(UNIQUE-FILE-IN-SOURCE-DIR)
++AC_DEFUN(AC_INIT,
++[sinclude(acsite.m4)dnl
++sinclude(./aclocal.m4)dnl
++AC_REQUIRE([AC_INIT_BINSH])dnl
++AC_INIT_NOTICE
++AC_DIVERT_POP()dnl to NORMAL
++AC_DIVERT_PUSH(AC_DIVERSION_INIT)dnl
++AC_INIT_PARSE_ARGS
++AC_INIT_PREPARE($1)dnl
++AC_DIVERT_POP()dnl to NORMAL
++])
++
++dnl AC_INIT_PREPARE(UNIQUE-FILE-IN-SOURCE-DIR)
++AC_DEFUN(AC_INIT_PREPARE,
++[trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++# File descriptor usage:
++# 0 standard input
++# 1 file creation
++# 2 errors and warnings
++# 3 some systems may open it to /dev/tty
++# 4 used on the Kubota Titan
++define(AC_FD_MSG, 6)dnl
++[#] AC_FD_MSG checking for... messages and results
++define(AC_FD_CC, 5)dnl
++[#] AC_FD_CC compiler messages saved in config.log
++if test "$silent" = yes; then
++ exec AC_FD_MSG>/dev/null
++else
++ exec AC_FD_MSG>&1
++fi
++exec AC_FD_CC>./config.log
++
++echo "\
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++" 1>&AC_FD_CC
++
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Also quote any args containing shell metacharacters.
++ac_configure_args=
++for ac_arg
++do
++ case "$ac_arg" in
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c) ;;
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
++changequote(<<, >>)dnl
++dnl If you change this globbing pattern, test it on an old shell --
++dnl it's sensitive. Putting any kind of quote in it causes syntax errors.
++ *" "*|*" "*|*[\[\]\~\<<#>>\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
++ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++changequote([, ])dnl
++ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
++ esac
++done
++
++# NLS nuisances.
++# Only set these to C if already set. These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test "${LANG+set}" = set; then LANG=C; export LANG; fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
++
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -rf conftest* confdefs.h
++# AIX cpp loses on an empty file, so make sure it contains at least a newline.
++echo > confdefs.h
++
++# A filename unique to this package, relative to the directory that
++# configure is in, which we can look for to find out if srcdir is correct.
++ac_unique_file=$1
++
++# Find the source files, if location was not specified.
++if test -z "$srcdir"; then
++ ac_srcdir_defaulted=yes
++ # Try the directory containing this script, then its parent.
++ ac_prog=[$]0
++changequote(, )dnl
++ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
++changequote([, ])dnl
++ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
++ srcdir=$ac_confdir
++ if test ! -r $srcdir/$ac_unique_file; then
++ srcdir=..
++ fi
++else
++ ac_srcdir_defaulted=no
++fi
++if test ! -r $srcdir/$ac_unique_file; then
++ if test "$ac_srcdir_defaulted" = yes; then
++ AC_MSG_ERROR(can not find sources in $ac_confdir or ..)
++ else
++ AC_MSG_ERROR(can not find sources in $srcdir)
++ fi
++fi
++dnl Double slashes in pathnames in object file debugging info
++dnl mess up M-x gdb in Emacs.
++changequote(, )dnl
++srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
++changequote([, ])dnl
++
++dnl Let the site file select an alternate cache file if it wants to.
++AC_SITE_LOAD
++AC_CACHE_LOAD
++AC_LANG_C
++dnl By default always use an empty string as the executable
++dnl extension. Only change it if the script calls AC_EXEEXT.
++ac_exeext=
++dnl By default assume that objects files use an extension of .o. Only
++dnl change it if the script calls AC_OBJEXT.
++ac_objext=o
++AC_PROG_ECHO_N
++dnl Substitute for predefined variables.
++AC_SUBST(SHELL)dnl
++AC_SUBST(CFLAGS)dnl
++AC_SUBST(CPPFLAGS)dnl
++AC_SUBST(CXXFLAGS)dnl
++AC_SUBST(FFLAGS)dnl
++AC_SUBST(DEFS)dnl
++AC_SUBST(LDFLAGS)dnl
++AC_SUBST(LIBS)dnl
++AC_SUBST(exec_prefix)dnl
++AC_SUBST(prefix)dnl
++AC_SUBST(program_transform_name)dnl
++dnl Installation directory options.
++AC_SUBST(bindir)dnl
++AC_SUBST(sbindir)dnl
++AC_SUBST(libexecdir)dnl
++AC_SUBST(datadir)dnl
++AC_SUBST(sysconfdir)dnl
++AC_SUBST(sharedstatedir)dnl
++AC_SUBST(localstatedir)dnl
++AC_SUBST(libdir)dnl
++AC_SUBST(includedir)dnl
++AC_SUBST(oldincludedir)dnl
++AC_SUBST(infodir)dnl
++AC_SUBST(mandir)dnl
++])
++
++
++dnl ### Selecting optional features
++
++
++dnl AC_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
++AC_DEFUN(AC_ARG_ENABLE,
++[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++ac_help="$ac_help
++[$2]"
++AC_DIVERT_POP()dnl
++[#] Check whether --enable-[$1] or --disable-[$1] was given.
++if test "[${enable_]patsubst([$1], -, _)+set}" = set; then
++ enableval="[$enable_]patsubst([$1], -, _)"
++ ifelse([$3], , :, [$3])
++ifelse([$4], , , [else
++ $4
++])dnl
++fi
++])
++
++AC_DEFUN(AC_ENABLE,
++[AC_OBSOLETE([$0], [; instead use AC_ARG_ENABLE])dnl
++AC_ARG_ENABLE([$1], [ --enable-$1], [$2], [$3])dnl
++])
++
++
++dnl ### Working with optional software
++
++
++dnl AC_ARG_WITH(PACKAGE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
++AC_DEFUN(AC_ARG_WITH,
++[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++ac_help="$ac_help
++[$2]"
++AC_DIVERT_POP()dnl
++[#] Check whether --with-[$1] or --without-[$1] was given.
++if test "[${with_]patsubst([$1], -, _)+set}" = set; then
++ withval="[$with_]patsubst([$1], -, _)"
++ ifelse([$3], , :, [$3])
++ifelse([$4], , , [else
++ $4
++])dnl
++fi
++])
++
++AC_DEFUN(AC_WITH,
++[AC_OBSOLETE([$0], [; instead use AC_ARG_WITH])dnl
++AC_ARG_WITH([$1], [ --with-$1], [$2], [$3])dnl
++])
++
++
++dnl ### Transforming program names.
++
++
++dnl AC_ARG_PROGRAM()
++AC_DEFUN(AC_ARG_PROGRAM,
++[if test "$program_transform_name" = s,x,x,; then
++ program_transform_name=
++else
++ # Double any \ or $. echo might interpret backslashes.
++ cat <<\EOF_SED > conftestsed
++s,\\,\\\\,g; s,\$,$$,g
++EOF_SED
++ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
++ rm -f conftestsed
++fi
++test "$program_prefix" != NONE &&
++ program_transform_name="s,^,${program_prefix},; $program_transform_name"
++# Use a double $ so make ignores it.
++test "$program_suffix" != NONE &&
++ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
++
++# sed with no file args requires a program.
++test "$program_transform_name" = "" && program_transform_name="s,x,x,"
++])
++
++
++dnl ### Version numbers
++
++
++dnl AC_REVISION(REVISION-INFO)
++AC_DEFUN(AC_REVISION,
++[AC_REQUIRE([AC_INIT_BINSH])dnl
++[# From configure.in] translit([$1], $")])
++
++dnl Subroutines of AC_PREREQ.
++
++dnl Change the dots in NUMBER into commas.
++dnl AC_PREREQ_SPLIT(NUMBER)
++define(AC_PREREQ_SPLIT,
++[translit($1, ., [, ])])
++
++dnl Default the ternary version number to 0 (e.g., 1, 7 -> 1, 7, 0).
++dnl AC_PREREQ_CANON(MAJOR, MINOR [,TERNARY])
++define(AC_PREREQ_CANON,
++[$1, $2, ifelse([$3], , 0, [$3])])
++
++dnl Complain and exit if version number 1 is less than version number 2.
++dnl PRINTABLE2 is the printable version of version number 2.
++dnl AC_PREREQ_COMPARE(MAJOR1, MINOR1, TERNARY1, MAJOR2, MINOR2, TERNARY2,
++dnl PRINTABLE2)
++define(AC_PREREQ_COMPARE,
++[ifelse(builtin([eval],
++[$3 + $2 * 1000 + $1 * 1000000 < $6 + $5 * 1000 + $4 * 1000000]), 1,
++[errprint(dnl
++FATAL ERROR: Autoconf version $7 or higher is required for this script
++)m4exit(3)])])
++
++dnl Complain and exit if the Autoconf version is less than VERSION.
++dnl AC_PREREQ(VERSION)
++define(AC_PREREQ,
++[AC_PREREQ_COMPARE(AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), [$1])])
++
++
++dnl ### Getting the canonical system type
++
++
++dnl Find install-sh, config.sub, config.guess, and Cygnus configure
++dnl in directory DIR. These are auxiliary files used in configuration.
++dnl DIR can be either absolute or relative to $srcdir.
++dnl AC_CONFIG_AUX_DIR(DIR)
++AC_DEFUN(AC_CONFIG_AUX_DIR,
++[AC_CONFIG_AUX_DIRS($1 $srcdir/$1)])
++
++dnl The default is `$srcdir' or `$srcdir/..' or `$srcdir/../..'.
++dnl There's no need to call this macro explicitly; just AC_REQUIRE it.
++AC_DEFUN(AC_CONFIG_AUX_DIR_DEFAULT,
++[AC_CONFIG_AUX_DIRS($srcdir $srcdir/.. $srcdir/../..)])
++
++dnl Internal subroutine.
++dnl Search for the configuration auxiliary files in directory list $1.
++dnl We look only for install-sh, so users of AC_PROG_INSTALL
++dnl do not automatically need to distribute the other auxiliary files.
++dnl AC_CONFIG_AUX_DIRS(DIR ...)
++AC_DEFUN(AC_CONFIG_AUX_DIRS,
++[ac_aux_dir=
++for ac_dir in $1; do
++ if test -f $ac_dir/install-sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install-sh -c"
++ break
++ elif test -f $ac_dir/install.sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install.sh -c"
++ break
++ fi
++done
++if test -z "$ac_aux_dir"; then
++ AC_MSG_ERROR([can not find install-sh or install.sh in $1])
++fi
++ac_config_guess=$ac_aux_dir/config.guess
++ac_config_sub=$ac_aux_dir/config.sub
++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
++AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++])
++
++dnl Canonicalize the host, target, and build system types.
++AC_DEFUN(AC_CANONICAL_SYSTEM,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++AC_BEFORE([$0], [AC_ARG_PROGRAM])
++# Do some error checking and defaulting for the host and target type.
++# The inputs are:
++# configure --host=HOST --target=TARGET --build=BUILD NONOPT
++#
++# The rules are:
++# 1. You are not allowed to specify --host, --target, and nonopt at the
++# same time.
++# 2. Host defaults to nonopt.
++# 3. If nonopt is not specified, then host defaults to the current host,
++# as determined by config.guess.
++# 4. Target and build default to nonopt.
++# 5. If nonopt is not specified, then target and build default to host.
++
++# The aliases save the names the user supplied, while $host etc.
++# will get canonicalized.
++case $host---$target---$nonopt in
++NONE---*---* | *---NONE---* | *---*---NONE) ;;
++*) AC_MSG_ERROR(can only configure for one host and one target at a time) ;;
++esac
++
++AC_CANONICAL_HOST
++AC_CANONICAL_TARGET
++AC_CANONICAL_BUILD
++test "$host_alias" != "$target_alias" &&
++ test "$program_prefix$program_suffix$program_transform_name" = \
++ NONENONEs,x,x, &&
++ program_prefix=${target_alias}-
++])
++
++dnl Subroutines of AC_CANONICAL_SYSTEM.
++
++AC_DEFUN(AC_CANONICAL_HOST,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++
++# Make sure we can run config.sub.
++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
++else AC_MSG_ERROR(can not run $ac_config_sub)
++fi
++
++AC_MSG_CHECKING(host system type)
++
++dnl Set host_alias.
++host_alias=$host
++case "$host_alias" in
++NONE)
++ case $nonopt in
++ NONE)
++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
++ else AC_MSG_ERROR(can not guess host type; you must specify one)
++ fi ;;
++ *) host_alias=$nonopt ;;
++ esac ;;
++esac
++
++dnl Set the other host vars.
++changequote(<<, >>)dnl
++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++changequote([, ])dnl
++AC_MSG_RESULT($host)
++AC_SUBST(host)dnl
++AC_SUBST(host_alias)dnl
++AC_SUBST(host_cpu)dnl
++AC_SUBST(host_vendor)dnl
++AC_SUBST(host_os)dnl
++])
++
++dnl Internal use only.
++AC_DEFUN(AC_CANONICAL_TARGET,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++AC_MSG_CHECKING(target system type)
++
++dnl Set target_alias.
++target_alias=$target
++case "$target_alias" in
++NONE)
++ case $nonopt in
++ NONE) target_alias=$host_alias ;;
++ *) target_alias=$nonopt ;;
++ esac ;;
++esac
++
++dnl Set the other target vars.
++changequote(<<, >>)dnl
++target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
++target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++changequote([, ])dnl
++AC_MSG_RESULT($target)
++AC_SUBST(target)dnl
++AC_SUBST(target_alias)dnl
++AC_SUBST(target_cpu)dnl
++AC_SUBST(target_vendor)dnl
++AC_SUBST(target_os)dnl
++])
++
++dnl Internal use only.
++AC_DEFUN(AC_CANONICAL_BUILD,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++AC_MSG_CHECKING(build system type)
++
++dnl Set build_alias.
++build_alias=$build
++case "$build_alias" in
++NONE)
++ case $nonopt in
++ NONE) build_alias=$host_alias ;;
++ *) build_alias=$nonopt ;;
++ esac ;;
++esac
++
++dnl Set the other build vars.
++changequote(<<, >>)dnl
++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
++build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++changequote([, ])dnl
++AC_MSG_RESULT($build)
++AC_SUBST(build)dnl
++AC_SUBST(build_alias)dnl
++AC_SUBST(build_cpu)dnl
++AC_SUBST(build_vendor)dnl
++AC_SUBST(build_os)dnl
++])
++
++
++dnl AC_VALIDATE_CACHED_SYSTEM_TUPLE[(cmd)]
++dnl if the cache file is inconsistent with the current host,
++dnl target and build system types, execute CMD or print a default
++dnl error message.
++AC_DEFUN(AC_VALIDATE_CACHED_SYSTEM_TUPLE, [
++ AC_REQUIRE([AC_CANONICAL_SYSTEM])
++ AC_MSG_CHECKING([cached system tuple])
++ if { test x"${ac_cv_host_system_type+set}" = x"set" &&
++ test x"$ac_cv_host_system_type" != x"$host"; } ||
++ { test x"${ac_cv_build_system_type+set}" = x"set" &&
++ test x"$ac_cv_build_system_type" != x"$build"; } ||
++ { test x"${ac_cv_target_system_type+set}" = x"set" &&
++ test x"$ac_cv_target_system_type" != x"$target"; }; then
++ AC_MSG_RESULT([different])
++ ifelse($#, 1, [$1],
++ [AC_MSG_ERROR([remove config.cache and re-run configure])])
++ else
++ AC_MSG_RESULT(ok)
++ fi
++ ac_cv_host_system_type="$host"
++ ac_cv_build_system_type="$build"
++ ac_cv_target_system_type="$target"
++])
++
++
++dnl ### Caching test results
++
++
++dnl Look for site or system specific initialization scripts.
++dnl AC_SITE_LOAD()
++define(AC_SITE_LOAD,
++[# Prefer explicitly selected file to automatically selected ones.
++if test -z "$CONFIG_SITE"; then
++ if test "x$prefix" != xNONE; then
++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
++ else
++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
++ fi
++fi
++for ac_site_file in $CONFIG_SITE; do
++ if test -r "$ac_site_file"; then
++ echo "loading site script $ac_site_file"
++ . "$ac_site_file"
++ fi
++done
++])
++
++dnl AC_CACHE_LOAD()
++define(AC_CACHE_LOAD,
++[if test -r "$cache_file"; then
++ echo "loading cache $cache_file"
++ . $cache_file
++else
++ echo "creating cache $cache_file"
++ > $cache_file
++fi
++])
++
++dnl AC_CACHE_SAVE()
++define(AC_CACHE_SAVE,
++[cat > confcache <<\EOF
++# This file is a shell script that caches the results of configure
++# tests run on this system so they can be shared between configure
++# scripts and configure runs. It is not useful on other systems.
++# If it contains results you don't want to keep, you may remove or edit it.
++#
++# By default, configure uses ./config.cache as the cache file,
++# creating it if it does not exist already. You can give configure
++# the --cache-file=FILE option to use a different cache file; that is
++# what configure does when it calls configure scripts in
++# subdirectories, so they share the cache.
++# Giving --cache-file=/dev/null disables caching, for debugging configure.
++# config.status only pays attention to the cache file if you give it the
++# --recheck option to rerun configure.
++#
++EOF
++dnl Allow a site initialization script to override cache values.
++# The following way of writing the cache mishandles newlines in values,
++# but we know of no workaround that is simple, portable, and efficient.
++# So, don't put newlines in cache variables' values.
++# Ultrix sh set writes to stderr and can't be redirected directly,
++# and sets the high bit in the cache file unless we assign to the vars.
++changequote(, )dnl
++(set) 2>&1 |
++ case `(ac_space=' '; set | grep ac_space) 2>&1` in
++ *ac_space=\ *)
++ # `set' does not quote correctly, so add quotes (double-quote substitution
++ # turns \\\\ into \\, and sed turns \\ into \).
++ sed -n \
++ -e "s/'/'\\\\''/g" \
++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
++ ;;
++ *)
++ # `set' quotes correctly as required by POSIX, so do not add quotes.
++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
++ ;;
++ esac >> confcache
++changequote([, ])dnl
++if cmp -s $cache_file confcache; then
++ :
++else
++ if test -w $cache_file; then
++ echo "updating cache $cache_file"
++ cat confcache > $cache_file
++ else
++ echo "not updating unwritable cache $cache_file"
++ fi
++fi
++rm -f confcache
++])
++
++dnl The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
++dnl AC_CACHE_VAL(CACHE-ID, COMMANDS-TO-SET-IT)
++define(AC_CACHE_VAL,
++[dnl We used to use the below line, but it fails if the 1st arg is a
++dnl shell variable, so we need the eval.
++dnl if test "${$1+set}" = set; then
++dnl the '' avoids an AIX 4.1 sh bug ("invalid expansion").
++if eval "test \"`echo '$''{'$1'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&AC_FD_MSG
++else
++ $2
++fi
++])
++
++dnl AC_CACHE_CHECK(MESSAGE, CACHE-ID, COMMANDS)
++define(AC_CACHE_CHECK,
++[AC_MSG_CHECKING([$1])
++AC_CACHE_VAL([$2], [$3])
++AC_MSG_RESULT([$]$2)])
++
++
++dnl ### Defining symbols
++
++
++dnl Set VARIABLE to VALUE, verbatim, or 1.
++dnl AC_DEFINE(VARIABLE [, VALUE])
++define(AC_DEFINE,
++[cat >> confdefs.h <<\EOF
++[#define] $1 ifelse($#, 2, [$2], $#, 3, [$2], 1)
++EOF
++])
++
++dnl Similar, but perform shell substitutions $ ` \ once on VALUE.
++define(AC_DEFINE_UNQUOTED,
++[cat >> confdefs.h <<EOF
++[#define] $1 ifelse($#, 2, [$2], $#, 3, [$2], 1)
++EOF
++])
++
++
++dnl ### Setting output variables
++
++
++dnl This macro protects VARIABLE from being diverted twice
++dnl if this macro is called twice for it.
++dnl AC_SUBST(VARIABLE)
++define(AC_SUBST,
++[ifdef([AC_SUBST_$1], ,
++[define([AC_SUBST_$1], )dnl
++AC_DIVERT_PUSH(AC_DIVERSION_SED)dnl
++s%@$1@%[$]$1%g
++AC_DIVERT_POP()dnl
++])])
++
++dnl AC_SUBST_FILE(VARIABLE)
++define(AC_SUBST_FILE,
++[ifdef([AC_SUBST_$1], ,
++[define([AC_SUBST_$1], )dnl
++AC_DIVERT_PUSH(AC_DIVERSION_SED)dnl
++/@$1@/r [$]$1
++s%@$1@%%g
++AC_DIVERT_POP()dnl
++])])
++
++
++dnl ### Printing messages
++
++
++dnl AC_MSG_CHECKING(FEATURE-DESCRIPTION)
++define(AC_MSG_CHECKING,
++[echo $ac_n "checking $1""... $ac_c" 1>&AC_FD_MSG
++echo "configure:__oline__: checking $1" >&AC_FD_CC])
++
++dnl AC_CHECKING(FEATURE-DESCRIPTION)
++define(AC_CHECKING,
++[echo "checking $1" 1>&AC_FD_MSG
++echo "configure:__oline__: checking $1" >&AC_FD_CC])
++
++dnl AC_MSG_RESULT(RESULT-DESCRIPTION)
++define(AC_MSG_RESULT,
++[echo "$ac_t""$1" 1>&AC_FD_MSG])
++
++dnl AC_VERBOSE(RESULT-DESCRIPTION)
++define(AC_VERBOSE,
++[AC_OBSOLETE([$0], [; instead use AC_MSG_RESULT])dnl
++echo " $1" 1>&AC_FD_MSG])
++
++dnl AC_MSG_WARN(PROBLEM-DESCRIPTION)
++define(AC_MSG_WARN,
++[echo "configure: warning: $1" 1>&2])
++
++dnl AC_MSG_ERROR(ERROR-DESCRIPTION)
++define(AC_MSG_ERROR,
++[{ echo "configure: error: $1" 1>&2; exit 1; }])
++
++
++dnl ### Selecting which language to use for testing
++
++
++dnl AC_LANG_C()
++AC_DEFUN(AC_LANG_C,
++[define([AC_LANG], [C])dnl
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
++cross_compiling=$ac_cv_prog_cc_cross
++])
++
++dnl AC_LANG_CPLUSPLUS()
++AC_DEFUN(AC_LANG_CPLUSPLUS,
++[define([AC_LANG], [CPLUSPLUS])dnl
++ac_ext=C
++# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CXXCPP $CPPFLAGS'
++ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
++ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
++cross_compiling=$ac_cv_prog_cxx_cross
++])
++
++dnl AC_LANG_FORTRAN77()
++AC_DEFUN(AC_LANG_FORTRAN77,
++[define([AC_LANG], [FORTRAN77])dnl
++ac_ext=f
++ac_compile='${F77-f77} -c $FFLAGS conftest.$ac_ext 1>&AC_FD_CC'
++ac_link='${F77-f77} -o conftest${ac_exeext} $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
++cross_compiling=$ac_cv_prog_f77_cross
++])
++
++dnl Push the current language on a stack.
++dnl AC_LANG_SAVE()
++define(AC_LANG_SAVE,
++[pushdef([AC_LANG_STACK], AC_LANG)])
++
++dnl Restore the current language from the stack.
++dnl AC_LANG_RESTORE()
++pushdef([AC_LANG_RESTORE],
++[ifelse(AC_LANG_STACK, [C], [AC_LANG_C],dnl
++AC_LANG_STACK, [CPLUSPLUS], [AC_LANG_CPLUSPLUS],dnl
++AC_LANG_STACK, [FORTRAN77], [AC_LANG_FORTRAN77])[]popdef([AC_LANG_STACK])])
++
++
++dnl ### Compiler-running mechanics
++
++
++dnl The purpose of this macro is to "configure:123: command line"
++dnl written into config.log for every test run.
++dnl AC_TRY_EVAL(VARIABLE)
++AC_DEFUN(AC_TRY_EVAL,
++[{ (eval echo configure:__oline__: \"[$]$1\") 1>&AC_FD_CC; dnl
++(eval [$]$1) 2>&AC_FD_CC; }])
++
++dnl AC_TRY_COMMAND(COMMAND)
++AC_DEFUN(AC_TRY_COMMAND,
++[{ ac_try='$1'; AC_TRY_EVAL(ac_try); }])
++
++
++dnl ### Dependencies between macros
++
++
++dnl AC_BEFORE(THIS-MACRO-NAME, CALLED-MACRO-NAME)
++define(AC_BEFORE,
++[ifdef([AC_PROVIDE_$2], [errprint(__file__:__line__: [$2 was called before $1
++])])])
++
++dnl AC_REQUIRE(MACRO-NAME)
++define(AC_REQUIRE,
++[ifdef([AC_PROVIDE_$1], ,
++[AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
++indir([$1])
++AC_DIVERT_POP()dnl
++])])
++
++dnl AC_PROVIDE(MACRO-NAME)
++define(AC_PROVIDE,
++[define([AC_PROVIDE_$1], )])
++
++dnl AC_OBSOLETE(THIS-MACRO-NAME [, SUGGESTION])
++define(AC_OBSOLETE,
++[errprint(__file__:__line__: warning: [$1] is obsolete[$2]
++)])
++
++
++dnl ### Checking for programs
++
++
++dnl AC_CHECK_PROG(VARIABLE, PROG-TO-CHECK-FOR, VALUE-IF-FOUND
++dnl [, [VALUE-IF-NOT-FOUND] [, [PATH] [, [REJECT]]]])
++AC_DEFUN(AC_CHECK_PROG,
++[# Extract the first word of "$2", so it can be a program name with args.
++set dummy $2; ac_word=[$]2
++AC_MSG_CHECKING([for $ac_word])
++AC_CACHE_VAL(ac_cv_prog_$1,
++[if test -n "[$]$1"; then
++ ac_cv_prog_$1="[$]$1" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ifelse([$6], , , [ ac_prog_rejected=no
++])dnl
++dnl $ac_dummy forces splitting on constant user-supplied paths.
++dnl POSIX.2 word splitting is done only on the output of word expansions,
++dnl not every word. This closes a longstanding sh security hole.
++ ac_dummy="ifelse([$5], , $PATH, [$5])"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ifelse([$6], , , dnl
++[ if test "[$ac_dir/$ac_word]" = "$6"; then
++ ac_prog_rejected=yes
++ continue
++ fi
++])dnl
++ ac_cv_prog_$1="$3"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++ifelse([$6], , , [if test $ac_prog_rejected = yes; then
++ # We found a bogon in the path, so make sure we never use it.
++ set dummy [$]ac_cv_prog_$1
++ shift
++ if test [$]# -gt 0; then
++ # We chose a different compiler from the bogus one.
++ # However, it has the same basename, so the bogon will be chosen
++ # first if we set $1 to just the basename; use the full file name.
++ shift
++ set dummy "$ac_dir/$ac_word" "[$]@"
++ shift
++ ac_cv_prog_$1="[$]@"
++ifelse([$2], [$4], dnl
++[ else
++ # Default is a loser.
++ AC_MSG_ERROR([$1=$6 unacceptable, but no other $4 found in dnl
++ifelse([$5], , [\$]PATH, [$5])])
++])dnl
++ fi
++fi
++])dnl
++dnl If no 4th arg is given, leave the cache variable unset,
++dnl so AC_CHECK_PROGS will keep looking.
++ifelse([$4], , , [ test -z "[$]ac_cv_prog_$1" && ac_cv_prog_$1="$4"
++])dnl
++fi])dnl
++$1="$ac_cv_prog_$1"
++if test -n "[$]$1"; then
++ AC_MSG_RESULT([$]$1)
++else
++ AC_MSG_RESULT(no)
++fi
++AC_SUBST($1)dnl
++])
++
++dnl AC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
++AC_DEFUN(AC_PATH_PROG,
++[# Extract the first word of "$2", so it can be a program name with args.
++set dummy $2; ac_word=[$]2
++AC_MSG_CHECKING([for $ac_word])
++AC_CACHE_VAL(ac_cv_path_$1,
++[case "[$]$1" in
++ /*)
++ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
++ ;;
++ ?:/*)
++ ac_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
++ ;;
++ *)
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++dnl $ac_dummy forces splitting on constant user-supplied paths.
++dnl POSIX.2 word splitting is done only on the output of word expansions,
++dnl not every word. This closes a longstanding sh security hole.
++ ac_dummy="ifelse([$4], , $PATH, [$4])"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_path_$1="$ac_dir/$ac_word"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++dnl If no 3rd arg is given, leave the cache variable unset,
++dnl so AC_PATH_PROGS will keep looking.
++ifelse([$3], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$3"
++])dnl
++ ;;
++esac])dnl
++$1="$ac_cv_path_$1"
++if test -n "[$]$1"; then
++ AC_MSG_RESULT([$]$1)
++else
++ AC_MSG_RESULT(no)
++fi
++AC_SUBST($1)dnl
++])
++
++dnl AC_CHECK_PROGS(VARIABLE, PROGS-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND
++dnl [, PATH]])
++AC_DEFUN(AC_CHECK_PROGS,
++[for ac_prog in $2
++do
++AC_CHECK_PROG($1, [$]ac_prog, [$]ac_prog, , $4)
++test -n "[$]$1" && break
++done
++ifelse([$3], , , [test -n "[$]$1" || $1="$3"
++])])
++
++dnl AC_PATH_PROGS(VARIABLE, PROGS-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND
++dnl [, PATH]])
++AC_DEFUN(AC_PATH_PROGS,
++[for ac_prog in $2
++do
++AC_PATH_PROG($1, [$]ac_prog, , $4)
++test -n "[$]$1" && break
++done
++ifelse([$3], , , [test -n "[$]$1" || $1="$3"
++])])
++
++dnl Internal subroutine.
++AC_DEFUN(AC_CHECK_TOOL_PREFIX,
++[AC_REQUIRE([AC_CANONICAL_HOST])AC_REQUIRE([AC_CANONICAL_BUILD])dnl
++if test $host != $build; then
++ ac_tool_prefix=${host_alias}-
++else
++ ac_tool_prefix=
++fi
++])
++
++dnl AC_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
++AC_DEFUN(AC_CHECK_TOOL,
++[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
++AC_CHECK_PROG($1, ${ac_tool_prefix}$2, ${ac_tool_prefix}$2,
++ ifelse([$3], , [$2], ), $4)
++ifelse([$3], , , [
++if test -z "$ac_cv_prog_$1"; then
++if test -n "$ac_tool_prefix"; then
++ AC_CHECK_PROG($1, $2, $2, $3)
++else
++ $1="$3"
++fi
++fi])
++])
++
++dnl Guess the value for the `prefix' variable by looking for
++dnl the argument program along PATH and taking its parent.
++dnl Example: if the argument is `gcc' and we find /usr/local/gnu/bin/gcc,
++dnl set `prefix' to /usr/local/gnu.
++dnl This comes too late to find a site file based on the prefix,
++dnl and it might use a cached value for the path.
++dnl No big loss, I think, since most configures don't use this macro anyway.
++dnl AC_PREFIX_PROGRAM(PROGRAM)
++AC_DEFUN(AC_PREFIX_PROGRAM,
++[if test "x$prefix" = xNONE; then
++changequote(<<, >>)dnl
++define(<<AC_VAR_NAME>>, translit($1, [a-z], [A-Z]))dnl
++changequote([, ])dnl
++dnl We reimplement AC_MSG_CHECKING (mostly) to avoid the ... in the middle.
++echo $ac_n "checking for prefix by $ac_c" 1>&AC_FD_MSG
++AC_PATH_PROG(AC_VAR_NAME, $1)
++changequote(<<, >>)dnl
++ if test -n "$ac_cv_path_<<>>AC_VAR_NAME"; then
++ prefix=`echo $ac_cv_path_<<>>AC_VAR_NAME|sed 's%/[^/][^/]*//*[^/][^/]*$%%'`
++changequote([, ])dnl
++ fi
++fi
++undefine([AC_VAR_NAME])dnl
++])
++
++dnl Try to compile, link and execute TEST-PROGRAM. Set WORKING-VAR to
++dnl `yes' if the current compiler works, otherwise set it ti `no'. Set
++dnl CROSS-VAR to `yes' if the compiler and linker produce non-native
++dnl executables, otherwise set it to `no'. Before calling
++dnl `AC_TRY_COMPILER()', call `AC_LANG_*' to set-up for the right
++dnl language.
++dnl
++dnl AC_TRY_COMPILER(TEST-PROGRAM, WORKING-VAR, CROSS-VAR)
++AC_DEFUN(AC_TRY_COMPILER,
++[cat > conftest.$ac_ext << EOF
++ifelse(AC_LANG, [FORTRAN77], ,
++[
++[#]line __oline__ "configure"
++#include "confdefs.h"
++])
++[$1]
++EOF
++if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
++ [$2]=yes
++ # If we can't run a trivial program, we are probably using a cross compiler.
++ if (./conftest; exit) 2>/dev/null; then
++ [$3]=no
++ else
++ [$3]=yes
++ fi
++else
++ echo "configure: failed program was:" >&AC_FD_CC
++ cat conftest.$ac_ext >&AC_FD_CC
++ [$2]=no
++fi
++rm -fr conftest*])
++
++
++dnl ### Checking for libraries
++
++
++dnl AC_TRY_LINK_FUNC(func, action-if-found, action-if-not-found)
++dnl Try to link a program that calls FUNC, handling GCC builtins. If
++dnl the link succeeds, execute ACTION-IF-FOUND; otherwise, execute
++dnl ACTION-IF-NOT-FOUND.
++
++AC_DEFUN(AC_TRY_LINK_FUNC,
++AC_TRY_LINK(dnl
++ifelse([$1], [main], , dnl Avoid conflicting decl of main.
++[/* Override any gcc2 internal prototype to avoid an error. */
++]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
++extern "C"
++#endif
++])dnl
++[/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $1();
++]),
++[$1()],
++[$2],
++[$3]))
++
++
++dnl AC_SEARCH_LIBS(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
++dnl [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
++dnl Search for a library defining FUNC, if it's not already available.
++
++AC_DEFUN(AC_SEARCH_LIBS,
++[AC_PREREQ([2.13])
++AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
++[ac_func_search_save_LIBS="$LIBS"
++ac_cv_search_$1="no"
++AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
++test "$ac_cv_search_$1" = "no" && for i in $2; do
++LIBS="-l$i $5 $ac_func_search_save_LIBS"
++AC_TRY_LINK_FUNC([$1],
++[ac_cv_search_$1="-l$i"
++break])
++done
++LIBS="$ac_func_search_save_LIBS"])
++if test "$ac_cv_search_$1" != "no"; then
++ test "$ac_cv_search_$1" = "none required" || LIBS="$ac_cv_search_$1 $LIBS"
++ $3
++else :
++ $4
++fi])
++
++
++
++dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
++dnl [, OTHER-LIBRARIES]]])
++AC_DEFUN(AC_CHECK_LIB,
++[AC_MSG_CHECKING([for $2 in -l$1])
++dnl Use a cache variable name containing both the library and function name,
++dnl because the test really is for library $1 defining function $2, not
++dnl just for library $1. Separate tests with the same $1 and different $2s
++dnl may have different results.
++ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
++AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
++[ac_save_LIBS="$LIBS"
++LIBS="-l$1 $5 $LIBS"
++AC_TRY_LINK(dnl
++ifelse(AC_LANG, [FORTRAN77], ,
++ifelse([$2], [main], , dnl Avoid conflicting decl of main.
++[/* Override any gcc2 internal prototype to avoid an error. */
++]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
++extern "C"
++#endif
++])dnl
++[/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $2();
++])),
++ [$2()],
++ eval "ac_cv_lib_$ac_lib_var=yes",
++ eval "ac_cv_lib_$ac_lib_var=no")
++LIBS="$ac_save_LIBS"
++])dnl
++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ ifelse([$3], ,
++[changequote(, )dnl
++ ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
++changequote([, ])dnl
++ AC_DEFINE_UNQUOTED($ac_tr_lib)
++ LIBS="-l$1 $LIBS"
++], [$3])
++else
++ AC_MSG_RESULT(no)
++ifelse([$4], , , [$4
++])dnl
++fi
++])
++
++dnl AC_HAVE_LIBRARY(LIBRARY, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
++dnl [, OTHER-LIBRARIES]]])
++AC_DEFUN(AC_HAVE_LIBRARY,
++[AC_OBSOLETE([$0], [; instead use AC_CHECK_LIB])dnl
++changequote(<<, >>)dnl
++define(<<AC_LIB_NAME>>, dnl
++patsubst(patsubst($1, <<lib\([^\.]*\)\.a>>, <<\1>>), <<-l>>, <<>>))dnl
++define(<<AC_CV_NAME>>, ac_cv_lib_<<>>AC_LIB_NAME)dnl
++changequote([, ])dnl
++AC_MSG_CHECKING([for -l[]AC_LIB_NAME])
++AC_CACHE_VAL(AC_CV_NAME,
++[ac_save_LIBS="$LIBS"
++LIBS="-l[]AC_LIB_NAME[] $4 $LIBS"
++AC_TRY_LINK( , [main()], AC_CV_NAME=yes, AC_CV_NAME=no)
++LIBS="$ac_save_LIBS"
++])dnl
++AC_MSG_RESULT($AC_CV_NAME)
++if test "$AC_CV_NAME" = yes; then
++ ifelse([$2], ,
++[AC_DEFINE([HAVE_LIB]translit(AC_LIB_NAME, [a-z], [A-Z]))
++ LIBS="-l[]AC_LIB_NAME[] $LIBS"
++], [$2])
++ifelse([$3], , , [else
++ $3
++])dnl
++fi
++undefine([AC_LIB_NAME])dnl
++undefine([AC_CV_NAME])dnl
++])
++
++
++dnl ### Examining declarations
++
++
++dnl AC_TRY_CPP(INCLUDES, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
++AC_DEFUN(AC_TRY_CPP,
++[AC_REQUIRE_CPP()dnl
++cat > conftest.$ac_ext <<EOF
++[#]line __oline__ "configure"
++#include "confdefs.h"
++[$1]
++EOF
++dnl Capture the stderr of cpp. eval is necessary to expand ac_cpp.
++dnl We used to copy stderr to stdout and capture it in a variable, but
++dnl that breaks under sh -x, which writes compile commands starting
++dnl with ` +' to stderr in eval and subshells.
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++AC_TRY_EVAL(ac_try)
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++ ifelse([$2], , :, [rm -rf conftest*
++ $2])
++else
++ echo "$ac_err" >&AC_FD_CC
++ echo "configure: failed program was:" >&AC_FD_CC
++ cat conftest.$ac_ext >&AC_FD_CC
++ifelse([$3], , , [ rm -rf conftest*
++ $3
++])dnl
++fi
++rm -f conftest*])
++
++dnl AC_EGREP_HEADER(PATTERN, HEADER-FILE, ACTION-IF-FOUND [,
++dnl ACTION-IF-NOT-FOUND])
++AC_DEFUN(AC_EGREP_HEADER,
++[AC_EGREP_CPP([$1], [#include <$2>], [$3], [$4])])
++
++dnl Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must
++dnl come early, it is not included in AC_BEFORE checks.
++dnl AC_EGREP_CPP(PATTERN, PROGRAM, [ACTION-IF-FOUND [,
++dnl ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_EGREP_CPP,
++[AC_REQUIRE_CPP()dnl
++cat > conftest.$ac_ext <<EOF
++[#]line __oline__ "configure"
++#include "confdefs.h"
++[$2]
++EOF
++dnl eval is necessary to expand ac_cpp.
++dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
++if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC |
++dnl Prevent m4 from eating character classes:
++changequote(, )dnl
++ egrep "$1" >/dev/null 2>&1; then
++changequote([, ])dnl
++ ifelse([$3], , :, [rm -rf conftest*
++ $3])
++ifelse([$4], , , [else
++ rm -rf conftest*
++ $4
++])dnl
++fi
++rm -f conftest*
++])
++
++
++dnl ### Examining syntax
++
++
++dnl AC_TRY_COMPILE(INCLUDES, FUNCTION-BODY,
++dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_TRY_COMPILE,
++[cat > conftest.$ac_ext <<EOF
++ifelse(AC_LANG, [FORTRAN77],
++[ program main
++[$2]
++ end],
++[dnl This sometimes fails to find confdefs.h, for some reason.
++dnl [#]line __oline__ "[$]0"
++[#]line __oline__ "configure"
++#include "confdefs.h"
++[$1]
++int main() {
++[$2]
++; return 0; }
++])EOF
++if AC_TRY_EVAL(ac_compile); then
++ ifelse([$3], , :, [rm -rf conftest*
++ $3])
++else
++ echo "configure: failed program was:" >&AC_FD_CC
++ cat conftest.$ac_ext >&AC_FD_CC
++ifelse([$4], , , [ rm -rf conftest*
++ $4
++])dnl
++fi
++rm -f conftest*])
++
++
++dnl ### Examining libraries
++
++
++dnl AC_COMPILE_CHECK(ECHO-TEXT, INCLUDES, FUNCTION-BODY,
++dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
++AC_DEFUN(AC_COMPILE_CHECK,
++[AC_OBSOLETE([$0], [; instead use AC_TRY_COMPILE or AC_TRY_LINK, and AC_MSG_CHECKING and AC_MSG_RESULT])dnl
++ifelse([$1], , , [AC_CHECKING([for $1])
++])dnl
++AC_TRY_LINK([$2], [$3], [$4], [$5])
++])
++
++dnl AC_TRY_LINK(INCLUDES, FUNCTION-BODY,
++dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_TRY_LINK,
++[cat > conftest.$ac_ext <<EOF
++ifelse(AC_LANG, [FORTRAN77],
++[
++ program main
++ call [$2]
++ end
++],
++[dnl This sometimes fails to find confdefs.h, for some reason.
++dnl [#]line __oline__ "[$]0"
++[#]line __oline__ "configure"
++#include "confdefs.h"
++[$1]
++int main() {
++[$2]
++; return 0; }
++])EOF
++if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
++ ifelse([$3], , :, [rm -rf conftest*
++ $3])
++else
++ echo "configure: failed program was:" >&AC_FD_CC
++ cat conftest.$ac_ext >&AC_FD_CC
++ifelse([$4], , , [ rm -rf conftest*
++ $4
++])dnl
++fi
++rm -f conftest*])
++
++
++dnl ### Checking for run-time features
++
++
++dnl AC_TRY_RUN(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE
++dnl [, ACTION-IF-CROSS-COMPILING]]])
++AC_DEFUN(AC_TRY_RUN,
++[if test "$cross_compiling" = yes; then
++ ifelse([$4], ,
++ [errprint(__file__:__line__: warning: [AC_TRY_RUN] called without default to allow cross compiling
++)dnl
++ AC_MSG_ERROR(can not run test program while cross compiling)],
++ [$4])
++else
++ AC_TRY_RUN_NATIVE([$1], [$2], [$3])
++fi
++])
++
++dnl Like AC_TRY_RUN but assumes a native-environment (non-cross) compiler.
++dnl AC_TRY_RUN_NATIVE(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE]])
++AC_DEFUN(AC_TRY_RUN_NATIVE,
++[cat > conftest.$ac_ext <<EOF
++[#]line __oline__ "configure"
++#include "confdefs.h"
++ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
++extern "C" void exit(int);
++#endif
++])dnl
++[$1]
++EOF
++if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++then
++dnl Don't remove the temporary files here, so they can be examined.
++ ifelse([$2], , :, [$2])
++else
++ echo "configure: failed program was:" >&AC_FD_CC
++ cat conftest.$ac_ext >&AC_FD_CC
++ifelse([$3], , , [ rm -fr conftest*
++ $3
++])dnl
++fi
++rm -fr conftest*])
++
++
++dnl ### Checking for header files
++
++
++dnl AC_CHECK_HEADER(HEADER-FILE, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_HEADER,
++[dnl Do the transliteration at runtime so arg 1 can be a shell variable.
++ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
++AC_MSG_CHECKING([for $1])
++AC_CACHE_VAL(ac_cv_header_$ac_safe,
++[AC_TRY_CPP([#include <$1>], eval "ac_cv_header_$ac_safe=yes",
++ eval "ac_cv_header_$ac_safe=no")])dnl
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++else
++ AC_MSG_RESULT(no)
++ifelse([$3], , , [$3
++])dnl
++fi
++])
++
++dnl AC_CHECK_HEADERS(HEADER-FILE... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_HEADERS,
++[for ac_hdr in $1
++do
++AC_CHECK_HEADER($ac_hdr,
++[changequote(, )dnl
++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++changequote([, ])dnl
++ AC_DEFINE_UNQUOTED($ac_tr_hdr) $2], $3)dnl
++done
++])
++
++
++dnl ### Checking for the existence of files
++
++dnl AC_CHECK_FILE(FILE, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_FILE,
++[AC_REQUIRE([AC_PROG_CC])
++dnl Do the transliteration at runtime so arg 1 can be a shell variable.
++ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
++AC_MSG_CHECKING([for $1])
++AC_CACHE_VAL(ac_cv_file_$ac_safe,
++[if test "$cross_compiling" = yes; then
++ errprint(__file__:__line__: warning: Cannot check for file existence when cross compiling
++)dnl
++ AC_MSG_ERROR(Cannot check for file existence when cross compiling)
++else
++ if test -r $1; then
++ eval "ac_cv_file_$ac_safe=yes"
++ else
++ eval "ac_cv_file_$ac_safe=no"
++ fi
++fi])dnl
++if eval "test \"`echo '$ac_cv_file_'$ac_safe`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++else
++ AC_MSG_RESULT(no)
++ifelse([$3], , , [$3])
++fi
++])
++
++dnl AC_CHECK_FILES(FILE... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_FILES,
++[for ac_file in $1
++do
++AC_CHECK_FILE($ac_file,
++[changequote(, )dnl
++ ac_tr_file=HAVE_`echo $ac_file | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++changequote([, ])dnl
++ AC_DEFINE_UNQUOTED($ac_tr_file) $2], $3)dnl
++done
++])
++
++
++dnl ### Checking for library functions
++
++
++dnl AC_CHECK_FUNC(FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_FUNC,
++[AC_MSG_CHECKING([for $1])
++AC_CACHE_VAL(ac_cv_func_$1,
++[AC_TRY_LINK(
++dnl Don't include <ctype.h> because on OSF/1 3.0 it includes <sys/types.h>
++dnl which includes <sys/select.h> which contains a prototype for
++dnl select. Similarly for bzero.
++[/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $1(); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
++extern "C"
++#endif
++])dnl
++[/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $1();
++], [
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_$1) || defined (__stub___$1)
++choke me
++#else
++$1();
++#endif
++], eval "ac_cv_func_$1=yes", eval "ac_cv_func_$1=no")])
++if eval "test \"`echo '$ac_cv_func_'$1`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++else
++ AC_MSG_RESULT(no)
++ifelse([$3], , , [$3
++])dnl
++fi
++])
++
++dnl AC_CHECK_FUNCS(FUNCTION... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
++AC_DEFUN(AC_CHECK_FUNCS,
++[for ac_func in $1
++do
++AC_CHECK_FUNC($ac_func,
++[changequote(, )dnl
++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
++changequote([, ])dnl
++ AC_DEFINE_UNQUOTED($ac_tr_func) $2], $3)dnl
++done
++])
++
++dnl AC_REPLACE_FUNCS(FUNCTION...)
++AC_DEFUN(AC_REPLACE_FUNCS,
++[AC_CHECK_FUNCS([$1], , [LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"])
++AC_SUBST(LIBOBJS)dnl
++])
++
++
++dnl ### Checking compiler characteristics
++
++
++dnl AC_CHECK_SIZEOF(TYPE [, CROSS-SIZE])
++AC_DEFUN(AC_CHECK_SIZEOF,
++[changequote(<<, >>)dnl
++dnl The name to #define.
++define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
++dnl The cache variable name.
++define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
++changequote([, ])dnl
++AC_MSG_CHECKING(size of $1)
++AC_CACHE_VAL(AC_CV_NAME,
++[AC_TRY_RUN([#include <stdio.h>
++main()
++{
++ FILE *f=fopen("conftestval", "w");
++ if (!f) exit(1);
++ fprintf(f, "%d\n", sizeof($1));
++ exit(0);
++}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
++AC_MSG_RESULT($AC_CV_NAME)
++AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
++undefine([AC_TYPE_NAME])dnl
++undefine([AC_CV_NAME])dnl
++])
++
++
++dnl ### Checking for typedefs
++
++
++dnl AC_CHECK_TYPE(TYPE, DEFAULT)
++AC_DEFUN(AC_CHECK_TYPE,
++[AC_REQUIRE([AC_HEADER_STDC])dnl
++AC_MSG_CHECKING(for $1)
++AC_CACHE_VAL(ac_cv_type_$1,
++[AC_EGREP_CPP(dnl
++changequote(<<,>>)dnl
++<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
++changequote([,]), [#include <sys/types.h>
++#if STDC_HEADERS
++#include <stdlib.h>
++#include <stddef.h>
++#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
++AC_MSG_RESULT($ac_cv_type_$1)
++if test $ac_cv_type_$1 = no; then
++ AC_DEFINE($1, $2)
++fi
++])
++
++
++dnl ### Creating output files
++
++
++dnl AC_CONFIG_HEADER(HEADER-TO-CREATE ...)
++AC_DEFUN(AC_CONFIG_HEADER,
++[define(AC_LIST_HEADER, $1)])
++
++dnl Link each of the existing files SOURCE... to the corresponding
++dnl link name in DEST...
++dnl AC_LINK_FILES(SOURCE..., DEST...)
++AC_DEFUN(AC_LINK_FILES,
++[dnl
++define([AC_LIST_FILES], ifdef([AC_LIST_FILES], [AC_LIST_FILES ],)[$1])dnl
++define([AC_LIST_LINKS], ifdef([AC_LIST_LINKS], [AC_LIST_LINKS ],)[$2])])
++
++dnl Add additional commands for AC_OUTPUT to put into config.status.
++dnl Use diversions instead of macros so we can be robust in the
++dnl presence of commas in $1 and/or $2.
++dnl AC_OUTPUT_COMMANDS(EXTRA-CMDS, INIT-CMDS)
++AC_DEFUN(AC_OUTPUT_COMMANDS,
++[AC_DIVERT_PUSH(AC_DIVERSION_CMDS)dnl
++[$1]
++AC_DIVERT_POP()dnl
++AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)dnl
++[$2]
++AC_DIVERT_POP()])
++
++dnl AC_CONFIG_SUBDIRS(DIR ...)
++AC_DEFUN(AC_CONFIG_SUBDIRS,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++define([AC_LIST_SUBDIRS], ifdef([AC_LIST_SUBDIRS], [AC_LIST_SUBDIRS ],)[$1])dnl
++subdirs="AC_LIST_SUBDIRS"
++AC_SUBST(subdirs)dnl
++])
++
++dnl The big finish.
++dnl Produce config.status, config.h, and links; and configure subdirs.
++dnl AC_OUTPUT([FILE...] [, EXTRA-CMDS] [, INIT-CMDS])
++define(AC_OUTPUT,
++[trap '' 1 2 15
++AC_CACHE_SAVE
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
++
++# Any assignment to VPATH causes Sun make to only execute
++# the first set of double-colon rules, so remove it if not needed.
++# If there is a colon in the path, we need to keep it.
++if test "x$srcdir" = x.; then
++changequote(, )dnl
++ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
++changequote([, ])dnl
++fi
++
++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
++
++ifdef([AC_LIST_HEADER], [DEFS=-DHAVE_CONFIG_H], [AC_OUTPUT_MAKE_DEFS()])
++
++# Without the "./", some shells look in PATH for config.status.
++: ${CONFIG_STATUS=./config.status}
++
++echo creating $CONFIG_STATUS
++rm -f $CONFIG_STATUS
++cat > $CONFIG_STATUS <<EOF
++#! /bin/sh
++# Generated automatically by configure.
++# Run this file to recreate the current configuration.
++# This directory was configured as follows,
++dnl hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++dnl so uname gets run too.
++# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
++#
++[#] [$]0 [$]ac_configure_args
++#
++# Compiler output produced by configure, useful for debugging
++# configure, is in ./config.log if it exists.
++
++changequote(, )dnl
++ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
++changequote([, ])dnl
++for ac_option
++do
++ case "[\$]ac_option" in
++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++ echo "running [\$]{CONFIG_SHELL-/bin/sh} [$]0 [$]ac_configure_args --no-create --no-recursion"
++ exec [\$]{CONFIG_SHELL-/bin/sh} [$]0 [$]ac_configure_args --no-create --no-recursion ;;
++ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
++ echo "$CONFIG_STATUS generated by autoconf version AC_ACVERSION"
++ exit 0 ;;
++ -help | --help | --hel | --he | --h)
++ echo "[\$]ac_cs_usage"; exit 0 ;;
++ *) echo "[\$]ac_cs_usage"; exit 1 ;;
++ esac
++done
++
++ac_given_srcdir=$srcdir
++ifdef([AC_PROVIDE_AC_PROG_INSTALL], [ac_given_INSTALL="$INSTALL"
++])dnl
++
++changequote(<<, >>)dnl
++ifdef(<<AC_LIST_HEADER>>,
++<<trap 'rm -fr `echo "$1 AC_LIST_HEADER" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15>>,
++<<trap 'rm -fr `echo "$1" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15>>)
++changequote([, ])dnl
++EOF
++cat >> $CONFIG_STATUS <<EOF
++
++AC_OUTPUT_FILES($1)
++ifdef([AC_LIST_HEADER], [AC_OUTPUT_HEADER(AC_LIST_HEADER)])dnl
++ifdef([AC_LIST_LINKS], [AC_OUTPUT_LINKS(AC_LIST_FILES, AC_LIST_LINKS)])dnl
++EOF
++cat >> $CONFIG_STATUS <<EOF
++undivert(AC_DIVERSION_ICMDS)dnl
++$3
++EOF
++cat >> $CONFIG_STATUS <<\EOF
++undivert(AC_DIVERSION_CMDS)dnl
++$2
++exit 0
++EOF
++chmod +x $CONFIG_STATUS
++rm -fr confdefs* $ac_clean_files
++test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
++dnl config.status should not do recursion.
++ifdef([AC_LIST_SUBDIRS], [AC_OUTPUT_SUBDIRS(AC_LIST_SUBDIRS)])dnl
++])dnl
++
++dnl Set the DEFS variable to the -D options determined earlier.
++dnl This is a subroutine of AC_OUTPUT.
++dnl It is called inside configure, outside of config.status.
++dnl AC_OUTPUT_MAKE_DEFS()
++define(AC_OUTPUT_MAKE_DEFS,
++[# Transform confdefs.h into DEFS.
++dnl Using a here document instead of a string reduces the quoting nightmare.
++# Protect against shell expansion while executing Makefile rules.
++# Protect against Makefile macro expansion.
++cat > conftest.defs <<\EOF
++changequote(<<, >>)dnl
++s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
++s%[ `~<<#>>$^&*(){}\\|;'"<>?]%\\&%g
++s%\[%\\&%g
++s%\]%\\&%g
++s%\$%$$%g
++changequote([, ])dnl
++EOF
++DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
++rm -f conftest.defs
++])
++
++dnl Do the variable substitutions to create the Makefiles or whatever.
++dnl This is a subroutine of AC_OUTPUT. It is called inside an unquoted
++dnl here document whose contents are going into config.status, but
++dnl upon returning, the here document is being quoted.
++dnl AC_OUTPUT_FILES(FILE...)
++define(AC_OUTPUT_FILES,
++[# Protect against being on the right side of a sed subst in config.status.
++changequote(, )dnl
++sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
++ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
++changequote([, ])dnl
++dnl These here document variables are unquoted when configure runs
++dnl but quoted when config.status runs, so variables are expanded once.
++$ac_vpsub
++dnl Shell code in configure.in might set extrasub.
++$extrasub
++dnl Insert the sed substitutions of variables.
++undivert(AC_DIVERSION_SED)
++CEOF
++EOF
++
++cat >> $CONFIG_STATUS <<\EOF
++
++# Split the substitutions into bite-sized pieces for seds with
++# small command number limits, like on Digital OSF/1 and HP-UX.
++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
++ac_file=1 # Number of current file.
++ac_beg=1 # First line for current file.
++ac_end=$ac_max_sed_cmds # Line after last line for current file.
++ac_more_lines=:
++ac_sed_cmds=""
++while $ac_more_lines; do
++ if test $ac_beg -gt 1; then
++ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
++ else
++ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
++ fi
++ if test ! -s conftest.s$ac_file; then
++ ac_more_lines=false
++ rm -f conftest.s$ac_file
++ else
++ if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds="sed -f conftest.s$ac_file"
++ else
++ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
++ fi
++ ac_file=`expr $ac_file + 1`
++ ac_beg=$ac_end
++ ac_end=`expr $ac_end + $ac_max_sed_cmds`
++ fi
++done
++if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds=cat
++fi
++EOF
++
++cat >> $CONFIG_STATUS <<EOF
++
++CONFIG_FILES=\${CONFIG_FILES-"$1"}
++EOF
++cat >> $CONFIG_STATUS <<\EOF
++for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
++changequote(, )dnl
++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
++ case "$ac_file" in
++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
++ *) ac_file_in="${ac_file}.in" ;;
++ esac
++
++ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
++
++ # Remove last slash and all that follows it. Not all systems have dirname.
++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++changequote([, ])dnl
++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
++ # The file is in a subdirectory.
++ test ! -d "$ac_dir" && mkdir "$ac_dir"
++ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
++ # A "../" for each directory in $ac_dir_suffix.
++changequote(, )dnl
++ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
++changequote([, ])dnl
++ else
++ ac_dir_suffix= ac_dots=
++ fi
++
++ case "$ac_given_srcdir" in
++ .) srcdir=.
++ if test -z "$ac_dots"; then top_srcdir=.
++ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
++ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
++ *) # Relative path.
++ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
++ top_srcdir="$ac_dots$ac_given_srcdir" ;;
++ esac
++
++ifdef([AC_PROVIDE_AC_PROG_INSTALL],
++[ case "$ac_given_INSTALL" in
++changequote(, )dnl
++ [/$]*) INSTALL="$ac_given_INSTALL" ;;
++changequote([, ])dnl
++ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
++ esac
++])dnl
++
++ echo creating "$ac_file"
++ rm -f "$ac_file"
++ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
++ case "$ac_file" in
++ *Makefile*) ac_comsub="1i\\
++# $configure_input" ;;
++ *) ac_comsub= ;;
++ esac
++
++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
++ sed -e "$ac_comsub
++s%@configure_input@%$configure_input%g
++s%@srcdir@%$srcdir%g
++s%@top_srcdir@%$top_srcdir%g
++ifdef([AC_PROVIDE_AC_PROG_INSTALL], [s%@INSTALL@%$INSTALL%g
++])dnl
++dnl The parens around the eval prevent an "illegal io" in Ultrix sh.
++" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
++dnl This would break Makefile dependencies.
++dnl if cmp -s $ac_file conftest.out 2>/dev/null; then
++dnl echo "$ac_file is unchanged"
++dnl rm -f conftest.out
++dnl else
++dnl rm -f $ac_file
++dnl mv conftest.out $ac_file
++dnl fi
++fi; done
++rm -f conftest.s*
++])
++
++dnl Create the config.h files from the config.h.in files.
++dnl This is a subroutine of AC_OUTPUT. It is called inside a quoted
++dnl here document whose contents are going into config.status.
++dnl AC_OUTPUT_HEADER(HEADER-FILE...)
++define(AC_OUTPUT_HEADER,
++[changequote(<<, >>)dnl
++# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
++# NAME is the cpp macro being defined and VALUE is the value it is being given.
++#
++# ac_d sets the value in "#define NAME VALUE" lines.
++ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
++ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
++ac_dC='\3'
++ac_dD='%g'
++# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
++ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
++ac_uB='\([ ]\)%\1#\2define\3'
++ac_uC=' '
++ac_uD='\4%g'
++# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
++ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
++ac_eB='<<$>>%\1#\2define\3'
++ac_eC=' '
++ac_eD='%g'
++changequote([, ])dnl
++
++if test "${CONFIG_HEADERS+set}" != set; then
++EOF
++dnl Support passing AC_CONFIG_HEADER a value containing shell variables.
++cat >> $CONFIG_STATUS <<EOF
++ CONFIG_HEADERS="$1"
++EOF
++cat >> $CONFIG_STATUS <<\EOF
++fi
++for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
++changequote(, )dnl
++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
++ case "$ac_file" in
++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
++ *) ac_file_in="${ac_file}.in" ;;
++ esac
++changequote([, ])dnl
++
++ echo creating $ac_file
++
++ rm -f conftest.frag conftest.in conftest.out
++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
++ cat $ac_file_inputs > conftest.in
++
++EOF
++
++# Transform confdefs.h into a sed script conftest.vals that substitutes
++# the proper values into config.h.in to produce config.h. And first:
++# Protect against being on the right side of a sed subst in config.status.
++# Protect against being in an unquoted here document in config.status.
++rm -f conftest.vals
++dnl Using a here document instead of a string reduces the quoting nightmare.
++dnl Putting comments in sed scripts is not portable.
++cat > conftest.hdr <<\EOF
++changequote(<<, >>)dnl
++s/[\\&%]/\\&/g
++s%[\\$`]%\\&%g
++s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
++s%ac_d%ac_u%gp
++s%ac_u%ac_e%gp
++changequote([, ])dnl
++EOF
++sed -n -f conftest.hdr confdefs.h > conftest.vals
++rm -f conftest.hdr
++
++# This sed command replaces #undef with comments. This is necessary, for
++# example, in the case of _POSIX_SOURCE, which is predefined and required
++# on some systems where configure will not decide to define it.
++cat >> conftest.vals <<\EOF
++changequote(, )dnl
++s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
++changequote([, ])dnl
++EOF
++
++# Break up conftest.vals because some shells have a limit on
++# the size of here documents, and old seds have small limits too.
++
++rm -f conftest.tail
++while :
++do
++ ac_lines=`grep -c . conftest.vals`
++ # grep -c gives empty output for an empty file on some AIX systems.
++ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
++ # Write a limited-size here document to conftest.frag.
++ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
++ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
++ echo 'CEOF
++ sed -f conftest.frag conftest.in > conftest.out
++ rm -f conftest.in
++ mv conftest.out conftest.in
++' >> $CONFIG_STATUS
++ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
++ rm -f conftest.vals
++ mv conftest.tail conftest.vals
++done
++rm -f conftest.vals
++
++dnl Now back to your regularly scheduled config.status.
++cat >> $CONFIG_STATUS <<\EOF
++ rm -f conftest.frag conftest.h
++ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
++ cat conftest.in >> conftest.h
++ rm -f conftest.in
++ if cmp -s $ac_file conftest.h 2>/dev/null; then
++ echo "$ac_file is unchanged"
++ rm -f conftest.h
++ else
++ # Remove last slash and all that follows it. Not all systems have dirname.
++ changequote(, )dnl
++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++ changequote([, ])dnl
++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
++ # The file is in a subdirectory.
++ test ! -d "$ac_dir" && mkdir "$ac_dir"
++ fi
++ rm -f $ac_file
++ mv conftest.h $ac_file
++ fi
++fi; done
++
++])
++
++dnl This is a subroutine of AC_OUTPUT. It is called inside a quoted
++dnl here document whose contents are going into config.status.
++dnl AC_OUTPUT_LINKS(SOURCE..., DEST...)
++define(AC_OUTPUT_LINKS,
++[EOF
++
++cat >> $CONFIG_STATUS <<EOF
++ac_sources="$1"
++ac_dests="$2"
++EOF
++
++cat >> $CONFIG_STATUS <<\EOF
++srcdir=$ac_given_srcdir
++while test -n "$ac_sources"; do
++ set $ac_dests; ac_dest=[$]1; shift; ac_dests=[$]*
++ set $ac_sources; ac_source=[$]1; shift; ac_sources=[$]*
++
++ echo "linking $srcdir/$ac_source to $ac_dest"
++
++ if test ! -r $srcdir/$ac_source; then
++ AC_MSG_ERROR($srcdir/$ac_source: File not found)
++ fi
++ rm -f $ac_dest
++
++ # Make relative symlinks.
++ # Remove last slash and all that follows it. Not all systems have dirname.
++changequote(, )dnl
++ ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
++changequote([, ])dnl
++ if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
++ # The dest file is in a subdirectory.
++ test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
++ ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
++ # A "../" for each directory in $ac_dest_dir_suffix.
++changequote(, )dnl
++ ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
++changequote([, ])dnl
++ else
++ ac_dest_dir_suffix= ac_dots=
++ fi
++
++ case "$srcdir" in
++changequote(, )dnl
++ [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
++changequote([, ])dnl
++ *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
++ esac
++
++ # Make a symlink if possible; otherwise try a hard link.
++ if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
++ ln $srcdir/$ac_source $ac_dest; then :
++ else
++ AC_MSG_ERROR(can not link $ac_dest to $srcdir/$ac_source)
++ fi
++done
++])
++
++dnl This is a subroutine of AC_OUTPUT.
++dnl It is called after running config.status.
++dnl AC_OUTPUT_SUBDIRS(DIRECTORY...)
++define(AC_OUTPUT_SUBDIRS,
++[
++if test "$no_recursion" != yes; then
++
++ # Remove --cache-file and --srcdir arguments so they do not pile up.
++ ac_sub_configure_args=
++ ac_prev=
++ for ac_arg in $ac_configure_args; do
++ if test -n "$ac_prev"; then
++ ac_prev=
++ continue
++ fi
++ case "$ac_arg" in
++ -cache-file | --cache-file | --cache-fil | --cache-fi \
++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
++ ac_prev=cache_file ;;
++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
++ ;;
++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
++ ac_prev=srcdir ;;
++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
++ ;;
++ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
++ esac
++ done
++
++ for ac_config_dir in $1; do
++
++ # Do not complain, so a configure script can configure whichever
++ # parts of a large source tree are present.
++ if test ! -d $srcdir/$ac_config_dir; then
++ continue
++ fi
++
++ echo configuring in $ac_config_dir
++
++ case "$srcdir" in
++ .) ;;
++ *)
++ if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
++ else
++ AC_MSG_ERROR(can not create `pwd`/$ac_config_dir)
++ fi
++ ;;
++ esac
++
++ ac_popdir=`pwd`
++ cd $ac_config_dir
++
++changequote(, )dnl
++ # A "../" for each directory in /$ac_config_dir.
++ ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
++changequote([, ])dnl
++
++ case "$srcdir" in
++ .) # No --srcdir option. We are building in place.
++ ac_sub_srcdir=$srcdir ;;
++ /*) # Absolute path.
++ ac_sub_srcdir=$srcdir/$ac_config_dir ;;
++ *) # Relative path.
++ ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
++ esac
++
++ # Check for guested configure; otherwise get Cygnus style configure.
++ if test -f $ac_sub_srcdir/configure; then
++ ac_sub_configure=$ac_sub_srcdir/configure
++ elif test -f $ac_sub_srcdir/configure.in; then
++ ac_sub_configure=$ac_configure
++ else
++ AC_MSG_WARN(no configuration information is in $ac_config_dir)
++ ac_sub_configure=
++ fi
++
++ # The recursion is here.
++ if test -n "$ac_sub_configure"; then
++
++ # Make the cache file name correct relative to the subdirectory.
++ case "$cache_file" in
++ /*) ac_sub_cache_file=$cache_file ;;
++ *) # Relative path.
++ ac_sub_cache_file="$ac_dots$cache_file" ;;
++ esac
++ifdef([AC_PROVIDE_AC_PROG_INSTALL],
++ [ case "$ac_given_INSTALL" in
++changequote(, )dnl
++ [/$]*) INSTALL="$ac_given_INSTALL" ;;
++changequote([, ])dnl
++ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
++ esac
++])dnl
++
++ echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir"
++ # The eval makes quoting arguments work.
++ if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
++ then :
++ else
++ AC_MSG_ERROR($ac_sub_configure failed for $ac_config_dir)
++ fi
++ fi
++
++ cd $ac_popdir
++ done
++fi
++])
+diff -up firefox-78.8.0/build/autoconf/acoldnames.m4.D89554-autoconf1.diff firefox-78.8.0/build/autoconf/acoldnames.m4
+--- firefox-78.8.0/build/autoconf/acoldnames.m4.D89554-autoconf1.diff 2021-02-25 13:48:13.604993478 +0100
++++ firefox-78.8.0/build/autoconf/acoldnames.m4 2021-02-25 13:48:13.604993478 +0100
+@@ -0,0 +1,80 @@
++dnl Map old names of Autoconf macros to new regularized names.
++dnl This file is part of Autoconf.
++dnl Copyright (C) 1994 Free Software Foundation, Inc.
++dnl
++dnl This program is free software; you can redistribute it and/or modify
++dnl it under the terms of the GNU General Public License as published by
++dnl the Free Software Foundation; either version 2, or (at your option)
++dnl any later version.
++dnl
++dnl This program is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++dnl GNU General Public License for more details.
++dnl
++dnl You should have received a copy of the GNU General Public License
++dnl along with this program; if not, write to the Free Software
++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++dnl 02111-1307, USA.
++dnl
++dnl General macros.
++dnl
++define(AC_WARN, [indir([AC_MSG_WARN], $@)])dnl
++define(AC_ERROR, [indir([AC_MSG_ERROR], $@)])dnl
++AC_DEFUN(AC_PROGRAM_CHECK, [indir([AC_CHECK_PROG], $@)])dnl
++AC_DEFUN(AC_PROGRAM_PATH, [indir([AC_PATH_PROG], $@)])dnl
++AC_DEFUN(AC_PROGRAMS_CHECK, [indir([AC_CHECK_PROGS], $@)])dnl
++AC_DEFUN(AC_PROGRAMS_PATH, [indir([AC_PATH_PROGS], $@)])dnl
++AC_DEFUN(AC_PREFIX, [indir([AC_PREFIX_PROGRAM], $@)])dnl
++AC_DEFUN(AC_HEADER_EGREP, [indir([AC_EGREP_HEADER], $@)])dnl
++AC_DEFUN(AC_PROGRAM_EGREP, [indir([AC_EGREP_CPP], $@)])dnl
++AC_DEFUN(AC_TEST_PROGRAM, [indir([AC_TRY_RUN], $@)])dnl
++AC_DEFUN(AC_TEST_CPP, [indir([AC_TRY_CPP], $@)])dnl
++AC_DEFUN(AC_HEADER_CHECK, [indir([AC_CHECK_HEADER], $@)])dnl
++AC_DEFUN(AC_FUNC_CHECK, [indir([AC_CHECK_FUNC], $@)])dnl
++AC_DEFUN(AC_HAVE_FUNCS, [indir([AC_CHECK_FUNCS], $@)])dnl
++AC_DEFUN(AC_HAVE_HEADERS, [indir([AC_CHECK_HEADERS], $@)])dnl
++AC_DEFUN(AC_SIZEOF_TYPE, [indir([AC_CHECK_SIZEOF], $@)])dnl
++dnl
++dnl Specific macros.
++dnl
++AC_DEFUN(AC_GCC_TRADITIONAL, [indir([AC_PROG_GCC_TRADITIONAL])])dnl
++AC_DEFUN(AC_MINUS_C_MINUS_O, [indir([AC_PROG_CC_C_O])])dnl
++AC_DEFUN(AC_SET_MAKE, [indir([AC_PROG_MAKE_SET])])dnl
++AC_DEFUN(AC_YYTEXT_POINTER, [indir([AC_DECL_YYTEXT])])dnl
++AC_DEFUN(AC_LN_S, [indir([AC_PROG_LN_S])])dnl
++AC_DEFUN(AC_STDC_HEADERS, [indir([AC_HEADER_STDC])])dnl
++AC_DEFUN(AC_MAJOR_HEADER, [indir([AC_HEADER_MAJOR])])dnl
++AC_DEFUN(AC_STAT_MACROS_BROKEN, [indir([AC_HEADER_STAT])])dnl
++AC_DEFUN(AC_SYS_SIGLIST_DECLARED, [indir([AC_DECL_SYS_SIGLIST])])dnl
++AC_DEFUN(AC_GETGROUPS_T, [indir([AC_TYPE_GETGROUPS])])dnl
++AC_DEFUN(AC_UID_T, [indir([AC_TYPE_UID_T])])dnl
++AC_DEFUN(AC_SIZE_T, [indir([AC_TYPE_SIZE_T])])dnl
++AC_DEFUN(AC_PID_T, [indir([AC_TYPE_PID_T])])dnl
++AC_DEFUN(AC_OFF_T, [indir([AC_TYPE_OFF_T])])dnl
++AC_DEFUN(AC_MODE_T, [indir([AC_TYPE_MODE_T])])dnl
++AC_DEFUN(AC_RETSIGTYPE, [indir([AC_TYPE_SIGNAL])])dnl
++AC_DEFUN(AC_MMAP, [indir([AC_FUNC_MMAP])])dnl
++AC_DEFUN(AC_VPRINTF, [indir([AC_FUNC_VPRINTF])])dnl
++AC_DEFUN(AC_VFORK, [indir([AC_FUNC_VFORK])])dnl
++AC_DEFUN(AC_WAIT3, [indir([AC_FUNC_WAIT3])])dnl
++AC_DEFUN(AC_ALLOCA, [indir([AC_FUNC_ALLOCA])])dnl
++AC_DEFUN(AC_GETLOADAVG, [indir([AC_FUNC_GETLOADAVG])])dnl
++AC_DEFUN(AC_UTIME_NULL, [indir([AC_FUNC_UTIME_NULL])])dnl
++AC_DEFUN(AC_STRCOLL, [indir([AC_FUNC_STRCOLL])])dnl
++AC_DEFUN(AC_SETVBUF_REVERSED, [indir([AC_FUNC_SETVBUF_REVERSED])])dnl
++AC_DEFUN(AC_TIME_WITH_SYS_TIME, [indir([AC_HEADER_TIME])])dnl
++AC_DEFUN(AC_TIMEZONE, [indir([AC_STRUCT_TIMEZONE])])dnl
++AC_DEFUN(AC_ST_BLOCKS, [indir([AC_STRUCT_ST_BLOCKS])])dnl
++AC_DEFUN(AC_ST_BLKSIZE, [indir([AC_STRUCT_ST_BLKSIZE])])dnl
++AC_DEFUN(AC_ST_RDEV, [indir([AC_STRUCT_ST_RDEV])])dnl
++AC_DEFUN(AC_CROSS_CHECK, [indir([AC_C_CROSS])])dnl
++AC_DEFUN(AC_CHAR_UNSIGNED, [indir([AC_C_CHAR_UNSIGNED])])dnl
++AC_DEFUN(AC_LONG_DOUBLE, [indir([AC_C_LONG_DOUBLE])])dnl
++AC_DEFUN(AC_WORDS_BIGENDIAN, [indir([AC_C_BIGENDIAN])])dnl
++AC_DEFUN(AC_INLINE, [indir([AC_C_INLINE])])dnl
++AC_DEFUN(AC_CONST, [indir([AC_C_CONST])])dnl
++AC_DEFUN(AC_LONG_FILE_NAMES, [indir([AC_SYS_LONG_FILE_NAMES])])dnl
++AC_DEFUN(AC_RESTARTABLE_SYSCALLS, [indir([AC_SYS_RESTARTABLE_SYSCALLS])])dnl
++AC_DEFUN(AC_FIND_X, [indir([AC_PATH_X])])dnl
++AC_DEFUN(AC_FIND_XTRA, [indir([AC_PATH_XTRA])])dnl
+diff -up firefox-78.8.0/build/autoconf/acspecific.m4.D89554-autoconf1.diff firefox-78.8.0/build/autoconf/acspecific.m4
+--- firefox-78.8.0/build/autoconf/acspecific.m4.D89554-autoconf1.diff 2021-02-25 13:48:13.605993481 +0100
++++ firefox-78.8.0/build/autoconf/acspecific.m4 2021-02-25 13:48:13.605993481 +0100
+@@ -0,0 +1,2758 @@
++dnl Macros that test for specific features.
++dnl This file is part of Autoconf.
++dnl Copyright (C) 1992, 93, 94, 95, 96, 1998 Free Software Foundation, Inc.
++dnl
++dnl This program is free software; you can redistribute it and/or modify
++dnl it under the terms of the GNU General Public License as published by
++dnl the Free Software Foundation; either version 2, or (at your option)
++dnl any later version.
++dnl
++dnl This program is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++dnl GNU General Public License for more details.
++dnl
++dnl You should have received a copy of the GNU General Public License
++dnl along with this program; if not, write to the Free Software
++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++dnl 02111-1307, USA.
++dnl
++dnl As a special exception, the Free Software Foundation gives unlimited
++dnl permission to copy, distribute and modify the configure scripts that
++dnl are the output of Autoconf. You need not follow the terms of the GNU
++dnl General Public License when using or distributing such scripts, even
++dnl though portions of the text of Autoconf appear in them. The GNU
++dnl General Public License (GPL) does govern all other use of the material
++dnl that constitutes the Autoconf program.
++dnl
++dnl Certain portions of the Autoconf source text are designed to be copied
++dnl (in certain cases, depending on the input) into the output of
++dnl Autoconf. We call these the "data" portions. The rest of the Autoconf
++dnl source text consists of comments plus executable code that decides which
++dnl of the data portions to output in any given case. We call these
++dnl comments and executable code the "non-data" portions. Autoconf never
++dnl copies any of the non-data portions into its output.
++dnl
++dnl This special exception to the GPL applies to versions of Autoconf
++dnl released by the Free Software Foundation. When you make and
++dnl distribute a modified version of Autoconf, you may extend this special
++dnl exception to the GPL to apply to your modified version as well, *unless*
++dnl your modified version has the potential to copy into its output some
++dnl of the text that was the non-data portion of the version that you started
++dnl with. (In other words, unless your change moves or copies text from
++dnl the non-data portions to the data portions.) If your modification has
++dnl such potential, you must delete any notice of this special exception
++dnl to the GPL from your modified version.
++dnl
++dnl Written by David MacKenzie, with help from
++dnl Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
++dnl Roland McGrath, Noah Friedman, david d zuhn, and many others.
++
++
++dnl ### Checks for programs
++
++
++dnl Check whether to use -n, \c, or newline-tab to separate
++dnl checking messages from result messages.
++dnl Idea borrowed from dist 3.0.
++dnl Internal use only.
++AC_DEFUN(AC_PROG_ECHO_N,
++[if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
++ ac_n= ac_c='
++' ac_t=' '
++ else
++ ac_n=-n ac_c= ac_t=
++ fi
++else
++ ac_n= ac_c='\c' ac_t=
++fi
++])
++
++AC_DEFUN(AC_PROG_CC,
++[AC_BEFORE([$0], [AC_PROG_CPP])dnl
++AC_CHECK_PROG(CC, gcc, gcc)
++if test -z "$CC"; then
++ AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
++ if test -z "$CC"; then
++ case "`uname -s`" in
++ *win32* | *WIN32*)
++ AC_CHECK_PROG(CC, cl, cl) ;;
++ esac
++ fi
++ test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
++fi
++
++AC_PROG_CC_WORKS
++AC_PROG_CC_GNU
++
++if test $ac_cv_prog_gcc = yes; then
++ GCC=yes
++else
++ GCC=
++fi
++
++dnl Check whether -g works, even if CFLAGS is set, in case the package
++dnl plays around with CFLAGS (such as to build both debugging and
++dnl normal versions of a library), tasteless as that idea is.
++ac_test_CFLAGS="${CFLAGS+set}"
++ac_save_CFLAGS="$CFLAGS"
++CFLAGS=
++AC_PROG_CC_G
++if test "$ac_test_CFLAGS" = set; then
++ CFLAGS="$ac_save_CFLAGS"
++elif test $ac_cv_prog_cc_g = yes; then
++ if test "$GCC" = yes; then
++ CFLAGS="-g -O2"
++ else
++ CFLAGS="-g"
++ fi
++else
++ if test "$GCC" = yes; then
++ CFLAGS="-O2"
++ else
++ CFLAGS=
++ fi
++fi
++])
++
++AC_DEFUN(AC_PROG_CXX,
++[AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
++AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, gcc)
++
++AC_PROG_CXX_WORKS
++AC_PROG_CXX_GNU
++
++if test $ac_cv_prog_gxx = yes; then
++ GXX=yes
++else
++ GXX=
++fi
++
++dnl Check whether -g works, even if CXXFLAGS is set, in case the package
++dnl plays around with CXXFLAGS (such as to build both debugging and
++dnl normal versions of a library), tasteless as that idea is.
++ac_test_CXXFLAGS="${CXXFLAGS+set}"
++ac_save_CXXFLAGS="$CXXFLAGS"
++CXXFLAGS=
++AC_PROG_CXX_G
++if test "$ac_test_CXXFLAGS" = set; then
++ CXXFLAGS="$ac_save_CXXFLAGS"
++elif test $ac_cv_prog_cxx_g = yes; then
++ if test "$GXX" = yes; then
++ CXXFLAGS="-g -O2"
++ else
++ CXXFLAGS="-g"
++ fi
++else
++ if test "$GXX" = yes; then
++ CXXFLAGS="-O2"
++ else
++ CXXFLAGS=
++ fi
++fi
++])
++
++dnl Determine a Fortran 77 compiler to use. If `F77' is not already set
++dnl in the environment, check for `g77', `f77' and `f2c', in that order.
++dnl Set the output variable `F77' to the name of the compiler found.
++dnl
++dnl If using `g77' (the GNU Fortran 77 compiler), then `AC_PROG_F77'
++dnl will set the shell variable `G77' to `yes', and empty otherwise. If
++dnl the output variable `FFLAGS' was not already set in the environment,
++dnl then set it to `-g -02' for `g77' (or `-O2' where `g77' does not
++dnl accept `-g'). Otherwise, set `FFLAGS' to `-g' for all other Fortran
++dnl 77 compilers.
++dnl
++dnl AC_PROG_F77()
++AC_DEFUN(AC_PROG_F77,
++[AC_BEFORE([$0], [AC_PROG_CPP])dnl
++if test -z "$F77"; then
++ AC_CHECK_PROGS(F77, g77 f77 f2c)
++ test -z "$F77" && AC_MSG_ERROR([no acceptable Fortran 77 compiler found in \$PATH])
++fi
++
++AC_PROG_F77_WORKS
++AC_PROG_F77_GNU
++
++if test $ac_cv_prog_g77 = yes; then
++ G77=yes
++dnl Check whether -g works, even if FFLAGS is set, in case the package
++dnl plays around with FFLAGS (such as to build both debugging and
++dnl normal versions of a library), tasteless as that idea is.
++ ac_test_FFLAGS="${FFLAGS+set}"
++ ac_save_FFLAGS="$FFLAGS"
++ FFLAGS=
++ AC_PROG_F77_G
++ if test "$ac_test_FFLAGS" = set; then
++ FFLAGS="$ac_save_FFLAGS"
++ elif test $ac_cv_prog_f77_g = yes; then
++ FFLAGS="-g -O2"
++ else
++ FFLAGS="-O2"
++ fi
++else
++ G77=
++ test "${FFLAGS+set}" = set || FFLAGS="-g"
++fi
++])
++
++AC_DEFUN(AC_PROG_CC_WORKS,
++[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works])
++AC_LANG_SAVE
++AC_LANG_C
++AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
++AC_LANG_RESTORE
++AC_MSG_RESULT($ac_cv_prog_cc_works)
++if test $ac_cv_prog_cc_works = no; then
++ AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.])
++fi
++AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
++AC_MSG_RESULT($ac_cv_prog_cc_cross)
++cross_compiling=$ac_cv_prog_cc_cross
++])
++
++AC_DEFUN(AC_PROG_CXX_WORKS,
++[AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
++AC_LANG_SAVE
++AC_LANG_CPLUSPLUS
++AC_TRY_COMPILER([int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
++AC_LANG_RESTORE
++AC_MSG_RESULT($ac_cv_prog_cxx_works)
++if test $ac_cv_prog_cxx_works = no; then
++ AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.])
++fi
++AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
++AC_MSG_RESULT($ac_cv_prog_cxx_cross)
++cross_compiling=$ac_cv_prog_cxx_cross
++])
++
++dnl Test whether the Fortran 77 compiler can compile and link a trivial
++dnl Fortran program. Also, test whether the Fortran 77 compiler is a
++dnl cross-compiler (which may realistically be the case if the Fortran
++dnl compiler is `g77').
++dnl
++dnl AC_PROG_F77_WORKS()
++AC_DEFUN(AC_PROG_F77_WORKS,
++[AC_MSG_CHECKING([whether the Fortran 77 compiler ($F77 $FFLAGS $LDFLAGS) works])
++AC_LANG_SAVE
++AC_LANG_FORTRAN77
++AC_TRY_COMPILER(dnl
++[ program conftest
++ end
++], ac_cv_prog_f77_works, ac_cv_prog_f77_cross)
++AC_LANG_RESTORE
++AC_MSG_RESULT($ac_cv_prog_f77_works)
++if test $ac_cv_prog_f77_works = no; then
++ AC_MSG_ERROR([installation or configuration problem: Fortran 77 compiler cannot create executables.])
++fi
++AC_MSG_CHECKING([whether the Fortran 77 compiler ($F77 $FFLAGS $LDFLAGS) is a cross-compiler])
++AC_MSG_RESULT($ac_cv_prog_f77_cross)
++cross_compiling=$ac_cv_prog_f77_cross
++])
++
++AC_DEFUN(AC_PROG_CC_GNU,
++[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
++[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
++cat > conftest.c <<EOF
++#ifdef __GNUC__
++ yes;
++#endif
++EOF
++if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
++ ac_cv_prog_gcc=yes
++else
++ ac_cv_prog_gcc=no
++fi])])
++
++AC_DEFUN(AC_PROG_CXX_GNU,
++[AC_CACHE_CHECK(whether we are using GNU C++, ac_cv_prog_gxx,
++[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
++cat > conftest.C <<EOF
++#ifdef __GNUC__
++ yes;
++#endif
++EOF
++if AC_TRY_COMMAND(${CXX-g++} -E conftest.C) | egrep yes >/dev/null 2>&1; then
++ ac_cv_prog_gxx=yes
++else
++ ac_cv_prog_gxx=no
++fi])])
++
++dnl Test whether for Fortran 77 compiler is `g77' (the GNU Fortran 77
++dnl Compiler). This test depends on whether the Fortran 77 compiler can
++dnl do CPP pre-processing.
++dnl
++dnl AC_PROG_F77_GNU()
++AC_DEFUN(AC_PROG_F77_GNU,
++[AC_CACHE_CHECK(whether we are using GNU Fortran 77, ac_cv_prog_g77,
++[cat > conftest.fpp <<EOF
++#ifdef __GNUC__
++ yes
++#endif
++EOF
++if AC_TRY_COMMAND($F77 -E conftest.fpp) | egrep yes >/dev/null 2>&1; then
++ ac_cv_prog_g77=yes
++else
++ ac_cv_prog_g77=no
++fi])])
++
++AC_DEFUN(AC_PROG_CC_G,
++[AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_cc_g,
++[echo 'void f(){}' > conftest.c
++if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
++ ac_cv_prog_cc_g=yes
++else
++ ac_cv_prog_cc_g=no
++fi
++rm -f conftest*
++])])
++
++AC_DEFUN(AC_PROG_CXX_G,
++[AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_cxx_g,
++[echo 'void f(){}' > conftest.cc
++if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
++ ac_cv_prog_cxx_g=yes
++else
++ ac_cv_prog_cxx_g=no
++fi
++rm -f conftest*
++])])
++
++dnl Test whether the Fortran 77 compiler can accept the `-g' option to
++dnl enable debugging.
++dnl
++dnl AC_PROG_F77_G()
++AC_DEFUN(AC_PROG_F77_G,
++[AC_CACHE_CHECK(whether $F77 accepts -g, ac_cv_prog_f77_g,
++[cat > conftest.f << EOF
++ program conftest
++ end
++EOF
++if test -z "`$F77 -g -c conftest.f 2>&1`"; then
++ ac_cv_prog_f77_g=yes
++else
++ ac_cv_prog_f77_g=no
++fi
++rm -f conftest*
++])])
++
++AC_DEFUN(AC_PROG_GCC_TRADITIONAL,
++[AC_REQUIRE([AC_PROG_CC])dnl
++AC_REQUIRE([AC_PROG_CPP])dnl
++if test $ac_cv_prog_gcc = yes; then
++ AC_CACHE_CHECK(whether ${CC-cc} needs -traditional,
++ ac_cv_prog_gcc_traditional,
++[ ac_pattern="Autoconf.*'x'"
++ AC_EGREP_CPP($ac_pattern, [#include <sgtty.h>
++Autoconf TIOCGETP],
++ ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no)
++
++ if test $ac_cv_prog_gcc_traditional = no; then
++ AC_EGREP_CPP($ac_pattern, [#include <termio.h>
++Autoconf TCGETA],
++ ac_cv_prog_gcc_traditional=yes)
++ fi])
++ if test $ac_cv_prog_gcc_traditional = yes; then
++ CC="$CC -traditional"
++ fi
++fi
++])
++
++AC_DEFUN(AC_PROG_CC_C_O,
++[if test "x$CC" != xcc; then
++ AC_MSG_CHECKING(whether $CC and cc understand -c and -o together)
++else
++ AC_MSG_CHECKING(whether cc understands -c and -o together)
++fi
++set dummy $CC; ac_cc="`echo [$]2 |
++changequote(, )dnl
++ sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
++changequote([, ])dnl
++AC_CACHE_VAL(ac_cv_prog_cc_${ac_cc}_c_o,
++[echo 'foo(){}' > conftest.c
++# Make sure it works both with $CC and with simple cc.
++# We do the test twice because some compilers refuse to overwrite an
++# existing .o file with -o, though they will create one.
++ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&AC_FD_CC'
++if AC_TRY_EVAL(ac_try) &&
++ test -f conftest.o && AC_TRY_EVAL(ac_try);
++then
++ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
++ if test "x$CC" != xcc; then
++ # Test first that cc exists at all.
++ if AC_TRY_COMMAND(cc -c conftest.c 1>&AC_FD_CC); then
++ ac_try='cc -c conftest.c -o conftest.o 1>&AC_FD_CC'
++ if AC_TRY_EVAL(ac_try) &&
++ test -f conftest.o && AC_TRY_EVAL(ac_try);
++ then
++ # cc works too.
++ :
++ else
++ # cc exists but doesn't like -o.
++ eval ac_cv_prog_cc_${ac_cc}_c_o=no
++ fi
++ fi
++ fi
++else
++ eval ac_cv_prog_cc_${ac_cc}_c_o=no
++fi
++rm -f conftest*
++])dnl
++if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then
++ AC_MSG_RESULT(yes)
++else
++ AC_MSG_RESULT(no)
++ AC_DEFINE(NO_MINUS_C_MINUS_O)
++fi
++])
++
++dnl Test if the Fortran 77 compiler accepts the options `-c' and `-o'
++dnl simultaneously, and define `F77_NO_MINUS_C_MINUS_O' if it does not.
++dnl
++dnl The usefulness of this macro is questionable, as I can't really see
++dnl why anyone would use it. The only reason I include it is for
++dnl completeness, since a similar test exists for the C compiler.
++dnl
++dnl AC_PROG_F77_C_O
++AC_DEFUN(AC_PROG_F77_C_O,
++[AC_BEFORE([$0], [AC_PROG_F77])dnl
++AC_MSG_CHECKING(whether $F77 understand -c and -o together)
++set dummy $F77; ac_f77="`echo [$]2 |
++changequote(, )dnl
++sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
++changequote([, ])dnl
++AC_CACHE_VAL(ac_cv_prog_f77_${ac_f77}_c_o,
++[cat > conftest.f << EOF
++ program conftest
++ end
++EOF
++# We do the `AC_TRY_EVAL' test twice because some compilers refuse to
++# overwrite an existing `.o' file with `-o', although they will create
++# one.
++ac_try='$F77 $FFLAGS -c conftest.f -o conftest.o 1>&AC_FD_CC'
++if AC_TRY_EVAL(ac_try) && test -f conftest.o && AC_TRY_EVAL(ac_try); then
++ eval ac_cv_prog_f77_${ac_f77}_c_o=yes
++else
++ eval ac_cv_prog_f77_${ac_f77}_c_o=no
++fi
++rm -f conftest*
++])dnl
++if eval "test \"`echo '$ac_cv_prog_f77_'${ac_f77}_c_o`\" = yes"; then
++ AC_MSG_RESULT(yes)
++else
++ AC_MSG_RESULT(no)
++ AC_DEFINE(F77_NO_MINUS_C_MINUS_O)
++fi
++])
++
++dnl Define SET_MAKE to set ${MAKE} if make doesn't.
++AC_DEFUN(AC_PROG_MAKE_SET,
++[AC_MSG_CHECKING(whether ${MAKE-make} sets \${MAKE})
++set dummy ${MAKE-make}; ac_make=`echo "[$]2" | sed 'y%./+-%__p_%'`
++AC_CACHE_VAL(ac_cv_prog_make_${ac_make}_set,
++[cat > conftestmake <<\EOF
++all:
++ @echo 'ac_maketemp="${MAKE}"'
++EOF
++changequote(, )dnl
++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
++changequote([, ])dnl
++if test -n "$ac_maketemp"; then
++ eval ac_cv_prog_make_${ac_make}_set=yes
++else
++ eval ac_cv_prog_make_${ac_make}_set=no
++fi
++rm -f conftestmake])dnl
++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ SET_MAKE=
++else
++ AC_MSG_RESULT(no)
++ SET_MAKE="MAKE=${MAKE-make}"
++fi
++AC_SUBST([SET_MAKE])dnl
++])
++
++AC_DEFUN(AC_PROG_RANLIB,
++[AC_CHECK_PROG(RANLIB, ranlib, ranlib, :)])
++
++dnl Check for mawk first since it's generally faster.
++AC_DEFUN(AC_PROG_AWK,
++[AC_CHECK_PROGS(AWK, mawk gawk nawk awk, )])
++
++AC_DEFUN(AC_PROG_YACC,
++[AC_CHECK_PROGS(YACC, 'bison -y' byacc, yacc)])
++
++AC_DEFUN(AC_PROG_CPP,
++[AC_MSG_CHECKING(how to run the C preprocessor)
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++ CPP=
++fi
++if test -z "$CPP"; then
++AC_CACHE_VAL(ac_cv_prog_CPP,
++[ # This must be in double quotes, not single quotes, because CPP may get
++ # substituted into the Makefile and "${CC-cc}" will confuse make.
++ CPP="${CC-cc} -E"
++ # On the NeXT, cc -E runs the code through the compiler's parser,
++ # not just through cpp.
++dnl Use a header file that comes with gcc, so configuring glibc
++dnl with a fresh cross-compiler works.
++ AC_TRY_CPP([#include <assert.h>
++Syntax Error], ,
++ CPP="${CC-cc} -E -traditional-cpp"
++ AC_TRY_CPP([#include <assert.h>
++Syntax Error], ,
++ CPP="${CC-cc} -nologo -E"
++ AC_TRY_CPP([#include <assert.h>
++Syntax Error], , CPP=/lib/cpp)))
++ ac_cv_prog_CPP="$CPP"])dnl
++ CPP="$ac_cv_prog_CPP"
++else
++ ac_cv_prog_CPP="$CPP"
++fi
++AC_MSG_RESULT($CPP)
++AC_SUBST(CPP)dnl
++])
++
++AC_DEFUN(AC_PROG_CXXCPP,
++[AC_MSG_CHECKING(how to run the C++ preprocessor)
++if test -z "$CXXCPP"; then
++AC_CACHE_VAL(ac_cv_prog_CXXCPP,
++[AC_LANG_SAVE[]dnl
++AC_LANG_CPLUSPLUS[]dnl
++ CXXCPP="${CXX-g++} -E"
++ AC_TRY_CPP([#include <stdlib.h>], , CXXCPP=/lib/cpp)
++ ac_cv_prog_CXXCPP="$CXXCPP"
++AC_LANG_RESTORE[]dnl
++fi])dnl
++CXXCPP="$ac_cv_prog_CXXCPP"
++AC_MSG_RESULT($CXXCPP)
++AC_SUBST(CXXCPP)dnl
++])
++
++dnl Require finding the C or C++ preprocessor, whichever is the
++dnl current language.
++AC_DEFUN(AC_REQUIRE_CPP,
++[ifelse(AC_LANG, C, [AC_REQUIRE([AC_PROG_CPP])], [AC_REQUIRE([AC_PROG_CXXCPP])])])
++
++AC_DEFUN(AC_PROG_LEX,
++[AC_CHECK_PROG(LEX, flex, flex, lex)
++if test -z "$LEXLIB"
++then
++ case "$LEX" in
++ flex*) ac_lib=fl ;;
++ *) ac_lib=l ;;
++ esac
++ AC_CHECK_LIB($ac_lib, yywrap, LEXLIB="-l$ac_lib")
++fi
++AC_SUBST(LEXLIB)])
++
++dnl Check if lex declares yytext as a char * by default, not a char[].
++undefine([AC_DECL_YYTEXT])
++AC_DEFUN(AC_DECL_YYTEXT,
++[AC_REQUIRE_CPP()dnl
++AC_REQUIRE([AC_PROG_LEX])dnl
++AC_CACHE_CHECK(lex output file root, ac_cv_prog_lex_root,
++[# The minimal lex program is just a single line: %%. But some broken lexes
++# (Solaris, I think it was) want two %% lines, so accommodate them.
++echo '%%
++%%' | $LEX
++if test -f lex.yy.c; then
++ ac_cv_prog_lex_root=lex.yy
++elif test -f lexyy.c; then
++ ac_cv_prog_lex_root=lexyy
++else
++ AC_MSG_ERROR(cannot find output from $LEX; giving up)
++fi])
++LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
++AC_SUBST(LEX_OUTPUT_ROOT)dnl
++
++AC_CACHE_CHECK(whether yytext is a pointer, ac_cv_prog_lex_yytext_pointer,
++[# POSIX says lex can declare yytext either as a pointer or an array; the
++# default is implementation-dependent. Figure out which it is, since
++# not all implementations provide the %pointer and %array declarations.
++ac_cv_prog_lex_yytext_pointer=no
++echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
++ac_save_LIBS="$LIBS"
++LIBS="$LIBS $LEXLIB"
++AC_TRY_LINK(`cat $LEX_OUTPUT_ROOT.c`, , ac_cv_prog_lex_yytext_pointer=yes)
++LIBS="$ac_save_LIBS"
++rm -f "${LEX_OUTPUT_ROOT}.c"
++])
++dnl
++if test $ac_cv_prog_lex_yytext_pointer = yes; then
++ AC_DEFINE(YYTEXT_POINTER)
++fi
++])
++
++AC_DEFUN(AC_PROG_INSTALL,
++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
++# Find a good install program. We prefer a C program (faster),
++# so one script is as good as another. But avoid the broken or
++# incompatible versions:
++# SysV /etc/install, /usr/sbin/install
++# SunOS /usr/etc/install
++# IRIX /sbin/install
++# AIX /bin/install
++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
++# ./install, which can be erroneously created by make from ./install.sh.
++AC_MSG_CHECKING(for a BSD compatible install)
++if test -z "$INSTALL"; then
++AC_CACHE_VAL(ac_cv_path_install,
++[ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
++ for ac_dir in $PATH; do
++ # Account for people who put trailing slashes in PATH elements.
++ case "$ac_dir/" in
++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
++ *)
++ # OSF1 and SCO ODT 3.0 have their own names for install.
++ # Don't use installbsd from OSF since it installs stuff as root
++ # by default.
++ for ac_prog in ginstall scoinst install; do
++ if test -f $ac_dir/$ac_prog; then
++ if test $ac_prog = install &&
++ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ else
++ ac_cv_path_install="$ac_dir/$ac_prog -c"
++ break 2
++ fi
++ fi
++ done
++ ;;
++ esac
++ done
++ IFS="$ac_save_IFS"
++])dnl
++ if test "${ac_cv_path_install+set}" = set; then
++ INSTALL="$ac_cv_path_install"
++ else
++ # As a last resort, use the slow shell script. We don't cache a
++ # path for INSTALL within a source directory, because that will
++ # break other packages using the cache if that directory is
++ # removed, or if the path is relative.
++ INSTALL="$ac_install_sh"
++ fi
++fi
++dnl We do special magic for INSTALL instead of AC_SUBST, to get
++dnl relative paths right.
++AC_MSG_RESULT($INSTALL)
++
++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
++# It thinks the first close brace ends the variable substitution.
++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
++AC_SUBST(INSTALL_PROGRAM)dnl
++
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
++AC_SUBST(INSTALL_SCRIPT)dnl
++
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++AC_SUBST(INSTALL_DATA)dnl
++])
++
++AC_DEFUN(AC_PROG_LN_S,
++[AC_MSG_CHECKING(whether ln -s works)
++AC_CACHE_VAL(ac_cv_prog_LN_S,
++[rm -f conftestdata
++if ln -s X conftestdata 2>/dev/null
++then
++ rm -f conftestdata
++ ac_cv_prog_LN_S="ln -s"
++else
++ ac_cv_prog_LN_S=ln
++fi])dnl
++LN_S="$ac_cv_prog_LN_S"
++if test "$ac_cv_prog_LN_S" = "ln -s"; then
++ AC_MSG_RESULT(yes)
++else
++ AC_MSG_RESULT(no)
++fi
++AC_SUBST(LN_S)dnl
++])
++
++define(AC_RSH,
++[errprint(__file__:__line__: [$0] has been removed; replace it with equivalent code
++)m4exit(4)])
++
++
++dnl ### Checks for header files
++
++
++AC_DEFUN(AC_HEADER_STDC,
++[AC_REQUIRE_CPP()dnl
++AC_CACHE_CHECK(for ANSI C header files, ac_cv_header_stdc,
++[AC_TRY_CPP([#include <stdlib.h>
++#include <stdarg.h>
++#include <string.h>
++#include <float.h>], ac_cv_header_stdc=yes, ac_cv_header_stdc=no)
++
++if test $ac_cv_header_stdc = yes; then
++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
++AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)
++fi
++
++if test $ac_cv_header_stdc = yes; then
++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
++AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)
++fi
++
++if test $ac_cv_header_stdc = yes; then
++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
++AC_TRY_RUN([#include <ctype.h>
++#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
++#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
++int main () { int i; for (i = 0; i < 256; i++)
++if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
++exit (0); }
++], , ac_cv_header_stdc=no, :)
++fi])
++if test $ac_cv_header_stdc = yes; then
++ AC_DEFINE(STDC_HEADERS)
++fi
++])
++
++AC_DEFUN(AC_UNISTD_H,
++[AC_OBSOLETE([$0], [; instead use AC_CHECK_HEADERS(unistd.h)])dnl
++AC_CHECK_HEADER(unistd.h, AC_DEFINE(HAVE_UNISTD_H))])
++
++AC_DEFUN(AC_USG,
++[AC_OBSOLETE([$0],
++ [; instead use AC_CHECK_HEADERS(string.h) and HAVE_STRING_H])dnl
++AC_MSG_CHECKING([for BSD string and memory functions])
++AC_TRY_LINK([#include <strings.h>], [rindex(0, 0); bzero(0, 0);],
++ [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); AC_DEFINE(USG)])])
++
++
++dnl If memchr and the like aren't declared in <string.h>, include <memory.h>.
++dnl To avoid problems, don't check for gcc2 built-ins.
++AC_DEFUN(AC_MEMORY_H,
++[AC_OBSOLETE([$0], [; instead use AC_CHECK_HEADERS(memory.h) and HAVE_MEMORY_H])dnl
++AC_MSG_CHECKING(whether string.h declares mem functions)
++AC_EGREP_HEADER(memchr, string.h, ac_found=yes, ac_found=no)
++AC_MSG_RESULT($ac_found)
++if test $ac_found = no; then
++ AC_CHECK_HEADER(memory.h, [AC_DEFINE(NEED_MEMORY_H)])
++fi
++])
++
++AC_DEFUN(AC_HEADER_MAJOR,
++[AC_CACHE_CHECK(whether sys/types.h defines makedev,
++ ac_cv_header_sys_types_h_makedev,
++[AC_TRY_LINK([#include <sys/types.h>], [return makedev(0, 0);],
++ ac_cv_header_sys_types_h_makedev=yes, ac_cv_header_sys_types_h_makedev=no)
++])
++
++if test $ac_cv_header_sys_types_h_makedev = no; then
++AC_CHECK_HEADER(sys/mkdev.h, [AC_DEFINE(MAJOR_IN_MKDEV)])
++
++ if test $ac_cv_header_sys_mkdev_h = no; then
++AC_CHECK_HEADER(sys/sysmacros.h, [AC_DEFINE(MAJOR_IN_SYSMACROS)])
++ fi
++fi
++])
++
++AC_DEFUN(AC_HEADER_DIRENT,
++[ac_header_dirent=no
++AC_CHECK_HEADERS_DIRENT(dirent.h sys/ndir.h sys/dir.h ndir.h,
++ [ac_header_dirent=$ac_hdr; break])
++# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
++if test $ac_header_dirent = dirent.h; then
++AC_CHECK_LIB(dir, opendir, LIBS="$LIBS -ldir")
++else
++AC_CHECK_LIB(x, opendir, LIBS="$LIBS -lx")
++fi
++])
++
++dnl Like AC_CHECK_HEADER, except also make sure that HEADER-FILE
++dnl defines the type `DIR'. dirent.h on NextStep 3.2 doesn't.
++dnl AC_CHECK_HEADER_DIRENT(HEADER-FILE, ACTION-IF-FOUND)
++AC_DEFUN(AC_CHECK_HEADER_DIRENT,
++[ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
++AC_MSG_CHECKING([for $1 that defines DIR])
++AC_CACHE_VAL(ac_cv_header_dirent_$ac_safe,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <$1>], [DIR *dirp = 0;],
++ eval "ac_cv_header_dirent_$ac_safe=yes",
++ eval "ac_cv_header_dirent_$ac_safe=no")])dnl
++if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
++ AC_MSG_RESULT(yes)
++ $2
++else
++ AC_MSG_RESULT(no)
++fi
++])
++
++dnl Like AC_CHECK_HEADERS, except succeed only for a HEADER-FILE that
++dnl defines `DIR'.
++dnl AC_CHECK_HEADERS_DIRENT(HEADER-FILE... [, ACTION])
++define(AC_CHECK_HEADERS_DIRENT,
++[for ac_hdr in $1
++do
++AC_CHECK_HEADER_DIRENT($ac_hdr,
++[changequote(, )dnl
++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++changequote([, ])dnl
++ AC_DEFINE_UNQUOTED($ac_tr_hdr) $2])dnl
++done])
++
++AC_DEFUN(AC_DIR_HEADER,
++[AC_OBSOLETE([$0], [; instead use AC_HEADER_DIRENT])dnl
++ac_header_dirent=no
++for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
++ AC_CHECK_HEADER_DIRENT($ac_hdr, [ac_header_dirent=$ac_hdr; break])
++done
++
++case "$ac_header_dirent" in
++dirent.h) AC_DEFINE(DIRENT) ;;
++sys/ndir.h) AC_DEFINE(SYSNDIR) ;;
++sys/dir.h) AC_DEFINE(SYSDIR) ;;
++ndir.h) AC_DEFINE(NDIR) ;;
++esac
++
++AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
++[AC_TRY_RUN([#include <sys/types.h>
++#include <$ac_header_dirent>
++int closedir(); main() { exit(closedir(opendir(".")) != 0); }],
++ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
++if test $ac_cv_func_closedir_void = yes; then
++ AC_DEFINE(VOID_CLOSEDIR)
++fi
++])
++
++AC_DEFUN(AC_HEADER_STAT,
++[AC_CACHE_CHECK(whether stat file-mode macros are broken,
++ ac_cv_header_stat_broken,
++[AC_EGREP_CPP([You lose], [#include <sys/types.h>
++#include <sys/stat.h>
++
++#if defined(S_ISBLK) && defined(S_IFDIR)
++# if S_ISBLK (S_IFDIR)
++You lose.
++# endif
++#endif
++
++#if defined(S_ISBLK) && defined(S_IFCHR)
++# if S_ISBLK (S_IFCHR)
++You lose.
++# endif
++#endif
++
++#if defined(S_ISLNK) && defined(S_IFREG)
++# if S_ISLNK (S_IFREG)
++You lose.
++# endif
++#endif
++
++#if defined(S_ISSOCK) && defined(S_IFREG)
++# if S_ISSOCK (S_IFREG)
++You lose.
++# endif
++#endif
++], ac_cv_header_stat_broken=yes, ac_cv_header_stat_broken=no)])
++if test $ac_cv_header_stat_broken = yes; then
++ AC_DEFINE(STAT_MACROS_BROKEN)
++fi
++])
++
++AC_DEFUN(AC_DECL_SYS_SIGLIST,
++[AC_CACHE_CHECK([for sys_siglist declaration in signal.h or unistd.h],
++ ac_cv_decl_sys_siglist,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <signal.h>
++/* NetBSD declares sys_siglist in unistd.h. */
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif], [char *msg = *(sys_siglist + 1);],
++ ac_cv_decl_sys_siglist=yes, ac_cv_decl_sys_siglist=no)])
++if test $ac_cv_decl_sys_siglist = yes; then
++ AC_DEFINE(SYS_SIGLIST_DECLARED)
++fi
++])
++
++AC_DEFUN(AC_HEADER_SYS_WAIT,
++[AC_CACHE_CHECK([for sys/wait.h that is POSIX.1 compatible],
++ ac_cv_header_sys_wait_h,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/wait.h>
++#ifndef WEXITSTATUS
++#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
++#endif
++#ifndef WIFEXITED
++#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
++#endif], [int s;
++wait (&s);
++s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;],
++ac_cv_header_sys_wait_h=yes, ac_cv_header_sys_wait_h=no)])
++if test $ac_cv_header_sys_wait_h = yes; then
++ AC_DEFINE(HAVE_SYS_WAIT_H)
++fi
++])
++
++
++dnl ### Checks for typedefs
++
++
++AC_DEFUN(AC_TYPE_GETGROUPS,
++[AC_REQUIRE([AC_TYPE_UID_T])dnl
++AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
++[AC_TRY_RUN(
++changequote(<<, >>)dnl
++<<
++/* Thanks to Mike Rendell for this test. */
++#include <sys/types.h>
++#define NGID 256
++#undef MAX
++#define MAX(x, y) ((x) > (y) ? (x) : (y))
++main()
++{
++ gid_t gidset[NGID];
++ int i, n;
++ union { gid_t gval; long lval; } val;
++
++ val.lval = -1;
++ for (i = 0; i < NGID; i++)
++ gidset[i] = val.gval;
++ n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
++ gidset);
++ /* Exit non-zero if getgroups seems to require an array of ints. This
++ happens when gid_t is short but getgroups modifies an array of ints. */
++ exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0);
++}
++>>,
++changequote([, ])dnl
++ ac_cv_type_getgroups=gid_t, ac_cv_type_getgroups=int,
++ ac_cv_type_getgroups=cross)
++if test $ac_cv_type_getgroups = cross; then
++ dnl When we can't run the test program (we are cross compiling), presume
++ dnl that <unistd.h> has either an accurate prototype for getgroups or none.
++ dnl Old systems without prototypes probably use int.
++ AC_EGREP_HEADER([getgroups.*int.*gid_t], unistd.h,
++ ac_cv_type_getgroups=gid_t, ac_cv_type_getgroups=int)
++fi])
++AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups)
++])
++
++AC_DEFUN(AC_TYPE_UID_T,
++[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,
++[AC_EGREP_HEADER(uid_t, sys/types.h,
++ ac_cv_type_uid_t=yes, ac_cv_type_uid_t=no)])
++if test $ac_cv_type_uid_t = no; then
++ AC_DEFINE(uid_t, int)
++ AC_DEFINE(gid_t, int)
++fi
++])
++
++AC_DEFUN(AC_TYPE_SIZE_T,
++[AC_CHECK_TYPE(size_t, unsigned)])
++
++AC_DEFUN(AC_TYPE_PID_T,
++[AC_CHECK_TYPE(pid_t, int)])
++
++AC_DEFUN(AC_TYPE_OFF_T,
++[AC_CHECK_TYPE(off_t, long)])
++
++AC_DEFUN(AC_TYPE_MODE_T,
++[AC_CHECK_TYPE(mode_t, int)])
++
++dnl Note that identifiers starting with SIG are reserved by ANSI C.
++AC_DEFUN(AC_TYPE_SIGNAL,
++[AC_CACHE_CHECK([return type of signal handlers], ac_cv_type_signal,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <signal.h>
++#ifdef signal
++#undef signal
++#endif
++#ifdef __cplusplus
++extern "C" void (*signal (int, void (*)(int)))(int);
++#else
++void (*signal ()) ();
++#endif
++],
++[int i;], ac_cv_type_signal=void, ac_cv_type_signal=int)])
++AC_DEFINE_UNQUOTED(RETSIGTYPE, $ac_cv_type_signal)
++])
++
++
++dnl ### Checks for functions
++
++
++AC_DEFUN(AC_FUNC_CLOSEDIR_VOID,
++[AC_REQUIRE([AC_HEADER_DIRENT])dnl
++AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
++[AC_TRY_RUN([#include <sys/types.h>
++#include <$ac_header_dirent>
++int closedir(); main() { exit(closedir(opendir(".")) != 0); }],
++ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
++if test $ac_cv_func_closedir_void = yes; then
++ AC_DEFINE(CLOSEDIR_VOID)
++fi
++])
++
++AC_DEFUN(AC_FUNC_FNMATCH,
++[AC_CACHE_CHECK(for working fnmatch, ac_cv_func_fnmatch_works,
++# Some versions of Solaris or SCO have a broken fnmatch function.
++# So we run a test program. If we are cross-compiling, take no chance.
++# Thanks to John Oleynick and Franc,ois Pinard for this test.
++[AC_TRY_RUN([main() { exit (fnmatch ("a*", "abc", 0) != 0); }],
++ac_cv_func_fnmatch_works=yes, ac_cv_func_fnmatch_works=no,
++ac_cv_func_fnmatch_works=no)])
++if test $ac_cv_func_fnmatch_works = yes; then
++ AC_DEFINE(HAVE_FNMATCH)
++fi
++])
++
++AC_DEFUN(AC_FUNC_MMAP,
++[AC_CHECK_HEADERS(unistd.h)
++AC_CHECK_FUNCS(getpagesize)
++AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
++[AC_TRY_RUN([
++/* Thanks to Mike Haertel and Jim Avera for this test.
++ Here is a matrix of mmap possibilities:
++ mmap private not fixed
++ mmap private fixed at somewhere currently unmapped
++ mmap private fixed at somewhere already mapped
++ mmap shared not fixed
++ mmap shared fixed at somewhere currently unmapped
++ mmap shared fixed at somewhere already mapped
++ For private mappings, we should verify that changes cannot be read()
++ back from the file, nor mmap's back from the file at a different
++ address. (There have been systems where private was not correctly
++ implemented like the infamous i386 svr4.0, and systems where the
++ VM page cache was not coherent with the filesystem buffer cache
++ like early versions of FreeBSD and possibly contemporary NetBSD.)
++ For shared mappings, we should conversely verify that changes get
++ propogated back to all the places they're supposed to be.
++
++ Grep wants private fixed already mapped.
++ The main things grep needs to know about mmap are:
++ * does it exist and is it safe to write into the mmap'd area
++ * how to use it (BSD variants) */
++#include <sys/types.h>
++#include <fcntl.h>
++#include <sys/mman.h>
++
++/* This mess was copied from the GNU getpagesize.h. */
++#ifndef HAVE_GETPAGESIZE
++# ifdef HAVE_UNISTD_H
++# include <unistd.h>
++# endif
++
++/* Assume that all systems that can run configure have sys/param.h. */
++# ifndef HAVE_SYS_PARAM_H
++# define HAVE_SYS_PARAM_H 1
++# endif
++
++# ifdef _SC_PAGESIZE
++# define getpagesize() sysconf(_SC_PAGESIZE)
++# else /* no _SC_PAGESIZE */
++# ifdef HAVE_SYS_PARAM_H
++# include <sys/param.h>
++# ifdef EXEC_PAGESIZE
++# define getpagesize() EXEC_PAGESIZE
++# else /* no EXEC_PAGESIZE */
++# ifdef NBPG
++# define getpagesize() NBPG * CLSIZE
++# ifndef CLSIZE
++# define CLSIZE 1
++# endif /* no CLSIZE */
++# else /* no NBPG */
++# ifdef NBPC
++# define getpagesize() NBPC
++# else /* no NBPC */
++# ifdef PAGESIZE
++# define getpagesize() PAGESIZE
++# endif /* PAGESIZE */
++# endif /* no NBPC */
++# endif /* no NBPG */
++# endif /* no EXEC_PAGESIZE */
++# else /* no HAVE_SYS_PARAM_H */
++# define getpagesize() 8192 /* punt totally */
++# endif /* no HAVE_SYS_PARAM_H */
++# endif /* no _SC_PAGESIZE */
++
++#endif /* no HAVE_GETPAGESIZE */
++
++#ifdef __cplusplus
++extern "C" { void *malloc(unsigned); }
++#else
++char *malloc();
++#endif
++
++int
++main()
++{
++ char *data, *data2, *data3;
++ int i, pagesize;
++ int fd;
++
++ pagesize = getpagesize();
++
++ /*
++ * First, make a file with some known garbage in it.
++ */
++ data = malloc(pagesize);
++ if (!data)
++ exit(1);
++ for (i = 0; i < pagesize; ++i)
++ *(data + i) = rand();
++ umask(0);
++ fd = creat("conftestmmap", 0600);
++ if (fd < 0)
++ exit(1);
++ if (write(fd, data, pagesize) != pagesize)
++ exit(1);
++ close(fd);
++
++ /*
++ * Next, try to mmap the file at a fixed address which
++ * already has something else allocated at it. If we can,
++ * also make sure that we see the same garbage.
++ */
++ fd = open("conftestmmap", O_RDWR);
++ if (fd < 0)
++ exit(1);
++ data2 = malloc(2 * pagesize);
++ if (!data2)
++ exit(1);
++ data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
++ if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
++ MAP_PRIVATE | MAP_FIXED, fd, 0L))
++ exit(1);
++ for (i = 0; i < pagesize; ++i)
++ if (*(data + i) != *(data2 + i))
++ exit(1);
++
++ /*
++ * Finally, make sure that changes to the mapped area
++ * do not percolate back to the file as seen by read().
++ * (This is a bug on some variants of i386 svr4.0.)
++ */
++ for (i = 0; i < pagesize; ++i)
++ *(data2 + i) = *(data2 + i) + 1;
++ data3 = malloc(pagesize);
++ if (!data3)
++ exit(1);
++ if (read(fd, data3, pagesize) != pagesize)
++ exit(1);
++ for (i = 0; i < pagesize; ++i)
++ if (*(data + i) != *(data3 + i))
++ exit(1);
++ close(fd);
++ unlink("conftestmmap");
++ exit(0);
++}
++], ac_cv_func_mmap_fixed_mapped=yes, ac_cv_func_mmap_fixed_mapped=no,
++ac_cv_func_mmap_fixed_mapped=no)])
++if test $ac_cv_func_mmap_fixed_mapped = yes; then
++ AC_DEFINE(HAVE_MMAP)
++fi
++])
++
++AC_DEFUN(AC_FUNC_GETPGRP,
++[AC_CACHE_CHECK(whether getpgrp takes no argument, ac_cv_func_getpgrp_void,
++[AC_TRY_RUN([
++/*
++ * If this system has a BSD-style getpgrp(),
++ * which takes a pid argument, exit unsuccessfully.
++ *
++ * Snarfed from Chet Ramey's bash pgrp.c test program
++ */
++#include <stdio.h>
++#include <sys/types.h>
++
++int pid;
++int pg1, pg2, pg3, pg4;
++int ng, np, s, child;
++
++main()
++{
++ pid = getpid();
++ pg1 = getpgrp(0);
++ pg2 = getpgrp();
++ pg3 = getpgrp(pid);
++ pg4 = getpgrp(1);
++
++ /*
++ * If all of these values are the same, it's pretty sure that
++ * we're on a system that ignores getpgrp's first argument.
++ */
++ if (pg2 == pg4 && pg1 == pg3 && pg2 == pg3)
++ exit(0);
++
++ child = fork();
++ if (child < 0)
++ exit(1);
++ else if (child == 0) {
++ np = getpid();
++ /*
++ * If this is Sys V, this will not work; pgrp will be
++ * set to np because setpgrp just changes a pgrp to be
++ * the same as the pid.
++ */
++ setpgrp(np, pg1);
++ ng = getpgrp(0); /* Same result for Sys V and BSD */
++ if (ng == pg1) {
++ exit(1);
++ } else {
++ exit(0);
++ }
++ } else {
++ wait(&s);
++ exit(s>>8);
++ }
++}
++], ac_cv_func_getpgrp_void=yes, ac_cv_func_getpgrp_void=no,
++ AC_MSG_ERROR(cannot check getpgrp if cross compiling))
++])
++if test $ac_cv_func_getpgrp_void = yes; then
++ AC_DEFINE(GETPGRP_VOID)
++fi
++])
++
++AC_DEFUN(AC_FUNC_SETPGRP,
++[AC_CACHE_CHECK(whether setpgrp takes no argument, ac_cv_func_setpgrp_void,
++AC_TRY_RUN([
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++
++/*
++ * If this system has a BSD-style setpgrp, which takes arguments, exit
++ * successfully.
++ */
++main()
++{
++ if (setpgrp(1,1) == -1)
++ exit(0);
++ else
++ exit(1);
++}
++], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes,
++ AC_MSG_ERROR(cannot check setpgrp if cross compiling))
++)
++if test $ac_cv_func_setpgrp_void = yes; then
++ AC_DEFINE(SETPGRP_VOID)
++fi
++])
++
++AC_DEFUN(AC_FUNC_VPRINTF,
++[AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
++if test "$ac_cv_func_vprintf" != yes; then
++AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
++fi
++])
++
++AC_DEFUN(AC_FUNC_VFORK,
++[AC_REQUIRE([AC_TYPE_PID_T])dnl
++AC_CHECK_HEADER(vfork.h, AC_DEFINE(HAVE_VFORK_H))
++AC_CACHE_CHECK(for working vfork, ac_cv_func_vfork_works,
++[AC_TRY_RUN([/* Thanks to Paul Eggert for this test. */
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++#ifdef HAVE_VFORK_H
++#include <vfork.h>
++#endif
++/* On some sparc systems, changes by the child to local and incoming
++ argument registers are propagated back to the parent.
++ The compiler is told about this with #include <vfork.h>,
++ but some compilers (e.g. gcc -O) don't grok <vfork.h>.
++ Test for this by using a static variable whose address
++ is put into a register that is clobbered by the vfork. */
++static
++#ifdef __cplusplus
++sparc_address_test (int arg)
++#else
++sparc_address_test (arg) int arg;
++#endif
++{
++ static pid_t child;
++ if (!child) {
++ child = vfork ();
++ if (child < 0) {
++ perror ("vfork");
++ _exit(2);
++ }
++ if (!child) {
++ arg = getpid();
++ write(-1, "", 0);
++ _exit (arg);
++ }
++ }
++}
++main() {
++ pid_t parent = getpid ();
++ pid_t child;
++
++ sparc_address_test ();
++
++ child = vfork ();
++
++ if (child == 0) {
++ /* Here is another test for sparc vfork register problems.
++ This test uses lots of local variables, at least
++ as many local variables as main has allocated so far
++ including compiler temporaries. 4 locals are enough for
++ gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe.
++ A buggy compiler should reuse the register of parent
++ for one of the local variables, since it will think that
++ parent can't possibly be used any more in this routine.
++ Assigning to the local variable will thus munge parent
++ in the parent process. */
++ pid_t
++ p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
++ p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
++ /* Convince the compiler that p..p7 are live; otherwise, it might
++ use the same hardware register for all 8 local variables. */
++ if (p != p1 || p != p2 || p != p3 || p != p4
++ || p != p5 || p != p6 || p != p7)
++ _exit(1);
++
++ /* On some systems (e.g. IRIX 3.3),
++ vfork doesn't separate parent from child file descriptors.
++ If the child closes a descriptor before it execs or exits,
++ this munges the parent's descriptor as well.
++ Test for this by closing stdout in the child. */
++ _exit(close(fileno(stdout)) != 0);
++ } else {
++ int status;
++ struct stat st;
++
++ while (wait(&status) != child)
++ ;
++ exit(
++ /* Was there some problem with vforking? */
++ child < 0
++
++ /* Did the child fail? (This shouldn't happen.) */
++ || status
++
++ /* Did the vfork/compiler bug occur? */
++ || parent != getpid()
++
++ /* Did the file descriptor bug occur? */
++ || fstat(fileno(stdout), &st) != 0
++ );
++ }
++}],
++ac_cv_func_vfork_works=yes, ac_cv_func_vfork_works=no, AC_CHECK_FUNC(vfork)
++ac_cv_func_vfork_works=$ac_cv_func_vfork)])
++if test $ac_cv_func_vfork_works = no; then
++ AC_DEFINE(vfork, fork)
++fi
++])
++
++AC_DEFUN(AC_FUNC_WAIT3,
++[AC_CACHE_CHECK(for wait3 that fills in rusage, ac_cv_func_wait3_rusage,
++[AC_TRY_RUN([#include <sys/types.h>
++#include <sys/time.h>
++#include <sys/resource.h>
++#include <stdio.h>
++/* HP-UX has wait3 but does not fill in rusage at all. */
++main() {
++ struct rusage r;
++ int i;
++ /* Use a field that we can force nonzero --
++ voluntary context switches.
++ For systems like NeXT and OSF/1 that don't set it,
++ also use the system CPU time. And page faults (I/O) for Linux. */
++ r.ru_nvcsw = 0;
++ r.ru_stime.tv_sec = 0;
++ r.ru_stime.tv_usec = 0;
++ r.ru_majflt = r.ru_minflt = 0;
++ switch (fork()) {
++ case 0: /* Child. */
++ sleep(1); /* Give up the CPU. */
++ _exit(0);
++ case -1: _exit(0); /* What can we do? */
++ default: /* Parent. */
++ wait3(&i, 0, &r);
++ sleep(2); /* Avoid "text file busy" from rm on fast HP-UX machines. */
++ exit(r.ru_nvcsw == 0 && r.ru_majflt == 0 && r.ru_minflt == 0
++ && r.ru_stime.tv_sec == 0 && r.ru_stime.tv_usec == 0);
++ }
++}], ac_cv_func_wait3_rusage=yes, ac_cv_func_wait3_rusage=no,
++ac_cv_func_wait3_rusage=no)])
++if test $ac_cv_func_wait3_rusage = yes; then
++ AC_DEFINE(HAVE_WAIT3)
++fi
++])
++
++AC_DEFUN(AC_FUNC_ALLOCA,
++[AC_REQUIRE_CPP()dnl Set CPP; we run AC_EGREP_CPP conditionally.
++# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
++# for constant arguments. Useless!
++AC_CACHE_CHECK([for working alloca.h], ac_cv_header_alloca_h,
++[AC_TRY_LINK([#include <alloca.h>], [char *p = alloca(2 * sizeof(int));],
++ ac_cv_header_alloca_h=yes, ac_cv_header_alloca_h=no)])
++if test $ac_cv_header_alloca_h = yes; then
++ AC_DEFINE(HAVE_ALLOCA_H)
++fi
++
++AC_CACHE_CHECK([for alloca], ac_cv_func_alloca_works,
++[AC_TRY_LINK([
++#ifdef __GNUC__
++# define alloca __builtin_alloca
++#else
++# ifdef _MSC_VER
++# include <malloc.h>
++# define alloca _alloca
++# else
++# if HAVE_ALLOCA_H
++# include <alloca.h>
++# else
++# ifdef _AIX
++ #pragma alloca
++# else
++# ifndef alloca /* predefined by HP cc +Olibcalls */
++char *alloca ();
++# endif
++# endif
++# endif
++# endif
++#endif
++], [char *p = (char *) alloca(1);],
++ ac_cv_func_alloca_works=yes, ac_cv_func_alloca_works=no)])
++if test $ac_cv_func_alloca_works = yes; then
++ AC_DEFINE(HAVE_ALLOCA)
++fi
++
++if test $ac_cv_func_alloca_works = no; then
++ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
++ # that cause trouble. Some versions do not even contain alloca or
++ # contain a buggy version. If you still want to use their alloca,
++ # use ar to extract alloca.o from them instead of compiling alloca.c.
++ ALLOCA=alloca.${ac_objext}
++ AC_DEFINE(C_ALLOCA)
++
++AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray,
++[AC_EGREP_CPP(webecray,
++[#if defined(CRAY) && ! defined(CRAY2)
++webecray
++#else
++wenotbecray
++#endif
++], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
++if test $ac_cv_os_cray = yes; then
++for ac_func in _getb67 GETB67 getb67; do
++ AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func)
++ break])
++done
++fi
++
++AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
++[AC_TRY_RUN([find_stack_direction ()
++{
++ static char *addr = 0;
++ auto char dummy;
++ if (addr == 0)
++ {
++ addr = &dummy;
++ return find_stack_direction ();
++ }
++ else
++ return (&dummy > addr) ? 1 : -1;
++}
++main ()
++{
++ exit (find_stack_direction() < 0);
++}], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
++ ac_cv_c_stack_direction=0)])
++AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
++fi
++AC_SUBST(ALLOCA)dnl
++])
++
++AC_DEFUN(AC_FUNC_GETLOADAVG,
++[ac_have_func=no # yes means we've found a way to get the load average.
++
++# Some systems with -lutil have (and need) -lkvm as well, some do not.
++# On Solaris, -lkvm requires nlist from -lelf, so check that first
++# to get the right answer into the cache.
++AC_CHECK_LIB(elf, elf_begin, LIBS="-lelf $LIBS")
++AC_CHECK_LIB(kvm, kvm_open, LIBS="-lkvm $LIBS")
++# Check for the 4.4BSD definition of getloadavg.
++AC_CHECK_LIB(util, getloadavg,
++ [LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes])
++
++if test $ac_have_func = no; then
++ # There is a commonly available library for RS/6000 AIX.
++ # Since it is not a standard part of AIX, it might be installed locally.
++ ac_getloadavg_LIBS="$LIBS"; LIBS="-L/usr/local/lib $LIBS"
++ AC_CHECK_LIB(getloadavg, getloadavg,
++ LIBS="-lgetloadavg $LIBS", LIBS="$ac_getloadavg_LIBS")
++fi
++
++# Make sure it is really in the library, if we think we found it.
++AC_REPLACE_FUNCS(getloadavg)
++
++if test $ac_cv_func_getloadavg = yes; then
++ AC_DEFINE(HAVE_GETLOADAVG)
++ ac_have_func=yes
++else
++ # Figure out what our getloadavg.c needs.
++ ac_have_func=no
++ AC_CHECK_HEADER(sys/dg_sys_info.h,
++ [ac_have_func=yes; AC_DEFINE(DGUX)
++ AC_CHECK_LIB(dgc, dg_sys_info)])
++
++ # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
++ # uses stabs), but it is still SVR4. We cannot check for <elf.h> because
++ # Irix 4.0.5F has the header but not the library.
++ if test $ac_have_func = no && test $ac_cv_lib_elf_elf_begin = yes; then
++ ac_have_func=yes; AC_DEFINE(SVR4)
++ fi
++
++ if test $ac_have_func = no; then
++ AC_CHECK_HEADER(inq_stats/cpustats.h,
++ [ac_have_func=yes; AC_DEFINE(UMAX)
++ AC_DEFINE(UMAX4_3)])
++ fi
++
++ if test $ac_have_func = no; then
++ AC_CHECK_HEADER(sys/cpustats.h,
++ [ac_have_func=yes; AC_DEFINE(UMAX)])
++ fi
++
++ if test $ac_have_func = no; then
++ AC_CHECK_HEADERS(mach/mach.h)
++ fi
++
++ AC_CHECK_HEADER(nlist.h,
++ [AC_DEFINE(NLIST_STRUCT)
++ AC_CACHE_CHECK([for n_un in struct nlist], ac_cv_struct_nlist_n_un,
++ [AC_TRY_COMPILE([#include <nlist.h>],
++ [struct nlist n; n.n_un.n_name = 0;],
++ ac_cv_struct_nlist_n_un=yes, ac_cv_struct_nlist_n_un=no)])
++ if test $ac_cv_struct_nlist_n_un = yes; then
++ AC_DEFINE(NLIST_NAME_UNION)
++ fi
++ ])dnl
++fi # Do not have getloadavg in system libraries.
++
++# Some definitions of getloadavg require that the program be installed setgid.
++dnl FIXME Don't hardwire the path of getloadavg.c in the top-level directory.
++AC_CACHE_CHECK(whether getloadavg requires setgid,
++ ac_cv_func_getloadavg_setgid,
++[AC_EGREP_CPP([Yowza Am I SETGID yet],
++[#include "$srcdir/getloadavg.c"
++#ifdef LDAV_PRIVILEGED
++Yowza Am I SETGID yet
++#endif],
++ ac_cv_func_getloadavg_setgid=yes, ac_cv_func_getloadavg_setgid=no)])
++if test $ac_cv_func_getloadavg_setgid = yes; then
++ NEED_SETGID=true; AC_DEFINE(GETLOADAVG_PRIVILEGED)
++else
++ NEED_SETGID=false
++fi
++AC_SUBST(NEED_SETGID)dnl
++
++if test $ac_cv_func_getloadavg_setgid = yes; then
++ AC_CACHE_CHECK(group of /dev/kmem, ac_cv_group_kmem,
++[changequote(, )dnl
++ # On Solaris, /dev/kmem is a symlink. Get info on the real file.
++ ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null`
++ # If we got an error (system does not support symlinks), try without -L.
++ test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem`
++ ac_cv_group_kmem=`echo $ac_ls_output \
++ | sed -ne 's/[ ][ ]*/ /g;
++ s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/;
++ / /s/.* //;p;'`
++changequote([, ])dnl
++])
++ KMEM_GROUP=$ac_cv_group_kmem
++fi
++AC_SUBST(KMEM_GROUP)dnl
++])
++
++AC_DEFUN(AC_FUNC_UTIME_NULL,
++[AC_CACHE_CHECK(whether utime accepts a null argument, ac_cv_func_utime_null,
++[rm -f conftestdata; > conftestdata
++# Sequent interprets utime(file, 0) to mean use start of epoch. Wrong.
++AC_TRY_RUN([#include <sys/types.h>
++#include <sys/stat.h>
++main() {
++struct stat s, t;
++exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0
++&& stat("conftestdata", &t) == 0 && t.st_mtime >= s.st_mtime
++&& t.st_mtime - s.st_mtime < 120));
++}], ac_cv_func_utime_null=yes, ac_cv_func_utime_null=no,
++ ac_cv_func_utime_null=no)
++rm -f core core.* *.core])
++if test $ac_cv_func_utime_null = yes; then
++ AC_DEFINE(HAVE_UTIME_NULL)
++fi
++])
++
++AC_DEFUN(AC_FUNC_STRCOLL,
++[AC_CACHE_CHECK(for working strcoll, ac_cv_func_strcoll_works,
++[AC_TRY_RUN([#include <string.h>
++main ()
++{
++ exit (strcoll ("abc", "def") >= 0 ||
++ strcoll ("ABC", "DEF") >= 0 ||
++ strcoll ("123", "456") >= 0);
++}], ac_cv_func_strcoll_works=yes, ac_cv_func_strcoll_works=no,
++ac_cv_func_strcoll_works=no)])
++if test $ac_cv_func_strcoll_works = yes; then
++ AC_DEFINE(HAVE_STRCOLL)
++fi
++])
++
++AC_DEFUN(AC_FUNC_SETVBUF_REVERSED,
++[AC_CACHE_CHECK(whether setvbuf arguments are reversed,
++ ac_cv_func_setvbuf_reversed,
++[AC_TRY_RUN([#include <stdio.h>
++/* If setvbuf has the reversed format, exit 0. */
++main () {
++ /* This call has the arguments reversed.
++ A reversed system may check and see that the address of main
++ is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */
++ if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
++ exit(1);
++ putc('\r', stdout);
++ exit(0); /* Non-reversed systems segv here. */
++}], ac_cv_func_setvbuf_reversed=yes, ac_cv_func_setvbuf_reversed=no)
++rm -f core core.* *.core])
++if test $ac_cv_func_setvbuf_reversed = yes; then
++ AC_DEFINE(SETVBUF_REVERSED)
++fi
++])
++
++AC_DEFUN(AC_FUNC_GETMNTENT,
++[# getmntent is in -lsun on Irix 4, -lseq on Dynix/PTX, -lgen on Unixware.
++AC_CHECK_LIB(sun, getmntent, LIBS="-lsun $LIBS",
++ [AC_CHECK_LIB(seq, getmntent, LIBS="-lseq $LIBS",
++ [AC_CHECK_LIB(gen, getmntent, LIBS="-lgen $LIBS")])])
++AC_CHECK_FUNC(getmntent, [AC_DEFINE(HAVE_GETMNTENT)])])
++
++AC_DEFUN(AC_FUNC_STRFTIME,
++[AC_CHECK_FUNC(strftime, [AC_DEFINE(HAVE_STRFTIME)],
++[# strftime is in -lintl on SCO UNIX.
++AC_CHECK_LIB(intl, strftime,
++[AC_DEFINE(HAVE_STRFTIME)
++LIBS="-lintl $LIBS"])])])
++
++AC_DEFUN(AC_FUNC_MEMCMP,
++[AC_CACHE_CHECK(for 8-bit clean memcmp, ac_cv_func_memcmp_clean,
++[AC_TRY_RUN([
++main()
++{
++ char c0 = 0x40, c1 = 0x80, c2 = 0x81;
++ exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
++}
++], ac_cv_func_memcmp_clean=yes, ac_cv_func_memcmp_clean=no,
++ac_cv_func_memcmp_clean=no)])
++test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
++AC_SUBST(LIBOBJS)dnl
++])
++
++AC_DEFUN(AC_FUNC_SELECT_ARGTYPES,
++[AC_MSG_CHECKING([types of arguments for select()])
++ AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
++ [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
++ [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
++ [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
++ for ac_cv_func_select_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do
++ for ac_cv_func_select_arg5 in 'struct timeval *' 'const struct timeval *'; do
++ AC_TRY_COMPILE(dnl
++[#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#ifdef HAVE_SYS_SELECT_H
++#include <sys/select.h>
++#endif
++#ifdef HAVE_SYS_SOCKET_H
++#include <sys/socket.h>
++#endif
++extern select ($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
++ [ac_not_found=no ; break 3],ac_not_found=yes)
++ done
++ done
++ done
++ ])dnl AC_CACHE_VAL
++ ])dnl AC_CACHE_VAL
++ ])dnl AC_CACHE_VAL
++ if test "$ac_not_found" = yes; then
++ ac_cv_func_select_arg1=int
++ ac_cv_func_select_arg234='int *'
++ ac_cv_func_select_arg5='struct timeval *'
++ fi
++ AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
++ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
++ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
++ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
++])
++
++
++dnl ### Checks for structure members
++
++
++AC_DEFUN(AC_HEADER_TIME,
++[AC_CACHE_CHECK([whether time.h and sys/time.h may both be included],
++ ac_cv_header_time,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/time.h>
++#include <time.h>],
++[struct tm *tp;], ac_cv_header_time=yes, ac_cv_header_time=no)])
++if test $ac_cv_header_time = yes; then
++ AC_DEFINE(TIME_WITH_SYS_TIME)
++fi
++])
++
++AC_DEFUN(AC_STRUCT_TM,
++[AC_CACHE_CHECK([whether struct tm is in sys/time.h or time.h],
++ ac_cv_struct_tm,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <time.h>],
++[struct tm *tp; tp->tm_sec;],
++ ac_cv_struct_tm=time.h, ac_cv_struct_tm=sys/time.h)])
++if test $ac_cv_struct_tm = sys/time.h; then
++ AC_DEFINE(TM_IN_SYS_TIME)
++fi
++])
++
++AC_DEFUN(AC_STRUCT_TIMEZONE,
++[AC_REQUIRE([AC_STRUCT_TM])dnl
++AC_CACHE_CHECK([for tm_zone in struct tm], ac_cv_struct_tm_zone,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_zone;],
++ ac_cv_struct_tm_zone=yes, ac_cv_struct_tm_zone=no)])
++if test "$ac_cv_struct_tm_zone" = yes; then
++ AC_DEFINE(HAVE_TM_ZONE)
++else
++ AC_CACHE_CHECK(for tzname, ac_cv_var_tzname,
++[AC_TRY_LINK(
++changequote(<<, >>)dnl
++<<#include <time.h>
++#ifndef tzname /* For SGI. */
++extern char *tzname[]; /* RS6000 and others reject char **tzname. */
++#endif>>,
++changequote([, ])dnl
++[atoi(*tzname);], ac_cv_var_tzname=yes, ac_cv_var_tzname=no)])
++ if test $ac_cv_var_tzname = yes; then
++ AC_DEFINE(HAVE_TZNAME)
++ fi
++fi
++])
++
++AC_DEFUN(AC_STRUCT_ST_BLOCKS,
++[AC_CACHE_CHECK([for st_blocks in struct stat], ac_cv_struct_st_blocks,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/stat.h>], [struct stat s; s.st_blocks;],
++ac_cv_struct_st_blocks=yes, ac_cv_struct_st_blocks=no)])
++if test $ac_cv_struct_st_blocks = yes; then
++ AC_DEFINE(HAVE_ST_BLOCKS)
++else
++ LIBOBJS="$LIBOBJS fileblocks.${ac_objext}"
++fi
++AC_SUBST(LIBOBJS)dnl
++])
++
++AC_DEFUN(AC_STRUCT_ST_BLKSIZE,
++[AC_CACHE_CHECK([for st_blksize in struct stat], ac_cv_struct_st_blksize,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/stat.h>], [struct stat s; s.st_blksize;],
++ac_cv_struct_st_blksize=yes, ac_cv_struct_st_blksize=no)])
++if test $ac_cv_struct_st_blksize = yes; then
++ AC_DEFINE(HAVE_ST_BLKSIZE)
++fi
++])
++
++AC_DEFUN(AC_STRUCT_ST_RDEV,
++[AC_CACHE_CHECK([for st_rdev in struct stat], ac_cv_struct_st_rdev,
++[AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/stat.h>], [struct stat s; s.st_rdev;],
++ac_cv_struct_st_rdev=yes, ac_cv_struct_st_rdev=no)])
++if test $ac_cv_struct_st_rdev = yes; then
++ AC_DEFINE(HAVE_ST_RDEV)
++fi
++])
++
++
++dnl ### Checks for compiler characteristics
++
++
++AC_DEFUN(AC_C_CROSS,
++[AC_OBSOLETE([$0], [; it has been merged into AC_PROG_CC])])
++
++AC_DEFUN(AC_C_CHAR_UNSIGNED,
++[AC_CACHE_CHECK(whether char is unsigned, ac_cv_c_char_unsigned,
++[if test "$GCC" = yes; then
++ # GCC predefines this symbol on systems where it applies.
++AC_EGREP_CPP(yes,
++[#ifdef __CHAR_UNSIGNED__
++ yes
++#endif
++], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no)
++else
++AC_TRY_RUN(
++[/* volatile prevents gcc2 from optimizing the test away on sparcs. */
++#if !defined(__STDC__) || __STDC__ != 1
++#define volatile
++#endif
++main() {
++ volatile char c = 255; exit(c < 0);
++}], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no)
++fi])
++if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
++ AC_DEFINE(__CHAR_UNSIGNED__)
++fi
++])
++
++AC_DEFUN(AC_C_LONG_DOUBLE,
++[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
++[if test "$GCC" = yes; then
++ ac_cv_c_long_double=yes
++else
++AC_TRY_RUN([int main() {
++/* The Stardent Vistra knows sizeof(long double), but does not support it. */
++long double foo = 0.0;
++/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
++exit(sizeof(long double) < sizeof(double)); }],
++ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
++fi])
++if test $ac_cv_c_long_double = yes; then
++ AC_DEFINE(HAVE_LONG_DOUBLE)
++fi
++])
++
++AC_DEFUN(AC_INT_16_BITS,
++[AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(int)])dnl
++AC_MSG_CHECKING(whether int is 16 bits)
++AC_TRY_RUN([main() { exit(sizeof(int) != 2); }],
++ [AC_MSG_RESULT(yes)
++ AC_DEFINE(INT_16_BITS)], AC_MSG_RESULT(no))
++])
++
++AC_DEFUN(AC_LONG_64_BITS,
++[AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(long)])dnl
++AC_MSG_CHECKING(whether long int is 64 bits)
++AC_TRY_RUN([main() { exit(sizeof(long int) != 8); }],
++ [AC_MSG_RESULT(yes)
++ AC_DEFINE(LONG_64_BITS)], AC_MSG_RESULT(no))
++])
++
++AC_DEFUN(AC_C_BIGENDIAN,
++[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
++[ac_cv_c_bigendian=unknown
++# See if sys/param.h defines the BYTE_ORDER macro.
++AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/param.h>], [
++#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
++ bogus endian macros
++#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
++AC_TRY_COMPILE([#include <sys/types.h>
++#include <sys/param.h>], [
++#if BYTE_ORDER != BIG_ENDIAN
++ not big endian
++#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
++if test $ac_cv_c_bigendian = unknown; then
++AC_TRY_RUN([main () {
++ /* Are we little or big endian? From Harbison&Steele. */
++ union
++ {
++ long l;
++ char c[sizeof (long)];
++ } u;
++ u.l = 1;
++ exit (u.c[sizeof (long) - 1] == 1);
++}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes)
++fi])
++if test $ac_cv_c_bigendian = yes; then
++ AC_DEFINE(WORDS_BIGENDIAN)
++fi
++])
++
++dnl Do nothing if the compiler accepts the inline keyword.
++dnl Otherwise define inline to __inline__ or __inline if one of those work,
++dnl otherwise define inline to be empty.
++AC_DEFUN(AC_C_INLINE,
++[AC_CACHE_CHECK([for inline], ac_cv_c_inline,
++[ac_cv_c_inline=no
++for ac_kw in inline __inline__ __inline; do
++ AC_TRY_COMPILE(, [} $ac_kw foo() {], [ac_cv_c_inline=$ac_kw; break])
++done
++])
++case "$ac_cv_c_inline" in
++ inline | yes) ;;
++ no) AC_DEFINE(inline, ) ;;
++ *) AC_DEFINE_UNQUOTED(inline, $ac_cv_c_inline) ;;
++esac
++])
++
++AC_DEFUN(AC_C_CONST,
++[dnl This message is consistent in form with the other checking messages,
++dnl and with the result message.
++AC_CACHE_CHECK([for working const], ac_cv_c_const,
++[AC_TRY_COMPILE(,
++changequote(<<, >>)dnl
++<<
++/* Ultrix mips cc rejects this. */
++typedef int charset[2]; const charset x;
++/* SunOS 4.1.1 cc rejects this. */
++char const *const *ccp;
++char **p;
++/* NEC SVR4.0.2 mips cc rejects this. */
++struct point {int x, y;};
++static struct point const zero = {0,0};
++/* AIX XL C 1.02.0.0 rejects this.
++ It does not let you subtract one const X* pointer from another in an arm
++ of an if-expression whose if-part is not a constant expression */
++const char *g = "string";
++ccp = &g + (g ? g-g : 0);
++/* HPUX 7.0 cc rejects these. */
++++ccp;
++p = (char**) ccp;
++ccp = (char const *const *) p;
++{ /* SCO 3.2v4 cc rejects this. */
++ char *t;
++ char const *s = 0 ? (char *) 0 : (char const *) 0;
++
++ *t++ = 0;
++}
++{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
++ int x[] = {25, 17};
++ const int *foo = &x[0];
++ ++foo;
++}
++{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
++ typedef const int *iptr;
++ iptr p = 0;
++ ++p;
++}
++{ /* AIX XL C 1.02.0.0 rejects this saying
++ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
++ struct s { int j; const int *ap[3]; };
++ struct s *b; b->j = 5;
++}
++{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
++ const int foo = 10;
++}
++>>,
++changequote([, ])dnl
++ac_cv_c_const=yes, ac_cv_c_const=no)])
++if test $ac_cv_c_const = no; then
++ AC_DEFINE(const, )
++fi
++])
++
++AC_DEFUN(AC_C_STRINGIZE, [
++AC_REQUIRE([AC_PROG_CPP])
++AC_MSG_CHECKING([for preprocessor stringizing operator])
++AC_CACHE_VAL(ac_cv_c_stringize,
++AC_EGREP_CPP([#teststring],[
++#define x(y) #y
++
++char *s = x(teststring);
++], ac_cv_c_stringize=no, ac_cv_c_stringize=yes))
++if test "${ac_cv_c_stringize}" = yes
++then
++ AC_DEFINE(HAVE_STRINGIZE)
++fi
++AC_MSG_RESULT([${ac_cv_c_stringize}])
++])dnl
++
++define(AC_ARG_ARRAY,
++[errprint(__file__:__line__: [$0] has been removed; don't do unportable things with arguments
++)m4exit(4)])
++
++dnl Check the object extension used by the compiler: typically .o or
++dnl .obj. If this is called, some other behaviour will change,
++dnl determined by ac_objext.
++AC_DEFUN(AC_OBJEXT,
++[AC_MSG_CHECKING([for object suffix])
++AC_CACHE_VAL(ac_cv_objext,
++[rm -f conftest*
++echo 'int i = 1;' > conftest.$ac_ext
++if AC_TRY_EVAL(ac_compile); then
++ for ac_file in conftest.*; do
++ case $ac_file in
++ *.c) ;;
++ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
++ esac
++ done
++else
++ AC_MSG_ERROR([installation or configuration problem; compiler does not work])
++fi
++rm -f conftest*])
++AC_MSG_RESULT($ac_cv_objext)
++OBJEXT=$ac_cv_objext
++ac_objext=$ac_cv_objext
++AC_SUBST(OBJEXT)])
++
++dnl Determine the linker flags (e.g. `-L' and `-l') for the Fortran 77
++dnl intrinsic and run-time libraries that are required to successfully
++dnl link a Fortran 77 program or shared library. The output variable
++dnl FLIBS is set to these flags.
++dnl
++dnl This macro is intended to be used in those situations when it is
++dnl necessary to mix, e.g. C++ and Fortran 77, source code into a single
++dnl program or shared library.
++dnl
++dnl For example, if object files from a C++ and Fortran 77 compiler must
++dnl be linked together, then the C++ compiler/linker must be used for
++dnl linking (since special C++-ish things need to happen at link time
++dnl like calling global constructors, instantiating templates, enabling
++dnl exception support, etc.).
++dnl
++dnl However, the Fortran 77 intrinsic and run-time libraries must be
++dnl linked in as well, but the C++ compiler/linker doesn't know how to
++dnl add these Fortran 77 libraries. Hence, the macro
++dnl `AC_F77_LIBRARY_LDFLAGS' was created to determine these Fortran 77
++dnl libraries.
++dnl
++dnl This macro was packaged in its current form by Matthew D. Langston
++dnl <langston@SLAC.Stanford.EDU>. However, nearly all of this macro
++dnl came from the `OCTAVE_FLIBS' macro in `octave-2.0.13/aclocal.m4',
++dnl and full credit should go to John W. Eaton for writing this
++dnl extremely useful macro. Thank you John.
++dnl
++dnl AC_F77_LIBRARY_LDFLAGS()
++AC_DEFUN(AC_F77_LIBRARY_LDFLAGS,
++[AC_MSG_CHECKING([for Fortran 77 libraries])
++AC_REQUIRE([AC_PROG_F77])
++AC_REQUIRE([AC_CANONICAL_HOST])
++AC_CACHE_VAL(ac_cv_flibs,
++[changequote(, )dnl
++dnl Write a minimal program and compile it with -v. I don't know what
++dnl to do if your compiler doesn't have -v...
++echo " END" > conftest.f
++foutput=`${F77} -v -o conftest conftest.f 2>&1`
++dnl
++dnl The easiest thing to do for xlf output is to replace all the commas
++dnl with spaces. Try to only do that if the output is really from xlf,
++dnl since doing that causes problems on other systems.
++dnl
++xlf_p=`echo $foutput | grep xlfentry`
++if test -n "$xlf_p"; then
++ foutput=`echo $foutput | sed 's/,/ /g'`
++fi
++dnl
++ld_run_path=`echo $foutput | \
++ sed -n -e 's/^.*LD_RUN_PATH *= *\([^ ]*\).*/\1/p'`
++dnl
++dnl We are only supposed to find this on Solaris systems...
++dnl Uh, the run path should be absolute, shouldn't it?
++dnl
++case "$ld_run_path" in
++ /*)
++ if test "$ac_cv_prog_gcc" = yes; then
++ ld_run_path="-Xlinker -R -Xlinker $ld_run_path"
++ else
++ ld_run_path="-R $ld_run_path"
++ fi
++ ;;
++ *)
++ ld_run_path=
++ ;;
++esac
++dnl
++flibs=
++lflags=
++dnl
++dnl If want_arg is set, we know we want the arg to be added to the list,
++dnl so we don't have to examine it.
++dnl
++want_arg=
++dnl
++for arg in $foutput; do
++ old_want_arg=$want_arg
++ want_arg=
++dnl
++dnl None of the options that take arguments expect the argument to
++dnl start with a -, so pretend we didn't see anything special.
++dnl
++ if test -n "$old_want_arg"; then
++ case "$arg" in
++ -*)
++ old_want_arg=
++ ;;
++ esac
++ fi
++ case "$old_want_arg" in
++ '')
++ case $arg in
++ /*.a)
++ exists=false
++ for f in $lflags; do
++ if test x$arg = x$f; then
++ exists=true
++ fi
++ done
++ if $exists; then
++ arg=
++ else
++ lflags="$lflags $arg"
++ fi
++ ;;
++ -bI:*)
++ exists=false
++ for f in $lflags; do
++ if test x$arg = x$f; then
++ exists=true
++ fi
++ done
++ if $exists; then
++ arg=
++ else
++ if test "$ac_cv_prog_gcc" = yes; then
++ lflags="$lflags -Xlinker $arg"
++ else
++ lflags="$lflags $arg"
++ fi
++ fi
++ ;;
++ -lang* | -lcrt0.o | -lc | -lgcc)
++ arg=
++ ;;
++ -[lLR])
++ want_arg=$arg
++ arg=
++ ;;
++ -[lLR]*)
++ exists=false
++ for f in $lflags; do
++ if test x$arg = x$f; then
++ exists=true
++ fi
++ done
++ if $exists; then
++ arg=
++ else
++ case "$arg" in
++ -lkernel32)
++ case "$canonical_host_type" in
++ *-*-cygwin*)
++ arg=
++ ;;
++ *)
++ lflags="$lflags $arg"
++ ;;
++ esac
++ ;;
++ -lm)
++ ;;
++ *)
++ lflags="$lflags $arg"
++ ;;
++ esac
++ fi
++ ;;
++ -u)
++ want_arg=$arg
++ arg=
++ ;;
++ -Y)
++ want_arg=$arg
++ arg=
++ ;;
++ *)
++ arg=
++ ;;
++ esac
++ ;;
++ -[lLR])
++ arg="$old_want_arg $arg"
++ ;;
++ -u)
++ arg="-u $arg"
++ ;;
++ -Y)
++dnl
++dnl Should probably try to ensure unique directory options here too.
++dnl This probably only applies to Solaris systems, and then will only
++dnl work with gcc...
++dnl
++ arg=`echo $arg | sed -e 's%^P,%%'`
++ SAVE_IFS=$IFS
++ IFS=:
++ list=
++ for elt in $arg; do
++ list="$list -L$elt"
++ done
++ IFS=$SAVE_IFS
++ arg="$list"
++ ;;
++ esac
++dnl
++ if test -n "$arg"; then
++ flibs="$flibs $arg"
++ fi
++done
++if test -n "$ld_run_path"; then
++ flibs_result="$ld_run_path $flibs"
++else
++ flibs_result="$flibs"
++fi
++changequote([, ])dnl
++ac_cv_flibs="$flibs_result"])
++FLIBS="$ac_cv_flibs"
++AC_SUBST(FLIBS)dnl
++AC_MSG_RESULT($FLIBS)
++])
++
++
++dnl ### Checks for operating system services
++
++
++AC_DEFUN(AC_SYS_INTERPRETER,
++[# Pull the hash mark out of the macro call to avoid m4 problems.
++ac_msg="whether #! works in shell scripts"
++AC_CACHE_CHECK($ac_msg, ac_cv_sys_interpreter,
++[echo '#! /bin/cat
++exit 69
++' > conftest
++chmod u+x conftest
++(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null)
++if test $? -ne 69; then
++ ac_cv_sys_interpreter=yes
++else
++ ac_cv_sys_interpreter=no
++fi
++rm -f conftest])
++interpval="$ac_cv_sys_interpreter"
++])
++
++define(AC_HAVE_POUNDBANG,
++[errprint(__file__:__line__: [$0 has been replaced by AC_SYS_INTERPRETER, taking no arguments
++])m4exit(4)])
++
++AC_DEFUN(AC_SYS_LONG_FILE_NAMES,
++[AC_CACHE_CHECK(for long file names, ac_cv_sys_long_file_names,
++[ac_cv_sys_long_file_names=yes
++# Test for long file names in all the places we know might matter:
++# . the current directory, where building will happen
++# $prefix/lib where we will be installing things
++# $exec_prefix/lib likewise
++# eval it to expand exec_prefix.
++# $TMPDIR if set, where it might want to write temporary files
++# if $TMPDIR is not set:
++# /tmp where it might want to write temporary files
++# /var/tmp likewise
++# /usr/tmp likewise
++if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
++ ac_tmpdirs="$TMPDIR"
++else
++ ac_tmpdirs='/tmp /var/tmp /usr/tmp'
++fi
++for ac_dir in . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
++ test -d $ac_dir || continue
++ test -w $ac_dir || continue # It is less confusing to not echo anything here.
++ (echo 1 > $ac_dir/conftest9012345) 2>/dev/null
++ (echo 2 > $ac_dir/conftest9012346) 2>/dev/null
++ val=`cat $ac_dir/conftest9012345 2>/dev/null`
++ if test ! -f $ac_dir/conftest9012345 || test "$val" != 1; then
++ ac_cv_sys_long_file_names=no
++ rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
++ break
++ fi
++ rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
++done])
++if test $ac_cv_sys_long_file_names = yes; then
++ AC_DEFINE(HAVE_LONG_FILE_NAMES)
++fi
++])
++
++AC_DEFUN(AC_SYS_RESTARTABLE_SYSCALLS,
++[AC_CACHE_CHECK(for restartable system calls, ac_cv_sys_restartable_syscalls,
++[AC_TRY_RUN(
++[/* Exit 0 (true) if wait returns something other than -1,
++ i.e. the pid of the child, which means that wait was restarted
++ after getting the signal. */
++#include <sys/types.h>
++#include <signal.h>
++ucatch (isig) { }
++main () {
++ int i = fork (), status;
++ if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
++ signal (SIGINT, ucatch);
++ status = wait(&i);
++ if (status == -1) wait(&i);
++ exit (status == -1);
++}
++], ac_cv_sys_restartable_syscalls=yes, ac_cv_sys_restartable_syscalls=no)])
++if test $ac_cv_sys_restartable_syscalls = yes; then
++ AC_DEFINE(HAVE_RESTARTABLE_SYSCALLS)
++fi
++])
++
++AC_DEFUN(AC_PATH_X,
++[AC_REQUIRE_CPP()dnl Set CPP; we run AC_PATH_X_DIRECT conditionally.
++# If we find X, set shell vars x_includes and x_libraries to the
++# paths, otherwise set no_x=yes.
++# Uses ac_ vars as temps to allow command line to override cache and checks.
++# --without-x overrides everything else, but does not touch the cache.
++AC_MSG_CHECKING(for X)
++
++AC_ARG_WITH(x, [ --with-x use the X Window System])
++# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
++if test "x$with_x" = xno; then
++ # The user explicitly disabled X.
++ have_x=disabled
++else
++ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
++ # Both variables are already set.
++ have_x=yes
++ else
++AC_CACHE_VAL(ac_cv_have_x,
++[# One or both of the vars are not set, and there is no cached value.
++ac_x_includes=NO ac_x_libraries=NO
++AC_PATH_X_XMKMF
++AC_PATH_X_DIRECT
++if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
++ # Didn't find X anywhere. Cache the known absence of X.
++ ac_cv_have_x="have_x=no"
++else
++ # Record where we found X for the cache.
++ ac_cv_have_x="have_x=yes \
++ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
++fi])dnl
++ fi
++ eval "$ac_cv_have_x"
++fi # $with_x != no
++
++if test "$have_x" != yes; then
++ AC_MSG_RESULT($have_x)
++ no_x=yes
++else
++ # If each of the values was on the command line, it overrides each guess.
++ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
++ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
++ # Update the cache value to reflect the command line values.
++ ac_cv_have_x="have_x=yes \
++ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
++ AC_MSG_RESULT([libraries $x_libraries, headers $x_includes])
++fi
++])
++
++dnl Internal subroutine of AC_PATH_X.
++dnl Set ac_x_includes and/or ac_x_libraries.
++AC_DEFUN(AC_PATH_X_XMKMF,
++[rm -fr conftestdir
++if mkdir conftestdir; then
++ cd conftestdir
++ # Make sure to not put "make" in the Imakefile rules, since we grep it out.
++ cat > Imakefile <<'EOF'
++acfindx:
++ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
++EOF
++ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
++ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
++ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
++ for ac_extension in a so sl; do
++ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
++ test -f $ac_im_libdir/libX11.$ac_extension; then
++ ac_im_usrlibdir=$ac_im_libdir; break
++ fi
++ done
++ # Screen out bogus values from the imake configuration. They are
++ # bogus both because they are the default anyway, and because
++ # using them would break gcc on systems where it needs fixed includes.
++ case "$ac_im_incroot" in
++ /usr/include) ;;
++ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
++ esac
++ case "$ac_im_usrlibdir" in
++ /usr/lib | /lib) ;;
++ *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
++ esac
++ fi
++ cd ..
++ rm -fr conftestdir
++fi
++])
++
++dnl Internal subroutine of AC_PATH_X.
++dnl Set ac_x_includes and/or ac_x_libraries.
++AC_DEFUN(AC_PATH_X_DIRECT,
++[if test "$ac_x_includes" = NO; then
++ # Guess where to find include files, by looking for this one X11 .h file.
++ test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
++
++ # First, try using that file with no special directory specified.
++AC_TRY_CPP([#include <$x_direct_test_include>],
++[# We can compile using X headers with no special include directory.
++ac_x_includes=],
++[# Look for the header file in a standard set of common directories.
++# Check X11 before X11Rn because it is often a symlink to the current release.
++ for ac_dir in \
++ /usr/X11/include \
++ /usr/X11R6/include \
++ /usr/X11R5/include \
++ /usr/X11R4/include \
++ \
++ /usr/include/X11 \
++ /usr/include/X11R6 \
++ /usr/include/X11R5 \
++ /usr/include/X11R4 \
++ \
++ /usr/local/X11/include \
++ /usr/local/X11R6/include \
++ /usr/local/X11R5/include \
++ /usr/local/X11R4/include \
++ \
++ /usr/local/include/X11 \
++ /usr/local/include/X11R6 \
++ /usr/local/include/X11R5 \
++ /usr/local/include/X11R4 \
++ \
++ /usr/X386/include \
++ /usr/x386/include \
++ /usr/XFree86/include/X11 \
++ \
++ /usr/include \
++ /usr/local/include \
++ /usr/unsupported/include \
++ /usr/athena/include \
++ /usr/local/x11r5/include \
++ /usr/lpp/Xamples/include \
++ \
++ /usr/openwin/include \
++ /usr/openwin/share/include \
++ ; \
++ do
++ if test -r "$ac_dir/$x_direct_test_include"; then
++ ac_x_includes=$ac_dir
++ break
++ fi
++ done])
++fi # $ac_x_includes = NO
++
++if test "$ac_x_libraries" = NO; then
++ # Check for the libraries.
++
++ test -z "$x_direct_test_library" && x_direct_test_library=Xt
++ test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
++
++ # See if we find them without any special options.
++ # Don't add to $LIBS permanently.
++ ac_save_LIBS="$LIBS"
++ LIBS="-l$x_direct_test_library $LIBS"
++AC_TRY_LINK(, [${x_direct_test_function}()],
++[LIBS="$ac_save_LIBS"
++# We can link X programs with no special library path.
++ac_x_libraries=],
++[LIBS="$ac_save_LIBS"
++# First see if replacing the include by lib works.
++# Check X11 before X11Rn because it is often a symlink to the current release.
++for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
++ /usr/X11/lib \
++ /usr/X11R6/lib \
++ /usr/X11R5/lib \
++ /usr/X11R4/lib \
++ \
++ /usr/lib/X11 \
++ /usr/lib/X11R6 \
++ /usr/lib/X11R5 \
++ /usr/lib/X11R4 \
++ \
++ /usr/local/X11/lib \
++ /usr/local/X11R6/lib \
++ /usr/local/X11R5/lib \
++ /usr/local/X11R4/lib \
++ \
++ /usr/local/lib/X11 \
++ /usr/local/lib/X11R6 \
++ /usr/local/lib/X11R5 \
++ /usr/local/lib/X11R4 \
++ \
++ /usr/X386/lib \
++ /usr/x386/lib \
++ /usr/XFree86/lib/X11 \
++ \
++ /usr/lib \
++ /usr/local/lib \
++ /usr/unsupported/lib \
++ /usr/athena/lib \
++ /usr/local/x11r5/lib \
++ /usr/lpp/Xamples/lib \
++ /lib/usr/lib/X11 \
++ \
++ /usr/openwin/lib \
++ /usr/openwin/share/lib \
++ ; \
++do
++dnl Don't even attempt the hair of trying to link an X program!
++ for ac_extension in a so sl; do
++ if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
++ ac_x_libraries=$ac_dir
++ break 2
++ fi
++ done
++done])
++fi # $ac_x_libraries = NO
++])
++
++dnl Find additional X libraries, magic flags, etc.
++AC_DEFUN(AC_PATH_XTRA,
++[AC_REQUIRE([AC_PATH_X])dnl
++if test "$no_x" = yes; then
++ # Not all programs may use this symbol, but it does not hurt to define it.
++ AC_DEFINE(X_DISPLAY_MISSING)
++ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
++else
++ if test -n "$x_includes"; then
++ X_CFLAGS="$X_CFLAGS -I$x_includes"
++ fi
++
++ # It would also be nice to do this for all -L options, not just this one.
++ if test -n "$x_libraries"; then
++ X_LIBS="$X_LIBS -L$x_libraries"
++dnl FIXME banish uname from this macro!
++ # For Solaris; some versions of Sun CC require a space after -R and
++ # others require no space. Words are not sufficient . . . .
++ case "`(uname -sr) 2>/dev/null`" in
++ "SunOS 5"*)
++ AC_MSG_CHECKING(whether -R must be followed by a space)
++ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
++ AC_TRY_LINK(, , ac_R_nospace=yes, ac_R_nospace=no)
++ if test $ac_R_nospace = yes; then
++ AC_MSG_RESULT(no)
++ X_LIBS="$X_LIBS -R$x_libraries"
++ else
++ LIBS="$ac_xsave_LIBS -R $x_libraries"
++ AC_TRY_LINK(, , ac_R_space=yes, ac_R_space=no)
++ if test $ac_R_space = yes; then
++ AC_MSG_RESULT(yes)
++ X_LIBS="$X_LIBS -R $x_libraries"
++ else
++ AC_MSG_RESULT(neither works)
++ fi
++ fi
++ LIBS="$ac_xsave_LIBS"
++ esac
++ fi
++
++ # Check for system-dependent libraries X programs must link with.
++ # Do this before checking for the system-independent R6 libraries
++ # (-lICE), since we may need -lsocket or whatever for X linking.
++
++ if test "$ISC" = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
++ else
++ # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
++ # libraries were built with DECnet support. And karl@cs.umb.edu says
++ # the Alpha needs dnet_stub (dnet does not exist).
++ AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
++ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
++ AC_CHECK_LIB(dnet_stub, dnet_ntoa,
++ [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
++ fi
++
++ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
++ # to get the SysV transport functions.
++ # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4)
++ # needs -lnsl.
++ # The nsl library prevents programs from opening the X display
++ # on Irix 5.2, according to dickey@clark.net.
++ AC_CHECK_FUNC(gethostbyname)
++ if test $ac_cv_func_gethostbyname = no; then
++ AC_CHECK_LIB(nsl, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
++ fi
++
++ # lieder@skyler.mavd.honeywell.com says without -lsocket,
++ # socket/setsockopt and other routines are undefined under SCO ODT
++ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
++ # on later versions), says simon@lia.di.epfl.ch: it contains
++ # gethostby* variants that don't use the nameserver (or something).
++ # -lsocket must be given before -lnsl if both are needed.
++ # We assume that if connect needs -lnsl, so does gethostbyname.
++ AC_CHECK_FUNC(connect)
++ if test $ac_cv_func_connect = no; then
++ AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
++ $X_EXTRA_LIBS)
++ fi
++
++ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
++ AC_CHECK_FUNC(remove)
++ if test $ac_cv_func_remove = no; then
++ AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
++ fi
++
++ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
++ AC_CHECK_FUNC(shmat)
++ if test $ac_cv_func_shmat = no; then
++ AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")
++ fi
++ fi
++
++ # Check for libraries that X11R6 Xt/Xaw programs need.
++ ac_save_LDFLAGS="$LDFLAGS"
++ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
++ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
++ # check for ICE first), but we must link in the order -lSM -lICE or
++ # we get undefined symbols. So assume we have SM if we have ICE.
++ # These have to be linked with before -lX11, unlike the other
++ # libraries we check for below, so use a different variable.
++ # --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
++ AC_CHECK_LIB(ICE, IceConnectionNumber,
++ [X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"], , $X_EXTRA_LIBS)
++ LDFLAGS="$ac_save_LDFLAGS"
++
++fi
++AC_SUBST(X_CFLAGS)dnl
++AC_SUBST(X_PRE_LIBS)dnl
++AC_SUBST(X_LIBS)dnl
++AC_SUBST(X_EXTRA_LIBS)dnl
++])
++
++dnl The old Cygwin32 macro is deprecated.
++AC_DEFUN(AC_CYGWIN32,
++[AC_OBSOLETE([$0], [; instead use AC_CYGWIN])dnl
++AC_CYGWIN])
++
++dnl Check for Cygwin. This is a way to set the right value for
++dnl EXEEXT.
++AC_DEFUN(AC_CYGWIN,
++[AC_CACHE_CHECK(for Cygwin environment, ac_cv_cygwin,
++[AC_TRY_COMPILE(,[
++#ifndef __CYGWIN__
++#define __CYGWIN__ __CYGWIN32__
++#endif
++return __CYGWIN__;],
++ac_cv_cygwin=yes, ac_cv_cygwin=no)
++rm -f conftest*])
++CYGWIN=
++test "$ac_cv_cygwin" = yes && CYGWIN=yes])
++
++dnl Check for mingw32. This is another way to set the right value for
++dnl EXEEXT.
++AC_DEFUN(AC_MINGW32,
++[AC_CACHE_CHECK(for mingw32 environment, ac_cv_mingw32,
++[AC_TRY_COMPILE(,[return __MINGW32__;],
++ac_cv_mingw32=yes, ac_cv_mingw32=no)
++rm -f conftest*])
++MINGW32=
++test "$ac_cv_mingw32" = yes && MINGW32=yes])
++
++dnl Check for the extension used for executables. This knows that we
++dnl add .exe for Cygwin or mingw32. Otherwise, it compiles a test
++dnl executable. If this is called, the executable extensions will be
++dnl automatically used by link commands run by the configure script.
++AC_DEFUN(AC_EXEEXT,
++[AC_REQUIRE([AC_CYGWIN])
++AC_REQUIRE([AC_MINGW32])
++AC_MSG_CHECKING([for executable suffix])
++AC_CACHE_VAL(ac_cv_exeext,
++[if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
++ ac_cv_exeext=.exe
++else
++ rm -f conftest*
++ echo 'int main () { return 0; }' > conftest.$ac_ext
++ ac_cv_exeext=
++ if AC_TRY_EVAL(ac_link); then
++ for file in conftest.*; do
++ case $file in
++ *.c | *.o | *.obj) ;;
++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
++ esac
++ done
++ else
++ AC_MSG_ERROR([installation or configuration problem: compiler cannot create executables.])
++ fi
++ rm -f conftest*
++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
++fi])
++EXEEXT=""
++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
++AC_MSG_RESULT(${ac_cv_exeext})
++dnl Setting ac_exeext will implicitly change the ac_link command.
++ac_exeext=$EXEEXT
++AC_SUBST(EXEEXT)])
++
++
++dnl ### Checks for UNIX variants
++dnl These are kludges which should be replaced by a single POSIX check.
++dnl They aren't cached, to discourage their use.
++
++
++AC_DEFUN(AC_AIX,
++[AC_BEFORE([$0], [AC_TRY_COMPILE])dnl
++AC_BEFORE([$0], [AC_TRY_RUN])dnl
++AC_MSG_CHECKING(for AIX)
++AC_EGREP_CPP(yes,
++[#ifdef _AIX
++ yes
++#endif
++], [AC_MSG_RESULT(yes); AC_DEFINE(_ALL_SOURCE)], AC_MSG_RESULT(no))
++])
++
++AC_DEFUN(AC_MINIX,
++[AC_BEFORE([$0], [AC_TRY_COMPILE])dnl
++AC_BEFORE([$0], [AC_TRY_RUN])dnl
++AC_CHECK_HEADER(minix/config.h, MINIX=yes, MINIX=)
++if test "$MINIX" = yes; then
++ AC_DEFINE(_POSIX_SOURCE)
++ AC_DEFINE(_POSIX_1_SOURCE, 2)
++ AC_DEFINE(_MINIX)
++fi
++])
++
++AC_DEFUN(AC_ISC_POSIX,
++[AC_REQUIRE([AC_PROG_CC])dnl
++AC_BEFORE([$0], [AC_TRY_COMPILE])dnl
++AC_BEFORE([$0], [AC_TRY_RUN])dnl
++AC_MSG_CHECKING(for POSIXized ISC)
++if test -d /etc/conf/kconfig.d &&
++ grep _POSIX_VERSION [/usr/include/sys/unistd.h] >/dev/null 2>&1
++then
++ AC_MSG_RESULT(yes)
++ ISC=yes # If later tests want to check for ISC.
++ AC_DEFINE(_POSIX_SOURCE)
++ if test "$GCC" = yes; then
++ CC="$CC -posix"
++ else
++ CC="$CC -Xp"
++ fi
++else
++ AC_MSG_RESULT(no)
++ ISC=
++fi
++])
++
++AC_DEFUN(AC_XENIX_DIR,
++[AC_OBSOLETE([$0], [; instead use AC_HEADER_DIRENT])dnl
++AC_REQUIRE([AC_DIR_HEADER])dnl
++AC_MSG_CHECKING(for Xenix)
++AC_EGREP_CPP(yes,
++[#if defined(M_XENIX) && !defined(M_UNIX)
++ yes
++#endif
++], [AC_MSG_RESULT(yes); XENIX=yes], [AC_MSG_RESULT(no); XENIX=])
++if test "$XENIX" = yes; then
++ # Make sure -ldir precedes -lx.
++ test $ac_header_dirent = dirent.h && LIBS="-ldir $LIBS"
++ LIBS="$LIBS -lx"
++fi
++])
++
++AC_DEFUN(AC_DYNIX_SEQ,
++[AC_OBSOLETE([$0], [; instead use AC_FUNC_GETMNTENT])dnl
++AC_CHECK_LIB(seq, getmntent, LIBS="-lseq $LIBS")
++])
++
++AC_DEFUN(AC_IRIX_SUN,
++[AC_OBSOLETE([$0], [; instead use AC_FUNC_GETMNTENT or AC_CHECK_LIB(sun, getpwnam)])dnl
++AC_CHECK_LIB(sun, getmntent, LIBS="-lsun $LIBS")
++])
++
++AC_DEFUN(AC_SCO_INTL,
++[AC_OBSOLETE([$0], [; instead use AC_FUNC_STRFTIME])dnl
++AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS")
++])
+diff -up firefox-78.8.0/build/autoconf/autoconf.m4.D89554-autoconf1.diff firefox-78.8.0/build/autoconf/autoconf.m4
+--- firefox-78.8.0/build/autoconf/autoconf.m4.D89554-autoconf1.diff 2021-02-25 13:48:13.605993481 +0100
++++ firefox-78.8.0/build/autoconf/autoconf.m4 2021-02-25 13:48:13.605993481 +0100
+@@ -0,0 +1,28 @@
++dnl Driver that loads the Autoconf macro files.
++dnl Requires GNU m4.
++dnl This file is part of Autoconf.
++dnl Copyright (C) 1994 Free Software Foundation, Inc.
++dnl
++dnl This program is free software; you can redistribute it and/or modify
++dnl it under the terms of the GNU General Public License as published by
++dnl the Free Software Foundation; either version 2, or (at your option)
++dnl any later version.
++dnl
++dnl This program is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++dnl GNU General Public License for more details.
++dnl
++dnl You should have received a copy of the GNU General Public License
++dnl along with this program; if not, write to the Free Software
++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++dnl 02111-1307, USA.
++dnl
++dnl Written by David MacKenzie.
++dnl
++include(acgeneral.m4)dnl
++builtin(include, acspecific.m4)dnl
++builtin(include, acoldnames.m4)dnl
++dnl Do not sinclude acsite.m4 here, because it may not be installed
++dnl yet when Autoconf is frozen.
++dnl Do not sinclude ./aclocal.m4 here, to prevent it from being frozen.
+diff -up firefox-78.8.0/build/autoconf/autoconf.sh.D89554-autoconf1.diff firefox-78.8.0/build/autoconf/autoconf.sh
+--- firefox-78.8.0/build/autoconf/autoconf.sh.D89554-autoconf1.diff 2021-02-25 13:48:13.606993484 +0100
++++ firefox-78.8.0/build/autoconf/autoconf.sh 2021-02-25 13:48:13.606993484 +0100
+@@ -0,0 +1,159 @@
++#! @SHELL@
++# autoconf -- create `configure' using m4 macros
++# Copyright (C) 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++# 02111-1307, USA.
++
++# If given no args, create `configure' from template file `configure.in'.
++# With one arg, create a configure script on standard output from
++# the given template file.
++
++usage="\
++Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
++ [-l dir] [--localdir=dir] [--version] [template-file]"
++
++# NLS nuisances.
++# Only set these to C if already set. These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test "${LANG+set}" = set; then LANG=C; export LANG; fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
++
++: ${AC_MACRODIR=@datadir@}
++: ${M4=@M4@}
++: ${AWK=@AWK@}
++case "${M4}" in
++/*) # Handle the case that m4 has moved since we were configured.
++ # It may have been found originally in a build directory.
++ test -f "${M4}" || M4=m4 ;;
++esac
++
++: ${TMPDIR=/tmp}
++tmpout=${TMPDIR}/acout.$$
++localdir=
++show_version=no
++
++while test $# -gt 0 ; do
++ case "${1}" in
++ -h | --help | --h* )
++ echo "${usage}" 1>&2; exit 0 ;;
++ --localdir=* | --l*=* )
++ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
++ shift ;;
++ -l | --localdir | --l*)
++ shift
++ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ localdir="${1}"
++ shift ;;
++ --macrodir=* | --m*=* )
++ AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
++ shift ;;
++ -m | --macrodir | --m* )
++ shift
++ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ AC_MACRODIR="${1}"
++ shift ;;
++ --version | --v* )
++ show_version=yes; shift ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "${usage}" 1>&2; exit 1 ;;
++ * )
++ break ;;
++ esac
++done
++
++if test $show_version = yes; then
++ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
++ $AC_MACRODIR/acgeneral.m4`
++ echo "Autoconf version $version"
++ exit 0
++fi
++
++case $# in
++ 0) infile=configure.in ;;
++ 1) infile="$1" ;;
++ *) echo "$usage" >&2; exit 1 ;;
++esac
++
++trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
++
++tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
++if test z$infile = z-; then
++ infile=$tmpin
++ cat > $infile
++elif test ! -r "$infile"; then
++ echo "autoconf: ${infile}: No such file or directory" >&2
++ exit 1
++fi
++
++if test -n "$localdir"; then
++ use_localdir="-I$localdir -DAC_LOCALDIR=$localdir"
++else
++ use_localdir=
++fi
++
++# Use the frozen version of Autoconf if available.
++r= f=
++# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
++case `$M4 --help < /dev/null 2>&1` in
++*reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
++*traditional*) ;;
++*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
++esac
++
++$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
++ { rm -f $tmpin $tmpout; exit 2; }
++
++# You could add your own prefixes to pattern if you wanted to check for
++# them too, e.g. pattern='\(AC_\|ILT_\)', except that UNIX sed doesn't do
++# alternation.
++pattern="AC_"
++
++status=0
++if grep "^[^#]*${pattern}" $tmpout > /dev/null 2>&1; then
++ echo "autoconf: Undefined macros:" >&2
++ sed -n "s/^[^#]*\\(${pattern}[_A-Za-z0-9]*\\).*/\\1/p" $tmpout |
++ while read macro; do
++ grep -n "^[^#]*$macro" $infile /dev/null
++ test $? -eq 1 && echo >&2 "***BUG in Autoconf--please report*** $macro"
++ done | sort -u >&2
++ status=1
++fi
++
++if test $# -eq 0; then
++ exec 4> configure; chmod +x configure
++else
++ exec 4>&1
++fi
++
++# Put the real line numbers into configure to make config.log more helpful.
++$AWK '
++/__oline__/ { printf "%d:", NR + 1 }
++ { print }
++' $tmpout | sed '
++/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
++' >&4
++
++rm -f $tmpout
++
++exit $status
+diff -up firefox-78.8.0/build/moz.configure/old.configure.D89554-autoconf1.diff firefox-78.8.0/build/moz.configure/old.configure
+--- firefox-78.8.0/build/moz.configure/old.configure.D89554-autoconf1.diff 2021-02-17 08:48:52.000000000 +0100
++++ firefox-78.8.0/build/moz.configure/old.configure 2021-02-25 13:50:02.595363534 +0100
+@@ -4,65 +4,7 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-
+-option(env='AUTOCONF', nargs=1, help='Path to autoconf 2.13')
+-
+-
+-@depends(mozconfig, 'AUTOCONF')
+-@checking('for autoconf')
+-@imports(_from='os.path', _import='exists')
+-@imports('re')
+-def autoconf(mozconfig, autoconf):
+- mozconfig_autoconf = None
+- if mozconfig['path']:
+- make_extra = mozconfig['make_extra']
+- if make_extra:
+- for assignment in make_extra:
+- m = re.match('(?:export\s+)?AUTOCONF\s*:?=\s*(.+)$',
+- assignment)
+- if m:
+- mozconfig_autoconf = m.group(1)
+- # Check whether we've exported any known-broken variables.
+- m = re.match('(?:export\s+)?(?:CC|CXX)\s*:?=\s*(?:.+)$',
+- assignment)
+- if m:
+- die('Setting the value of CC or CXX with "mk_add_options" '
+- 'can cause the build to fail unexpectedly. Please '
+- 'change your mozconfig to instead use '
+- '"ac_add_options", e.g. ac_add_options '
+- 'CC=my-custom-cc".')
+-
+- autoconf = autoconf[0] if autoconf else None
+-
+- for ac in (mozconfig_autoconf, autoconf, 'autoconf-2.13', 'autoconf2.13',
+- 'autoconf213'):
+- if ac:
+- autoconf = find_program(ac)
+- if autoconf:
+- break
+- else:
+- fink = find_program('fink')
+- if fink:
+- autoconf = os.path.normpath(os.path.join(
+- fink, '..', '..', 'lib', 'autoconf2.13', 'bin', 'autoconf'))
+- else:
+- brew = find_program('brew')
+- if brew:
+- autoconf = os.path.normpath(os.path.join(
+- brew, '..', '..', 'Cellar', 'autoconf213', '2.13', 'bin',
+- 'autoconf213'))
+-
+- if not autoconf:
+- die('Could not find autoconf 2.13')
+-
+- if not exists(autoconf):
+- die('Could not find autoconf 2.13 at %s', autoconf)
+-
+- return autoconf
+-
+-
+-set_config('AUTOCONF', autoconf)
+-
++m4 = check_prog('M4', ('m4',))
+
+ @depends(mozconfig)
+ def prepare_mozconfig(mozconfig):
+@@ -78,7 +20,7 @@ def prepare_mozconfig(mozconfig):
+ return items
+
+
+-@depends('OLD_CONFIGURE', 'MOZILLABUILD', prepare_mozconfig, autoconf, check_build_environment,
++@depends('OLD_CONFIGURE', 'MOZILLABUILD', prepare_mozconfig, awk, m4, check_build_environment,
+ shell, old_configure_assignments, build_project)
+ @imports(_from='__builtin__', _import='open')
+ @imports(_from='__builtin__', _import='print')
+@@ -96,7 +38,7 @@ def prepare_mozconfig(mozconfig):
+ @imports(_from='os', _import='rename')
+ @imports(_from='subprocess', _import='CalledProcessError')
+ @imports(_from='__builtin__', _import='OSError')
+-def prepare_configure(old_configure, mozillabuild, mozconfig, autoconf, build_env, shell,
++def prepare_configure(old_configure, mozillabuild, mozconfig, awk, m4, build_env, shell,
+ old_configure_assignments, build_project):
+ # os.path.abspath in the sandbox will ensure forward slashes on Windows,
+ # which is actually necessary because this path actually ends up literally
+@@ -125,13 +67,18 @@ def prepare_configure(old_configure, moz
+ refresh = False
+
+ if refresh:
++ autoconf = os.path.join(build_env.topsrcdir, 'build', 'autoconf', 'autoconf.sh')
+ log.info('Refreshing %s with %s', old_configure, autoconf)
++ env = dict(environ)
++ env['M4'] = m4
++ env['AWK'] = awk
++ env['AC_MACRODIR'] = os.path.join(build_env.topsrcdir, 'build', 'autoconf')
+
+ try:
+ script = subprocess.check_output([
+ shell, autoconf,
+ '--localdir=%s' % os.path.dirname(old_configure),
+- old_configure + '.in'])
++ old_configure + '.in'], env=env)
+ except CalledProcessError as exc:
+ # Autoconf on win32 may break due to a bad $PATH. Let the user know
+ # their $PATH is suspect.
+@@ -185,10 +132,6 @@ def prepare_configure(old_configure, moz
+
+ inject('# end of mozconfig values')
+
+- # Autoconf is special, because it might be passed from
+- # mozconfig['make_extra'], which we don't pass automatically above.
+- inject('export AUTOCONF=%s' % quote(autoconf))
+-
+ for k, v in old_configure_assignments:
+ inject('%s=%s' % (k, quote(v)))
+
diff --git a/0003-D94538-autoconf2.diff b/0003-D94538-autoconf2.diff
new file mode 100644
index 0000000..3e0481c
--- /dev/null
+++ b/0003-D94538-autoconf2.diff
@@ -0,0 +1,118 @@
+diff -up firefox-78.8.0/python/mozboot/mozboot/archlinux.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/archlinux.py
+--- firefox-78.8.0/python/mozboot/mozboot/archlinux.py.D94538-autoconf2.diff 2021-02-25 13:53:04.963982705 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/archlinux.py 2021-02-25 13:53:25.713053151 +0100
+@@ -26,7 +26,6 @@ class ArchlinuxBootstrapper(
+ '''Archlinux experimental bootstrapper.'''
+
+ SYSTEM_PACKAGES = [
+- 'autoconf2.13',
+ 'base-devel',
+ 'nodejs',
+ 'python2',
+diff -up firefox-78.8.0/python/mozboot/mozboot/centosfedora.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/centosfedora.py
+--- firefox-78.8.0/python/mozboot/mozboot/centosfedora.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/centosfedora.py 2021-02-25 13:53:04.963982705 +0100
+@@ -26,7 +26,6 @@ class CentOSFedoraBootstrapper(
+ # For CentOS 7, later versions of nodejs come from nodesource
+ # and include the npm package.
+ self.packages = [
+- 'autoconf213',
+ 'nodejs',
+ 'which',
+ ]
+diff -up firefox-78.8.0/python/mozboot/mozboot/debian.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/debian.py
+--- firefox-78.8.0/python/mozboot/mozboot/debian.py.D94538-autoconf2.diff 2021-02-25 13:53:04.963982705 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/debian.py 2021-02-25 13:53:42.874111415 +0100
+@@ -32,7 +32,6 @@ class DebianBootstrapper(
+ # These are common packages for all Debian-derived distros (such as
+ # Ubuntu).
+ COMMON_PACKAGES = [
+- 'autoconf2.13',
+ 'build-essential',
+ 'nodejs',
+ 'python-setuptools',
+diff -up firefox-78.8.0/python/mozboot/mozboot/freebsd.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/freebsd.py
+--- firefox-78.8.0/python/mozboot/mozboot/freebsd.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/freebsd.py 2021-02-25 13:53:04.963982705 +0100
+@@ -15,7 +15,6 @@ class FreeBSDBootstrapper(BaseBootstrapp
+ self.flavor = flavor.lower()
+
+ self.packages = [
+- 'autoconf213',
+ 'gmake',
+ 'gtar',
+ 'pkgconf',
+diff -up firefox-78.8.0/python/mozboot/mozboot/gentoo.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/gentoo.py
+--- firefox-78.8.0/python/mozboot/mozboot/gentoo.py.D94538-autoconf2.diff 2021-02-17 08:49:38.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/gentoo.py 2021-02-25 13:53:04.963982705 +0100
+@@ -36,7 +36,6 @@ class GentooBootstrapper(
+ def ensure_system_packages(self):
+ self.run_as_root(['emerge', '--noreplace', '--quiet',
+ 'app-arch/zip',
+- 'sys-devel/autoconf:2.1'
+ ])
+
+ def ensure_browser_packages(self, artifact_mode=False):
+diff -up firefox-78.8.0/python/mozboot/mozboot/openbsd.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/openbsd.py
+--- firefox-78.8.0/python/mozboot/mozboot/openbsd.py.D94538-autoconf2.diff 2021-02-17 08:49:15.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/openbsd.py 2021-02-25 13:53:04.964982709 +0100
+@@ -12,7 +12,6 @@ class OpenBSDBootstrapper(BaseBootstrapp
+ BaseBootstrapper.__init__(self, **kwargs)
+
+ self.packages = [
+- 'autoconf-2.13',
+ 'gmake',
+ 'gtar',
+ 'rust',
+diff -up firefox-78.8.0/python/mozboot/mozboot/opensuse.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/opensuse.py
+--- firefox-78.8.0/python/mozboot/mozboot/opensuse.py.D94538-autoconf2.diff 2021-02-17 08:49:42.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/opensuse.py 2021-02-25 13:53:04.964982709 +0100
+@@ -13,7 +13,6 @@ class OpenSUSEBootstrapper(
+ '''openSUSE experimental bootstrapper.'''
+
+ SYSTEM_PACKAGES = [
+- 'autoconf213',
+ 'nodejs',
+ 'npm',
+ 'which',
+diff -up firefox-78.8.0/python/mozboot/mozboot/osx.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/osx.py
+--- firefox-78.8.0/python/mozboot/mozboot/osx.py.D94538-autoconf2.diff 2021-02-25 13:53:04.964982709 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/osx.py 2021-02-25 13:54:07.162193882 +0100
+@@ -353,7 +353,6 @@ class OSXBootstrapper(BaseBootstrapper):
+ # least on 10.8) and because the build system wants a version
+ # newer than what Apple ships.
+ packages = [
+- 'autoconf@2.13',
+ 'git',
+ 'gnu-tar',
+ 'node',
+@@ -428,7 +427,6 @@ class OSXBootstrapper(BaseBootstrapper):
+ 'python27',
+ 'python36',
+ 'py27-gnureadline',
+- 'autoconf213',
+ 'gnutar',
+ 'watchman',
+ 'nodejs8'
+diff -up firefox-78.8.0/python/mozboot/mozboot/solus.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/solus.py
+--- firefox-78.8.0/python/mozboot/mozboot/solus.py.D94538-autoconf2.diff 2021-02-25 13:53:04.964982709 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/solus.py 2021-02-25 13:53:32.090074802 +0100
+@@ -23,7 +23,6 @@ class SolusBootstrapper(
+ '''Solus experimental bootstrapper.'''
+
+ SYSTEM_PACKAGES = [
+- 'autoconf213',
+ 'nodejs',
+ 'python',
+ 'python3',
+diff -up firefox-78.8.0/python/mozboot/mozboot/windows.py.D94538-autoconf2.diff firefox-78.8.0/python/mozboot/mozboot/windows.py
+--- firefox-78.8.0/python/mozboot/mozboot/windows.py.D94538-autoconf2.diff 2021-02-17 08:49:34.000000000 +0100
++++ firefox-78.8.0/python/mozboot/mozboot/windows.py 2021-02-25 13:53:04.978982756 +0100
+@@ -48,7 +48,6 @@ class WindowsBootstrapper(BaseBootstrapp
+ 'patch',
+ 'patchutils',
+ 'diffutils',
+- 'autoconf2.13',
+ 'tar',
+ 'zip',
+ 'unzip',
diff --git a/FixSharedArray.diff b/FixSharedArray.diff
new file mode 100644
index 0000000..1790080
--- /dev/null
+++ b/FixSharedArray.diff
@@ -0,0 +1,12 @@
+--- a/js/public/StructuredClone.h
++++ b/js/public/StructuredClone.h
+@@ -381,7 +381,7 @@ enum OwnTransferablePolicy {
+ namespace js {
+ class SharedArrayRawBuffer;
+
+-class SharedArrayRawBufferRefs {
++class JS_PUBLIC_API SharedArrayRawBufferRefs {
+ public:
+ SharedArrayRawBufferRefs() = default;
+ SharedArrayRawBufferRefs(SharedArrayRawBufferRefs&& other) = default;
+--
diff --git a/copy-headers.patch b/copy-headers.patch
new file mode 100644
index 0000000..dfa1fdb
--- /dev/null
+++ b/copy-headers.patch
@@ -0,0 +1,38 @@
+From 3b3c8e37cca418e07bdeceaf3a601805df28d925 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
+Date: Wed, 15 Jul 2020 08:27:39 +0200
+Subject: [PATCH] build: Copy headers on install instead of symlinking
+
+Patch by Philip Chimento ported forward to mozjs78
+---
+ python/mozbuild/mozbuild/backend/recursivemake.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
+index e3fc8fe..bed5ae9 100644
+--- a/python/mozbuild/mozbuild/backend/recursivemake.py
++++ b/python/mozbuild/mozbuild/backend/recursivemake.py
+@@ -1457,9 +1457,9 @@ class RecursiveMakeBackend(MakeBackend):
+ raise Exception("Wildcards are only supported in the filename part"
+ " of srcdir-relative or absolute paths.")
+
+- install_manifest.add_pattern_link(basepath, wild, path)
++ install_manifest.add_pattern_copy(basepath, wild, path)
+ else:
+- install_manifest.add_pattern_link(f.srcdir, f, path)
++ install_manifest.add_pattern_copy(f.srcdir, f, path)
+ elif isinstance(f, AbsolutePath):
+ if not f.full_path.lower().endswith(('.dll', '.pdb', '.so')):
+ raise Exception("Absolute paths installed to FINAL_TARGET_FILES must"
+@@ -1468,7 +1468,7 @@ class RecursiveMakeBackend(MakeBackend):
+ install_manifest.add_optional_exists(dest)
+ absolute_files.append(f.full_path)
+ else:
+- install_manifest.add_link(f.full_path, dest)
++ install_manifest.add_copy(f.full_path, dest)
+ else:
+ install_manifest.add_optional_exists(dest)
+ objdir_files.append(self._pretty_path(f, backend_file))
+--
+2.26.2
+
diff --git a/definitions_for_user_vfp.patch b/definitions_for_user_vfp.patch
new file mode 100644
index 0000000..9eaa798
--- /dev/null
+++ b/definitions_for_user_vfp.patch
@@ -0,0 +1,35 @@
+From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001
+From: Mike Hommey <mh@glandium.org>
+Date: Sat, 1 Jun 2019 09:06:01 +0900
+Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and
+ user_vfp_exc.
+
+---
+ js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
+index 636537f8478..383c380f04c 100644
+--- a/js/src/wasm/WasmSignalHandlers.cpp
++++ b/js/src/wasm/WasmSignalHandlers.cpp
+@@ -249,7 +249,16 @@ using mozilla::DebugOnly;
+ #endif
+
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-# include <sys/user.h>
++struct user_vfp {
++ unsigned long long fpregs[32];
++ unsigned long fpscr;
++};
++
++struct user_vfp_exc {
++ unsigned long fpexc;
++ unsigned long fpinst;
++ unsigned long fpinst2;
++};
+ #endif
+
+ #if defined(ANDROID)
+--
+2.30.2
+
diff --git a/emitter.patch b/emitter.patch
new file mode 100644
index 0000000..15e752b
--- /dev/null
+++ b/emitter.patch
@@ -0,0 +1,61 @@
+From d1d785c169345b81c76213f6dd9be32b4db60294 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
+Date: Wed, 15 Jul 2020 08:39:47 +0200
+Subject: [PATCH] Build: allow LOCAL_INCLUDES paths with topsrcdir or topobjdir
+
+---
+ python/mozbuild/mozbuild/frontend/emitter.py | 6 ------
+ .../mozbuild/test/frontend/test_emitter.py | 20 -------------------
+ 2 files changed, 26 deletions(-)
+
+diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
+index 8d5ab8e..65c43ff 100644
+--- a/python/mozbuild/mozbuild/frontend/emitter.py
++++ b/python/mozbuild/mozbuild/frontend/emitter.py
+@@ -1239,12 +1239,6 @@ class TreeMetadataEmitter(LoggingMixin):
+ 'is a filename, but a directory is required: %s '
+ '(resolved to %s)' % (local_include, full_path),
+ context)
+- if (full_path == context.config.topsrcdir or
+- full_path == context.config.topobjdir):
+- raise SandboxValidationError(
+- 'Path specified in LOCAL_INCLUDES '
+- '(%s) resolves to the topsrcdir or topobjdir (%s), which is '
+- 'not allowed' % (local_include, full_path), context)
+ include_obj = LocalInclude(context, local_include)
+ local_includes.append(include_obj.path.full_path)
+ yield include_obj
+diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+index e8cbd81..d45ccee 100644
+--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
++++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+@@ -1040,26 +1040,6 @@ class TestEmitterBasic(unittest.TestCase):
+
+ self.assertEqual(local_includes, expected)
+
+- def test_local_includes_invalid(self):
+- """Test that invalid LOCAL_INCLUDES are properly detected."""
+- reader = self.reader('local_includes-invalid/srcdir')
+-
+- with six.assertRaisesRegex(
+- self,
+- SandboxValidationError,
+- 'Path specified in LOCAL_INCLUDES.*resolves to the '
+- 'topsrcdir or topobjdir'):
+- self.read_topsrcdir(reader)
+-
+- reader = self.reader('local_includes-invalid/objdir')
+-
+- with six.assertRaisesRegex(
+- self,
+- SandboxValidationError,
+- 'Path specified in LOCAL_INCLUDES.*resolves to the '
+- 'topsrcdir or topobjdir'):
+- self.read_topsrcdir(reader)
+-
+ def test_local_includes_file(self):
+ """Test that a filename can't be used in LOCAL_INCLUDES."""
+ reader = self.reader('local_includes-filename')
+--
+2.26.2
+
diff --git a/gjs.spec b/gjs.spec
new file mode 100644
index 0000000..3ff27f1
--- /dev/null
+++ b/gjs.spec
@@ -0,0 +1,1001 @@
+%global glib2_version 2.66.0
+%global gobject_introspection_version 1.66.0
+%global mozjs78_version 78.10.0-1
+
+%global bundled_mozjs 1
+
+%if 0%{?bundled_mozjs}
+%global mozjs_major 78
+%global mozjs_version 78.10.0
+
+# Big endian platforms
+%ifarch ppc ppc64 s390 s390x
+%global big_endian 1
+%endif
+
+# Make sure we don't add requires/provides for private libraries
+%global __provides_exclude_from ^%{_libdir}/gjs/
+%global __requires_exclude ^libmozjs-%{mozjs_major}\\.so.*
+%endif
+
+Name: gjs
+Version: 1.68.6
+Release: 4%{?dist}
+Summary: Javascript Bindings for GNOME
+
+# The following files contain code from Mozilla which
+# is triple licensed under MPL1.1/LGPLv2+/GPLv2+:
+# The console module (modules/console.c)
+# Stack printer (gjs/stack.c)
+%if 0%{?bundled_mozjs}
+License: MIT and (MPLv1.1 or GPLv2+ or LGPLv2+) and MPLv2.0 and MPLv1.1 and BSD and GPLv2+ and GPLv3+ and LGPLv2+ and AFL and ASL 2.0
+%else
+License: MIT and (MPLv1.1 or GPLv2+ or LGPLv2+)
+%endif
+URL: https://wiki.gnome.org/Projects/Gjs
+Source0: https://download.gnome.org/sources/%{name}/1.68/%{name}-%{version}.tar.xz
+
+%if 0%{?bundled_mozjs}
+Source1: https://ftp.mozilla.org/pub/firefox/releases/%{mozjs_version}esr/source/firefox-%{mozjs_version}esr.source.tar.xz
+Provides: bundled(mozjs) = %{mozjs_version}
+
+# Patches from mozjs68, rebased for mozjs78:
+Patch02: copy-headers.patch
+Patch03: tests-increase-timeout.patch
+Patch09: icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
+Patch10: icu_sources_data-Write-command-output-to-our-stderr.patch
+
+# Build fixes - https://hg.mozilla.org/mozilla-central/rev/ca36a6c4f8a4a0ddaa033fdbe20836d87bbfb873
+Patch12: emitter.patch
+
+# Build fixes
+Patch14: init_patch.patch
+# TODO: Check with mozilla for cause of these fails and re-enable spidermonkey compile time checks if needed
+Patch15: spidermonkey_checks_disable.patch
+
+# armv7 fixes
+Patch17: definitions_for_user_vfp.patch
+
+# s390x/ppc64 fixes, TODO: file bug report upstream?
+Patch18: spidermonkey_style_check_disable_s390x.patch
+Patch19: 0001-Skip-failing-tests-on-ppc64-and-s390x.patch
+
+# Fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1644600 ( SharedArrayRawBufferRefs is not exported )
+# https://github.com/0ad/0ad/blob/83e81362d850cc6f2b3b598255b873b6d04d5809/libraries/source/spidermonkey/FixSharedArray.diff
+Patch30: FixSharedArray.diff
+
+# Avoid autoconf213 dependency, backported from upstream
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1663863
+Patch31: 0002-D89554-autoconf1.diff
+Patch32: 0003-D94538-autoconf2.diff
+
+%endif
+
+Patch40: 0001-gobject-Guard-against-null-JS-wrapper-in-set-get-pro.patch
+Patch41: 0001-function-Always-initialize-callback-return-value.patch
+
+BuildRequires: cairo-gobject-devel
+BuildRequires: dbus-daemon
+BuildRequires: dbus-glib-devel
+BuildRequires: gcc-c++
+BuildRequires: meson
+BuildRequires: gettext
+BuildRequires: glib2-devel >= %{glib2_version}
+BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version}
+BuildRequires: gtk3-devel
+BuildRequires: gtk4-devel
+%if 0%{?bundled_mozjs}
+BuildRequires: cargo
+BuildRequires: clang-devel
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: m4
+BuildRequires: make
+%if !0%{?rhel}
+BuildRequires: nasm
+%endif
+BuildRequires: llvm
+BuildRequires: llvm-devel
+BuildRequires: rust
+BuildRequires: perl-devel
+BuildRequires: pkgconfig(libffi)
+BuildRequires: pkgconfig(zlib)
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-six
+BuildRequires: readline-devel
+BuildRequires: zip
+%if 0%{?big_endian}
+BuildRequires: icu
+%endif
+%else
+BuildRequires: mozjs78-devel >= %{mozjs78_version}
+%endif
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: sysprof-capture-devel
+
+# xvfb for test suite
+BuildRequires: xorg-x11-server-Xvfb
+
+Requires: glib2%{?_isa} >= %{glib2_version}
+Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version}
+%if !0%{?bundled_mozjs}
+Requires: mozjs78%{?_isa} >= %{mozjs78_version}
+%endif
+
+%description
+Gjs allows using GNOME libraries from Javascript. It's based on the
+Spidermonkey Javascript engine from Mozilla and the GObject introspection
+framework.
+
+%package devel
+Summary: Development package for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+Files for development with %{name}.
+
+%package tests
+Summary: Tests for the gjs package
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description tests
+The gjs-tests package contains tests that can be used to verify
+the functionality of the installed gjs package.
+
+%prep
+%setup -q
+
+%if 0%{?bundled_mozjs}
+# Extract mozjs archive
+tar -xf %{S:1}
+
+# Apply mozjs patches
+pushd firefox-%{mozjs_version}
+%patch02 -p1
+%patch03 -p1
+%patch09 -p1
+%patch10 -p1
+
+%patch12 -p1
+
+%patch14 -p1
+%patch15 -p1
+
+%ifarch armv7hl
+# Include definitions for user vfp on armv7 as it causes the compilation to fail without them
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1526653
+%patch17 -p1
+%endif
+
+%ifarch s390x
+%patch18 -p1
+%endif
+
+# Fixes for ppc64 and s390x, there is no need to keep it in ifarch here since mozilla tests support ifarch conditions
+%patch19 -p1
+
+# Export SharedArrayRawBufferRefs
+%patch30 -p1
+
+# Avoid autoconf213 dependency
+%patch31 -p1 -b .autoconf213
+%patch32 -p1 -b .autoconf213-2
+
+# Remove zlib directory (to be sure using system version)
+rm -rf modules/zlib
+popd
+%endif
+
+%patch40 -p1
+%patch41 -p1
+
+%build
+%if 0%{?bundled_mozjs}
+pushd firefox-%{mozjs_version}/js/src
+# Prefer GCC for now
+export CC=gcc
+export CXX=g++
+
+# Workaround
+# error: options `-C embed-bitcode=no` and `-C lto` are incompatible
+# error: could not compile `jsrust`.
+# https://github.com/japaric/cargo-call-stack/issues/25
+export RUSTFLAGS="-C embed-bitcode"
+
+# https://github.com/ptomato/mozjs/commit/36bb7982b41e0ef9a65f7174252ab996cd6777bd
+export CARGO_PROFILE_RELEASE_LTO=true
+
+export LINKFLAGS="%{?__global_ldflags}"
+export PYTHON="%{__python3}"
+
+%configure \
+ --without-system-icu \
+ --with-system-zlib \
+ --disable-tests \
+ --disable-strip \
+ --with-intl-api \
+ --enable-readline \
+ --enable-shared-js \
+ --enable-optimize \
+ --disable-debug \
+ --enable-pie \
+ --disable-jemalloc
+
+%if 0%{?big_endian}
+echo "Generate big endian version of config/external/icu/data/icud67l.dat"
+pushd ../..
+ icupkg -tb config/external/icu/data/icudt67l.dat config/external/icu/data/icudt67b.dat
+ rm -f config/external/icu/data/icudt*l.dat
+popd
+%endif
+
+%make_build
+popd
+
+cat > mozjs-%{mozjs_major}.pc << EOF
+Name: SpiderMonkey %{mozjs_version}
+Description: The Mozilla library for JavaScript
+Version: %{mozjs_version}
+
+Libs: -L`pwd`/firefox-%{mozjs_version}/js/src/dist/bin -Wl,-rpath=%{_libdir}/gjs -lmozjs-%{mozjs_major}
+Cflags: -include `pwd`/firefox-%{mozjs_version}/js/src/dist/include/js/RequiredDefines.h -I`pwd`/firefox-%{mozjs_version}/js/src/dist/include
+EOF
+%endif
+
+%if 0%{?bundled_mozjs}
+export PKG_CONFIG_PATH=`pwd`
+export LD_LIBRARY_PATH=`pwd`/firefox-%{mozjs_version}/js/src/dist/bin
+%endif
+
+%meson
+%meson_build
+
+%install
+%if 0%{?bundled_mozjs}
+mkdir -p %{buildroot}%{_libdir}/gjs
+cp -p firefox-%{mozjs_version}/js/src/dist/bin/libmozjs-%{mozjs_major}.so %{buildroot}%{_libdir}/gjs/
+%endif
+
+%meson_install
+
+%if 0%{?bundled_mozjs}
+sed -i -e 's/, mozjs-%{mozjs_major}//g' %{buildroot}%{_libdir}/pkgconfig/gjs-1.0.pc
+%endif
+
+%check
+%if 0%{?bundled_mozjs}
+export LD_LIBRARY_PATH=`pwd`/firefox-%{mozjs_version}/js/src/dist/bin
+
+pushd firefox-%{mozjs_version}/js/src
+# Run SpiderMonkey tests
+PYTHONPATH=tests/lib %{__python3} tests/jstests.py -d -s -t 1800 --no-progress --wpt=disabled ../../js/src/dist/bin/js
+
+# Run basic JIT tests
+PYTHONPATH=tests/lib %{__python3} jit-test/jit_test.py -s -t 1800 --no-progress ../../js/src/dist/bin/js basic
+popd
+%endif
+
+%{shrink:xvfb-run -s "-screen 0 1600x1200x24" %meson_test --timeout-multiplier=5}
+
+%files
+%license COPYING
+%doc NEWS README.md
+%{_bindir}/gjs
+%{_bindir}/gjs-console
+%{_libdir}/gjs/
+%{_libdir}/libgjs.so.0*
+
+%files devel
+%doc examples/*
+%{_includedir}/gjs-1.0
+%{_libdir}/pkgconfig/gjs-1.0.pc
+%{_libdir}/libgjs.so
+%dir %{_datadir}/gjs-1.0
+%{_datadir}/gjs-1.0/lsan/
+%{_datadir}/gjs-1.0/valgrind/
+
+%files tests
+%{_libexecdir}/installed-tests/
+%{_datadir}/glib-2.0/schemas/org.gnome.GjsTest.gschema.xml
+%{_datadir}/installed-tests/
+
+%changelog
+* Tue May 16 2023 Florian Müllner <fmuellner@redhat.com> - 1.68.6-4
+- Always initialize callback return value
+Resolves: #2196877
+
+* Wed Feb 15 2023 Florian Müllner <fmuellner@redhat.com> - 1.68.6-2
+- Guard against invalid gobject property access
+Resolves: #2170044
+
+* Tue Apr 05 2022 Florian Müllner <fmuellner@redhat.com> - 1.68.6-1
+- Update to 1.68.6
+Resolves: #2066167
+
+* Tue Feb 22 2022 Florian Müllner <fmuellner@redhat.com> - 1.68.5-1
+- Update to 1.68.5
+Resolves: #2054085
+
+* Thu Nov 04 2021 Florian Müllner <fmuellner@redhat.com> - 1.68.4-1
+- Update to 1.68.4
+- Increate test timeouts to make it more reliable on armv7
+Resolves: #2005774
+
+* Wed Aug 18 2021 Carlos O'Donell <codonell@redhat.com> - 1.68.3-2
+- Rebuilt for libffi 3.4.2 SONAME transition. Related: rhbz#1891914
+
+* Wed Aug 18 2021 Florian Müllner <fmuellner@redhat.com> - 1.68.3-1
+- Update to 1.68.3
+ Resolves: #1993764
+
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.68.1-3
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Mon May 17 2021 Kalev Lember <klember@redhat.com> - 1.68.1-2
+- Bundle mozjs (#1958111)
+
+* Thu May 06 2021 Kalev Lember <klember@redhat.com> - 1.68.1-1
+- Update to 1.68.1
+
+* Tue Apr 20 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.68.0-7
+- Rebuild against mozjs78-78.10.0-1
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 1.68.0-6
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Tue Apr 13 2021 Ray Strode <rstrode@redhat.com> - 1.68.0-5
+- Rebuild
+ Related: #1940618
+
+* Mon Mar 29 2021 Adam Williamson <awilliam@redhat.com> - 1.68.0-4
+- Backport several bugfixes from upstream main branch
+
+* Fri Mar 26 2021 Kalev Lember <klember@redhat.com> - 1.68.0-3
+- Rebuild to fix sysprof-capture symbols leaking into libraries consuming it
+
+* Thu Mar 25 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.68.0-2
+- Rebuild against mozjs78-78.9.0-1
+
+* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 1.68.0-1
+- Update to 1.68.0
+- Tighten soname globs
+
+* Fri Mar 19 2021 Adam Williamson <awilliam@redhat.com> - 1.67.3-3
+- Replace MR #585 reversion with MR #588, hopefully correct fix
+
+* Thu Mar 18 2021 Adam Williamson <awilliam@redhat.com> - 1.67.3-2
+- Patches to revert MR #585 to work around frequent crash on unlock
+
+* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 1.67.3-1
+- Update to 1.67.3
+
+* Tue Feb 23 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.67.2-2
+- Rebuild against mozjs78-78.8.0-1
+
+* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 1.67.2-1
+- Update to 1.67.2
+
+* Tue Jan 26 2021 Kalev Lember <klember@redhat.com> - 1.67.1-3
+- Simplify xvfb-run invocation
+
+* Tue Jan 26 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.67.1-2
+- Enable tests during rpmbuild
+
+* Tue Jan 26 2021 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.67.1-1
+- Update to 1.67.1
+- Rebuild against mozjs78-78.7.0-1
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.66.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Sat Jan 16 2021 Kalev Lember <klember@redhat.com> - 1.66.2-1
+- Update to 1.66.2
+
+* Tue Dec 15 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.66.1-5
+- Rebuild against mozjs78-78.6.0-1
+
+* Wed Nov 18 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.66.1-4
+- Rebuild against mozjs78-78.5.0-1
+
+* Sat Oct 31 2020 Jeff Law <law@redhat.com> - 1.66.1-3
+- Fix bogus volatiles caught by gcc-11
+
+* Mon Oct 19 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.66.1-2
+- Rebuild against mozjs78-78.4.0-1
+
+* Fri Oct 9 2020 Kalev Lember <klember@redhat.com> - 1.66.1-1
+- Update to 1.66.1
+
+* Tue Sep 22 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.66.0-2
+- Rebuild against mozjs78-78.3.0-1
+
+* Sat Sep 12 2020 Kalev Lember <klember@redhat.com> - 1.66.0-1
+- Update to 1.66.0
+
+* Sun Sep 06 2020 Kalev Lember <klember@redhat.com> - 1.65.92-1
+- Update to 1.65.92
+
+* Fri Aug 28 2020 Adam Williamson <awilliam@redhat.com> - 1.65.91-3
+- Backport MR #483 to fix frequent g_variant_unref errors in journal
+
+* Mon Aug 24 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.91-2
+- Rebuild against mozjs78-78.2.0-1
+
+* Sun Aug 23 2020 Kalev Lember <klember@redhat.com> - 1.65.91-1
+- Update to 1.65.91
+
+* Mon Aug 17 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.90-1
+- Update to 1.65.90
+- Switch over from mozjs68 to mozjs78
+
+* Fri Jul 31 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.4-3
+- Rebuild against mozjs68-68.11.0-1
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.65.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 20 2020 Kalev Lember <klember@redhat.com> - 1.65.4-1
+- Update to 1.65.4
+
+* Tue Jun 30 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.3-2
+- Rebuild against mozjs68-68.10.0-1
+
+* Fri Jun 05 2020 Kalev Lember <klember@redhat.com> - 1.65.3-1
+- Update to 1.65.3
+
+* Tue Jun 02 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.2-3
+- Rebuild against mozjs68-68.9.0-1
+
+* Tue May 12 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.2-2
+- Rebuild against mozjs68-68.8.0-1
+
+* Tue May 05 2020 Kalev Lember <klember@redhat.com> - 1.65.2-1
+- Update to 1.65.2
+
+* Tue Apr 07 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.65.1-2
+- Rebuild against mozjs68-68.7.0-1
+
+* Sat Mar 28 2020 Kalev Lember <klember@redhat.com> - 1.65.1-1
+- Update to 1.65.1
+
+* Sat Mar 28 2020 Kalev Lember <klember@redhat.com> - 1.64.1-1
+- Update to 1.64.1
+
+* Tue Mar 17 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.64.0-2
+- Rebuild against mozjs68-68.6.0-2 (built with gcc 10)
+
+* Sun Mar 08 2020 Kalev Lember <klember@redhat.com> - 1.64.0-1
+- Update to 1.64.0
+
+* Mon Mar 02 2020 Kalev Lember <klember@redhat.com> - 1.63.92-1
+- Update to 1.63.92
+
+* Tue Feb 18 2020 Kalev Lember <klember@redhat.com> - 1.63.91-1
+- Update to 1.63.91
+
+* Mon Feb 03 2020 Kalev Lember <klember@redhat.com> - 1.63.90-1
+- Update to 1.63.90
+- Switch to building with mozjs68
+
+* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.63.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Wed Jan 08 2020 Kalev Lember <klember@redhat.com> - 1.63.3-1
+- Update to 1.63.3
+
+* Wed Dec 11 2019 Florian Müllner <fmuellner@redhat.com> - 1.63.2-1
+- Update to 1.63.2
+
+* Wed Nov 27 2019 Kalev Lember <klember@redhat.com> - 1.58.3-1
+- Update to 1.58.3
+
+* Mon Oct 07 2019 Kalev Lember <klember@redhat.com> - 1.58.1-1
+- Update to 1.58.1
+
+* Sun Sep 08 2019 Kalev Lember <klember@redhat.com> - 1.58.0-1
+- Update to 1.58.0
+
+* Wed Sep 04 2019 Kalev Lember <klember@redhat.com> - 1.57.92-2
+- Rebuild against mozjs60 60.9.0
+
+* Tue Sep 03 2019 Kalev Lember <klember@redhat.com> - 1.57.92-1
+- Update to 1.57.92
+
+* Mon Aug 19 2019 Kalev Lember <klember@redhat.com> - 1.57.91-1
+- Update to 1.57.91
+
+* Mon Aug 12 2019 Kalev Lember <klember@redhat.com> - 1.57.90-1
+- Update to 1.57.90
+
+* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.57.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Jul 19 2019 Kalev Lember <klember@redhat.com> - 1.57.4-1
+- Update to 1.57.4
+- Enable sysprof capture support
+
+* Tue Jul 09 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.57.3-3
+- Rebuild against mozjs60 60.8.0
+
+* Sat Jun 22 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.57.3-2
+- Rebuild against mozjs60 60.7.2
+
+* Thu Jun 20 2019 Kalev Lember <klember@redhat.com> - 1.57.3-1
+- Update to 1.57.3
+
+* Wed Jun 19 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.57.2-3
+- Rebuild against mozjs60 60.7.1
+
+* Tue May 21 2019 Kalev Lember <klember@redhat.com> - 1.57.2-2
+- Rebuild against mozjs60 60.7.0
+
+* Tue May 21 2019 Kalev Lember <klember@redhat.com> - 1.57.2-1
+- Update to 1.57.2
+
+* Thu May 09 2019 Kalev Lember <klember@redhat.com> - 1.57.1-1
+- Update to 1.57.1
+
+* Wed May 08 2019 Kalev Lember <klember@redhat.com> - 1.56.2-1
+- Update to 1.56.2
+
+* Mon Apr 15 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.56.1-2
+- Rebuild against mozjs60-60.6.1
+
+* Mon Apr 08 2019 Kalev Lember <klember@redhat.com> - 1.56.1-1
+- Update to 1.56.1
+
+* Tue Mar 12 2019 Kalev Lember <klember@redhat.com> - 1.56.0-1
+- Update to 1.56.0
+
+* Tue Mar 05 2019 Kalev Lember <klember@redhat.com> - 1.55.92-1
+- Update to 1.55.92
+
+* Mon Feb 18 2019 Kalev Lember <klember@redhat.com> - 1.55.91-1
+- Update to 1.55.91
+
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.55.90-3
+- Rebuild for readline 8.0
+
+* Thu Feb 14 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.55.90-2
+- Rebuild against mozjs60 built by GCC9: ABI change detected by Taskotron/abicheck
+
+* Tue Feb 05 2019 Kalev Lember <klember@redhat.com> - 1.55.90-1
+- Update to 1.55.90
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.55.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Tue Jan 08 2019 Kalev Lember <klember@redhat.com> - 1.55.4-1
+- Update to 1.55.4
+
+* Wed Jan 02 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.55.1-3
+- Add BR dbus-daemon to fix running tests on F30
+
+* Wed Jan 02 2019 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.55.1-2
+- Rebuilt against mozjs60 60.4.0
+
+* Tue Oct 09 2018 Kalev Lember <klember@redhat.com> - 1.55.1-1
+- Update to 1.55.1
+
+* Fri Oct 05 2018 Kalev Lember <klember@redhat.com> - 1.54.1-2
+- Rebuilt against mozjs60 60.2.2
+
+* Mon Sep 24 2018 Kalev Lember <klember@redhat.com> - 1.54.1-1
+- Update to 1.54.1
+
+* Thu Sep 13 2018 Kalev Lember <klember@redhat.com> - 1.54.0-3
+- Rebuilt against mozjs60 60.2.0 that broke ABI (#1628438)
+
+* Mon Sep 10 2018 Kalev Lember <klember@redhat.com> - 1.54.0-2
+- Rebuilt against fixed atk (#1626575)
+
+* Thu Sep 06 2018 Kalev Lember <klember@redhat.com> - 1.54.0-1
+- Update to 1.54.0
+- Switch to building with mozjs60
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.52.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue May 08 2018 Kalev Lember <klember@redhat.com> - 1.52.3-1
+- Update to 1.52.3
+
+* Wed Apr 18 2018 Kalev Lember <klember@redhat.com> - 1.52.2-1
+- Update to 1.52.2
+
+* Tue Apr 10 2018 Kalev Lember <klember@redhat.com> - 1.52.1-1
+- Update to 1.52.1
+
+* Tue Mar 13 2018 Kalev Lember <klember@redhat.com> - 1.52.0-1
+- Update to 1.52.0
+
+* Sun Mar 11 2018 Kalev Lember <klember@redhat.com> - 1.51.92-1
+- Update to 1.51.92
+
+* Wed Feb 21 2018 Kalev Lember <klember@redhat.com> - 1.51.91-1
+- Update to 1.51.91
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.51.90-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Feb 05 2018 Kalev Lember <klember@redhat.com> - 1.51.90-1
+- Update to 1.51.90
+- Drop ldconfig scriptlets
+- Filter provides for private libraries
+
+* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.50.4-2
+- Switch to %%ldconfig_scriptlets
+
+* Sun Jan 28 2018 Kalev Lember <klember@redhat.com> - 1.50.4-1
+- Update to 1.50.4
+
+* Thu Jan 18 2018 Kalev Lember <klember@redhat.com> - 1.50.3-1
+- Update to 1.50.3
+
+* Wed Nov 01 2017 Kalev Lember <klember@redhat.com> - 1.50.2-1
+- Update to 1.50.2
+
+* Mon Oct 09 2017 Kalev Lember <klember@redhat.com> - 1.50.1-1
+- Update to 1.50.1
+
+* Wed Sep 20 2017 Kalev Lember <klember@redhat.com> - 1.50.0-1
+- Update to 1.50.0
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.49.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.49.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sun Jun 25 2017 Kalev Lember <klember@redhat.com> - 1.49.3-1
+- Update to 1.49.3
+
+* Tue Jun 13 2017 Bastien Nocera <bnocera@redhat.com> - 1.49.2-2
++ gjs-1.49.2-2
+- Add fix for possible use-after-free crasher (bgo #781799)
+
+* Mon Jun 12 2017 Kalev Lember <klember@redhat.com> - 1.49.2-1
+- Update to 1.49.2
+
+* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.48.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
+
+* Tue May 09 2017 Kalev Lember <klember@redhat.com> - 1.48.3-1
+- Update to 1.48.3
+
+* Fri Apr 21 2017 Kalev Lember <klember@redhat.com> - 1.48.2-1
+- Update to 1.48.2
+
+* Tue Apr 11 2017 Kalev Lember <klember@redhat.com> - 1.48.1-1
+- Update to 1.48.1
+
+* Tue Mar 21 2017 Kalev Lember <klember@redhat.com> - 1.48.0-1
+- Update to 1.48.0
+
+* Thu Mar 16 2017 Kalev Lember <klember@redhat.com> - 1.47.92-1
+- Update to 1.47.92
+
+* Wed Mar 01 2017 Kalev Lember <klember@redhat.com> - 1.47.91-1
+- Update to 1.47.91
+
+* Wed Feb 15 2017 Kalev Lember <klember@redhat.com> - 1.47.90-1
+- Update to 1.47.90
+- Switch to building with mozjs38
+- Set minimum required glib2 and gtk3 versions
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.47.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Sun Jan 15 2017 Kalev Lember <klember@redhat.com> - 1.47.4-1
+- Update to 1.47.4
+- Remove lib64 rpaths
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.47.0-2
+- Rebuild for readline 7.x
+
+* Thu Nov 10 2016 Florian Müllner <fmuellner@redhat.com> - 3.47.0-1
+- Update to 1.47.0
+
+* Wed Sep 21 2016 Kalev Lember <klember@redhat.com> - 1.46.0-1
+- Update to 1.46.0
+- Don't set group tags
+- Use make_install macro
+
+* Tue Jul 19 2016 Florian Müllner <fmuellner@redhat.com> - 3.1.45.4-1
+- Update to 1.45.4
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.45.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Dec 18 2015 Kalev Lember <klember@redhat.com> - 1.45.3-1
+- Update to 1.45.3
+- Update project URL
+
+* Wed Oct 28 2015 Kalev Lember <klember@redhat.com> - 1.44.0-1
+- Update to 1.44.0
+- Use license macro for COPYING
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.43.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.43.3-2
+- Rebuilt for GCC 5 C++11 ABI change
+
+* Mon Dec 29 2014 Richard Hughes <rhughes@redhat.com> - 1.43.3-1
+- Update to 1.43.3
+
+* Mon Sep 29 2014 Kalev Lember <kalevlember@gmail.com> - 1.42.0-1
+- Update to 1.42.0
+
+* Fri Sep 5 2014 Vadim Rutkovsky <vrutkovs@redhat.com> - 1.41.91-2
+- Build installed tests
+
+* Mon Sep 01 2014 Kalev Lember <kalevlember@gmail.com> - 1.41.91-1
+- Update to 1.41.91
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.41.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 1.41.4-1
+- Update to 1.41.4
+
+* Thu Jun 26 2014 Richard Hughes <rhughes@redhat.com> - 1.41.3-1
+- Update to 1.41.3
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.40.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Tue Apr 15 2014 Kalev Lember <kalevlember@gmail.com> - 1.40.1-1
+- Update to 1.40.1
+
+* Sat Apr 05 2014 Kalev Lember <kalevlember@gmail.com> - 1.40.0-2
+- Tighten -devel deps
+- Set minimum gobject-introspection version
+
+* Tue Mar 25 2014 Richard Hughes <rhughes@redhat.com> - 1.40.0-1
+- Update to 1.40.0
+
+* Tue Mar 04 2014 Richard Hughes <rhughes@redhat.com> - 1.39.91-1
+- Update to 1.39.91
+
+* Wed Feb 19 2014 Richard Hughes <rhughes@redhat.com> - 1.39.90-1
+- Update to 1.39.90
+
+* Wed Feb 05 2014 Adam Williamson <awilliam@redhat.com> - 1.39.3-2
+- build against mozjs24
+
+* Wed Jan 29 2014 Richard Hughes <rhughes@redhat.com> - 1.39.3-1
+- Update to 1.39.3
+
+* Wed Nov 20 2013 Jasper St. Pierre <jstpierre@mecheye.net> - 1.39.0-1
+- Update to 1.39.0
+
+* Wed Sep 25 2013 Kalev Lember <kalevlember@gmail.com> - 1.38.1-1
+- Update to 1.38.1
+
+* Wed Sep 25 2013 Kalev Lember <kalevlember@gmail.com> - 1.38.0-1
+- Update to 1.38.0
+
+* Thu Aug 22 2013 Kalev Lember <kalevlember@gmail.com> - 1.37.6-1
+- Update to 1.37.6
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.37.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Tue Jul 16 2013 Richard Hughes <rhughes@redhat.com> - 1.37.4-1
+- Update to 1.37.4
+
+* Tue May 28 2013 Colin Walters <walters@verbum.org> - 1.37.1-1
+- Update to 1.37.1, and switch to mozjs17
+
+* Mon Apr 29 2013 Kalev Lember <kalevlember@gmail.com> - 1.36.1-1
+- Update to 1.36.1
+
+* Tue Mar 26 2013 Kalev Lember <kalevlember@gmail.com> - 1.36.0-1
+- Update to 1.36.0
+
+* Thu Mar 21 2013 Kalev Lember <kalevlember@gmail.com> - 1.35.9-1
+- Update to 1.35.9
+
+* Wed Feb 20 2013 Richard Hughes <rhughes@redhat.com> - 1.35.8-1
+- Update to 1.35.8
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.35.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Tue Jan 15 2013 Matthias Clasen <mclasen@redhat.com> - 1.35.4-1
+- Update to 1.35.4
+
+* Thu Dec 20 2012 Kalev Lember <kalevlember@gmail.com> - 1.35.3-1
+- Update to 1.35.3
+
+* Tue Nov 20 2012 Richard Hughes <hughsient@gmail.com> - 1.35.2-1
+- Update to 1.35.2
+
+* Tue Sep 25 2012 Kalev Lember <kalevlember@gmail.com> - 1.34.0-1
+- Update to 1.34.0
+
+* Wed Sep 19 2012 Richard Hughes <hughsient@gmail.com> - 1.33.14-1
+- Update to 1.33.14
+
+* Thu Sep 06 2012 Richard Hughes <hughsient@gmail.com> - 1.33.10-1
+- Update to 1.33.10
+
+* Tue Aug 21 2012 Richard Hughes <hughsient@gmail.com> - 1.33.9-1
+- Update to 1.33.9
+
+* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.33.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Jul 17 2012 Richard Hughes <hughsient@gmail.com> - 1.33.4-1
+- Update to 1.33.4
+
+* Thu Jul 5 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.33.3-2
+- Enable verbose build
+
+* Tue Jun 26 2012 Richard Hughes <hughsient@gmail.com> - 1.33.3-1
+- Update to 1.33.3
+
+* Sat Jun 9 2012 Matthias Clasen <mclasen@redhat.com> - 1.33.2-2
+- Fix the build
+
+* Thu Jun 07 2012 Richard Hughes <hughsient@gmail.com> - 1.33.2-1
+- Update to 1.33.2
+
+* Wed Mar 28 2012 Richard Hughes <hughsient@gmail.com> - 1.32.0-1
+- Update to 1.32.0
+
+* Wed Mar 21 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.22-1
+- Update to 1.31.22
+
+* Mon Mar 5 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.20-1
+- Update to 1.31.20
+
+* Tue Feb 7 2012 Colin Walters <walters@verbum.org> - 1.31.10-2
+- Drop custom .gir/.typelib directories; see upstream commit
+ ea4d639eab307737870479b6573d5dab9fb2915a
+
+* Thu Jan 19 2012 Matthias Clasen <mclasen@redhat.com> - 1.31.10-1
+- 1.31.10
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.31.6-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Dec 20 2011 Matthias Clasen <mclasen@redhat.com> 1.31.6-1
+- 1.31.6
+
+* Fri Dec 02 2011 Karsten Hopp <karsten@redhat.com> 1.31.0-2
+- fix crash on PPC, bugzilla 749604
+
+* Wed Nov 2 2011 Matthias Clasen <mclasen@redhat.com> - 1.31.0-1
+- Update to 1.31.0
+
+* Tue Sep 27 2011 Ray <rstrode@redhat.com> - 1.30.0-1
+- Update to 1.30.0
+
+* Wed Sep 21 2011 Matthias Clasen <mclasen@redhat.com> 1.29.18-1
+- Update to 1.29.18
+
+* Mon Sep 05 2011 Luis Bazan <bazanluis20@gmail.com> 1.29.17-2
+- mass rebuild
+
+* Tue Aug 30 2011 Matthias Clasen <mclasen@redhat.com> 1.29.17-1
+- Update to 1.29.17
+
+* Thu Aug 18 2011 Matthias Clasen <mclasen@redhat.com> 1.29.16-1
+- Update to 1.29.16
+
+* Thu Jul 28 2011 Colin Walters <walters@verbum.org> - 1.29.0-3
+- BR latest g-i to fix build issue
+
+* Mon Jun 27 2011 Adam Williamson <awilliam@redhat.com> - 1.29.0-2
+- build against js, not gecko (from f15 branch, but patch not needed)
+- BR cairo-devel (also from f15)
+
+* Fri Jun 17 2011 Tomas Bzatek <tbzatek@redhat.com> - 1.29.0-1
+- Update to 1.29.0
+
+* Thu Apr 28 2011 Christopher Aillon <caillon@redhat.com> - 0.7.14-3
+- Rebuild against newer gecko
+
+* Thu Apr 14 2011 Colin Walters <walters@verbum.org> - 0.7.14-2
+- BR readline; closes #696254
+
+* Mon Apr 4 2011 Colin Walters <walters@verbum.org> - 0.7.14-1
+- Update to 0.7.14; fixes notification race condition on login
+
+* Tue Mar 22 2011 Christopher Aillon <caillon@redhat.com> - 0.7.13-3
+- Rebuild against newer gecko
+
+* Fri Mar 18 2011 Christopher Aillon <caillon@redhat.com> - 0.7.13-2
+- Rebuild against newer gecko
+
+* Thu Mar 10 2011 Colin Walters <walters@verbum.org> - 0.7.13-1
+- Update to 0.7.13
+
+* Wed Mar 9 2011 Christopher Aillon <caillon@redhat.com> - 0.7.11-3
+- Rebuild against newer gecko
+
+* Fri Feb 25 2011 Christopher Aillon <caillon@redhat.com> - 0.7.11-2
+- Rebuild against newer gecko
+
+* Tue Feb 22 2011 Owen Taylor <otaylor@redhat.com> - 0.7.11-1
+- Update to 0.7.11
+
+* Thu Feb 10 2011 Christopher Aillon <caillon@redhat.com> - 0.7.10-4
+- Require gecko-libs instead of xulrunner
+
+* Wed Feb 9 2011 Colin Walters <walters@verbum.org> - 0.7.10-3
+- Add a hardcoded Requires on xulrunner; see comment
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jan 25 2011 Colin Walters <walters@verbum.org> - 0.7.10-1
+- New upstream release
+
+* Tue Jan 25 2011 Christopher Aillon <caillon@redhat.com> - 0.7.9-3
+- Rebuild for new xulrunner
+
+* Fri Jan 14 2011 Christopher Aillon <caillon@redhat.com> - 0.7.9-2
+- Rebuild for new xulrunner
+
+* Fri Jan 14 2011 Colin Walters <walters@verbum.org> - 0.7.9-1
+- 0.7.9
+
+* Wed Jan 12 2011 Colin Walters <walters@verbum.org> - 0.7.8-1
+- Update to 0.7.8
+- Drop upstreamed patches
+- BR latest g-i for GI_TYPE_TAG_UNICHAR
+
+* Wed Dec 29 2010 Dan Williams <dcbw@redhat.com> - 0.7.7-3
+- Work around Mozilla JS API changes
+
+* Wed Dec 22 2010 Colin Walters <walters@verbum.org> - 0.7.7-2
+- Remove rpath removal; we need an rpath on libmozjs, since
+ it's in a nonstandard directory.
+
+* Mon Nov 15 2010 Owen Taylor <otaylor@redhat.com> - 0.7.7-1
+- Update to 0.7.7
+
+* Tue Nov 9 2010 Owen Taylor <otaylor@redhat.com> - 0.7.6-1
+- Update to 0.7.6
+
+* Fri Oct 29 2010 Owen Taylor <otaylor@redhat.com> - 0.7.5-1
+- Update to 0.7.5
+
+* Mon Oct 4 2010 Owen Taylor <otaylor@redhat.com> - 0.7.4-1
+- Update to 0.7.4
+
+* Wed Jul 14 2010 Colin Walters <walters@verbum.org> - 0.7.1-3
+- Rebuild for new gobject-introspection
+
+* Mon Jul 12 2010 Colin Walters <walters@verbum.org> - 0.7.1-2
+- New upstream version
+- Changes to allow builds from snapshots
+
+* Fri May 28 2010 Matthias Clasen <mclasen@redhat.com> 0.7-1
+- Update to 0.7
+
+* Wed Mar 24 2010 Peter Robinson <pbrobinson@gmail.com> 0.6-1
+- New upstream 0.6 stable release
+
+* Sat Feb 20 2010 Peter Robinson <pbrobinson@gmail.com> 0.5-1
+- New upstream 0.5 release
+
+* Thu Jan 14 2010 Peter Robinson <pbrobinson@gmail.com> 0.5-0.1
+- Move to git snapshot to fix compile against xulrunner 1.9.2.1
+
+* Thu Aug 27 2009 Peter Robinson <pbrobinson@gmail.com> 0.4-1
+- New upstream 0.4 release
+
+* Fri Aug 7 2009 Peter Robinson <pbrobinson@gmail.com> 0.3-2
+- Updates from the review request
+
+* Wed Jul 8 2009 Peter Robinson <pbrobinson@gmail.com> 0.3-1
+- New upstream release. Clarify licensing for review
+
+* Sat Jun 27 2009 Peter Robinson <pbrobinson@gmail.com> 0.2-1
+- Initial packaging
diff --git a/icu_sources_data-Write-command-output-to-our-stderr.patch b/icu_sources_data-Write-command-output-to-our-stderr.patch
new file mode 100644
index 0000000..a953b40
--- /dev/null
+++ b/icu_sources_data-Write-command-output-to-our-stderr.patch
@@ -0,0 +1,34 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Mon, 9 Oct 2017 09:23:14 +0100
+Subject: icu_sources_data: Write command output to our stderr
+
+Saying "See output in /tmp/foobar" is all very well for a developer
+build, but on a buildd our /tmp is going to get thrown away after
+the build. Just log the usual way instead.
+---
+ intl/icu_sources_data.py | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
+index 8cf9290..7d2d983 100644
+--- a/intl/icu_sources_data.py
++++ b/intl/icu_sources_data.py
+@@ -190,16 +190,13 @@ def update_sources(topsrcdir):
+
+ def try_run(name, command, cwd=None, **kwargs):
+ try:
+- with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
+- subprocess.check_call(command, cwd=cwd, stdout=f,
+- stderr=subprocess.STDOUT, **kwargs)
++ subprocess.check_call(command, cwd=cwd, stdout=sys.stderr,
++ stderr=subprocess.STDOUT, **kwargs)
+ except subprocess.CalledProcessError:
+- print('''Error running "{}" in directory {}
+- See output in {}'''.format(' '.join(command), cwd, f.name),
+- file=sys.stderr)
++ print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd),
++ file=sys.stderr)
+ return False
+ else:
+- os.unlink(f.name)
+ return True
diff --git a/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
new file mode 100644
index 0000000..1022ccd
--- /dev/null
+++ b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
@@ -0,0 +1,26 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Mon, 9 Oct 2017 09:22:12 +0100
+Subject: icu_sources_data.py: Decouple from Mozilla build system
+
+mozpack.path is a wrapper around os.path that normalizes path
+separators on Windows, but on Unix we only have one path separator
+so there's nothing to normalize. Avoid needing to import all of it.
+---
+ intl/icu_sources_data.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
+index 98c0ccb..8cf9290 100644
+--- a/intl/icu_sources_data.py
++++ b/intl/icu_sources_data.py
+@@ -22,7 +22,9 @@ import subprocess
+ import sys
+ import tempfile
+
+-from mozpack import path as mozpath
++# Close enough
++import os.path as mozpath
++mozpath.normsep = lambda p: p
+
+ # The following files have been determined to be dead/unused by a
+ # semi-automated analysis. You can just remove any of the files below
diff --git a/init_patch.patch b/init_patch.patch
new file mode 100644
index 0000000..70c34df
--- /dev/null
+++ b/init_patch.patch
@@ -0,0 +1,12 @@
+--- a/python/mozbuild/mozbuild/configure/__init__.py
++++ b/python/mozbuild/mozbuild/configure/__init__.py
+@@ -491,7 +491,8 @@ class ConfigureSandbox(dict):
+ if self._help:
+ self._logger.warning(msg)
+ else:
+- raise InvalidOptionError(msg)
++ #raise InvalidOptionError(msg)
++ pass
+
+ # Run the execution queue
+ for func, args in self._execution_queue:
diff --git a/sources b/sources
new file mode 100644
index 0000000..5db7613
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+b81fc212639eab6a20c0a262e2eee302 firefox-78.10.0esr.source.tar.xz
+6659a2e20455e21bb5263b74c3b681e0 gjs-1.68.6.tar.xz
diff --git a/spidermonkey_checks_disable.patch b/spidermonkey_checks_disable.patch
new file mode 100644
index 0000000..a3c3802
--- /dev/null
+++ b/spidermonkey_checks_disable.patch
@@ -0,0 +1,9 @@
+--- a/config/run_spidermonkey_checks.py
++++ b/config/run_spidermonkey_checks.py
+@@ -13,4 +13,5 @@ def main(output, lib_file, *scripts):
+ retcode = subprocess.call(
+ [sys.executable, script], cwd=buildconfig.topsrcdir)
+ if retcode != 0:
+- raise Exception(script + " failed")
++ #raise Exception(script + " failed")
++ pass
diff --git a/spidermonkey_style_check_disable_s390x.patch b/spidermonkey_style_check_disable_s390x.patch
new file mode 100644
index 0000000..f77bec6
--- /dev/null
+++ b/spidermonkey_style_check_disable_s390x.patch
@@ -0,0 +1,11 @@
+--- a/config/check_spidermonkey_style.py
++++ b/config/check_spidermonkey_style.py
+
+@@ -779,6 +779,7 @@ def tarjan(V, E):
+
+
+ def main():
++ sys.exit(0)
+ if sys.argv[1:] == ["--fixup"]:
+ # Sort #include directives in-place. Fixup mode doesn't solve
+ # all possible silliness that the script checks for; it's just a
diff --git a/tests-increase-timeout.patch b/tests-increase-timeout.patch
new file mode 100644
index 0000000..c86cca4
--- /dev/null
+++ b/tests-increase-timeout.patch
@@ -0,0 +1,26 @@
+From 9be85b155c6df0454c5faef9e850f572c99e3615 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
+Date: Wed, 15 Jul 2020 08:32:44 +0200
+Subject: [PATCH] Increase the test timeout for slower buildds
+
+Ported forward from Debian: https://bugs.debian.org/878284
+---
+ js/src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+index b86aeed..d68655a 100644
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -53,7 +53,7 @@ check:: check-js-msg
+
+ check-jstests:
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON3) -u $(srcdir)/tests/jstests.py \
+- --no-progress --format=automation --timeout 300 \
++ --no-progress --format=automation --timeout 600 \
+ $(JSTESTS_EXTRA_ARGS) \
+ $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
+
+--
+2.26.2
+