[SCM] Packaging for mathgl branch, master, updated. debian/1.11-1-17-gd806c34

Dimitrios Eftaxiopoulos eftaxi12 at otenet.gr
Mon Nov 29 19:02:12 UTC 2010


The following commit has been merged in the master branch:
commit 63352e46dd04164a79af0852be5f69d46640d4bb
Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
Date:   Sat Nov 27 23:09:04 2010 +0200

    Minor changes in debian/changelog and debian/rules

diff --git a/Makefile.in b/Makefile.in
index 59db7cd..9aec9a4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -46,11 +46,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	config/texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
diff --git a/aclocal.m4 b/aclocal.m4
index 77ec6db..846920e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -19,6 +19,7972 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool 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 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+_LT_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\[$]0 --fallback-echo"')dnl "
+  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+  ;;
+esac
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool at gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+  lt_cl_success=:
+  test "$silent" = yes &&
+    lt_config_lt_args="$lt_config_lt_args --quiet"
+  exec AS_MESSAGE_LOG_FD>/dev/null
+  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+  exec AS_MESSAGE_LOG_FD>>config.log
+  $lt_cl_success || AS_EXIT(1)
+fi
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=echo
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_SHELL_INIT
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[_LT_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<_LT_EOF
+[$]*
+_LT_EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+  if test "X${echo_test_string+set}" != Xset; then
+    # find a string as large as possible, as long as the shell can cope with it
+    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+      then
+        break
+      fi
+    done
+  fi
+
+  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+     test "X$echo_testing_string" = "X$echo_test_string"; then
+    :
+  else
+    # The Solaris, AIX, and Digital Unix default echo programs unquote
+    # backslashes.  This makes it impossible to quote backslashes using
+    #   echo "$something" | sed 's/\\/\\\\/g'
+    #
+    # So, first we look for a working echo in the user's PATH.
+
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for dir in $PATH /usr/ucb; do
+      IFS="$lt_save_ifs"
+      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        ECHO="$dir/echo"
+        break
+      fi
+    done
+    IFS="$lt_save_ifs"
+
+    if test "X$ECHO" = Xecho; then
+      # We didn't find a better echo, so look for alternatives.
+      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        # This shell has a builtin print -r that does the trick.
+        ECHO='print -r'
+      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+        # If we have ksh, try running configure again with it.
+        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+        export ORIGINAL_CONFIG_SHELL
+        CONFIG_SHELL=/bin/ksh
+        export CONFIG_SHELL
+        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+      else
+        # Try using printf.
+        ECHO='printf %s\n'
+        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	  # Cool, printf works
+	  :
+        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	  export CONFIG_SHELL
+	  SHELL="$CONFIG_SHELL"
+	  export SHELL
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        else
+	  # maybe with a smaller string...
+	  prev=:
+
+	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+	    then
+	      break
+	    fi
+	    prev="$cmd"
+	  done
+
+	  if test "$prev" != 'sed 50q "[$]0"'; then
+	    echo_test_string=`eval $prev`
+	    export echo_test_string
+	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	  else
+	    # Oops.  We lost completely, so just stick with echo.
+	    ECHO=echo
+	  fi
+        fi
+      fi
+    fi
+  fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(lt_ECHO)
+])
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1],
+    [An echo program that does not interpret backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # Some binutils ld are patched to set DT_RUNPATH
+  save_LDFLAGS=$LDFLAGS
+  save_libdir=$libdir
+  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+       [shlibpath_overrides_runpath=yes])])
+  LDFLAGS=$save_LDFLAGS
+  libdir=$save_libdir
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+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="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_DECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd* | netbsdelf*-gnu)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC*)
+	    # IBM XL 8.0 on PPC
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd* | netbsdelf*-gnu)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl*)
+	# IBM XL C 8.0/Fortran 10.1 on PPC
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $RM conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+        _LT_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $RM conftest*
+      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_PROG_CXX
+# ------------
+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+# compiler, we have our own version here.
+m4_defun([_LT_PROG_CXX],
+[
+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+AC_PROG_CXX
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_CXX
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_CXX], [])
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[AC_REQUIRE([_LT_PROG_CXX])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 will use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  xl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='echo'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=echo
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='echo'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_PROG_F77
+# ------------
+# Since AC_PROG_F77 is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_F77],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+AC_PROG_F77
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_F77
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_F77], [])
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_REQUIRE([_LT_PROG_F77])dnl
+AC_LANG_PUSH(Fortran 77)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_PROG_FC
+# -----------
+# Since AC_PROG_FC is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_FC],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+AC_PROG_FC
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_FC
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_FC], [])
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_REQUIRE([_LT_PROG_FC])dnl
+AC_LANG_PUSH(Fortran)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3017 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+
 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
@@ -1155,8 +9121,3 @@ AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([config/autotroll.m4])
-m4_include([config/libtool.m4])
-m4_include([config/ltoptions.m4])
-m4_include([config/ltsugar.m4])
-m4_include([config/ltversion.m4])
-m4_include([config/lt~obsolete.m4])
diff --git a/configure b/configure
index 96ab6cf..8245fcd 100755
--- a/configure
+++ b/configure
@@ -8735,10 +8735,6 @@ _lt_linker_boilerplate=`cat conftest.err`
 $RM -r conftest*
 
 
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
 if test -n "$compiler"; then
 
 lt_prog_compiler_no_builtin_flag=
@@ -8764,11 +8760,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8767: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8763: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8771: \$? = $ac_status" >&5
+   echo "$as_me:8767: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9103,11 +9099,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9106: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9102: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9110: \$? = $ac_status" >&5
+   echo "$as_me:9106: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9208,11 +9204,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9211: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9207: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9215: \$? = $ac_status" >&5
+   echo "$as_me:9211: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9263,11 +9259,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9266: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9262: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9270: \$? = $ac_status" >&5
+   echo "$as_me:9266: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11647,7 +11643,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11650 "configure"
+#line 11646 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11743,7 +11739,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11746 "configure"
+#line 11742 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13699,11 +13695,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13702: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13698: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13706: \$? = $ac_status" >&5
+   echo "$as_me:13702: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13798,11 +13794,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13801: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13797: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13805: \$? = $ac_status" >&5
+   echo "$as_me:13801: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13850,11 +13846,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13853: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13849: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13857: \$? = $ac_status" >&5
+   echo "$as_me:13853: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
diff --git a/debian/changelog b/debian/changelog
index 346307b..20f9bac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,16 +1,13 @@
 mathgl (1.11.0.1-1) experimental; urgency=low
 
+  * Create proper patches for the changes in the source tree.
   * Add new package for Russian documentation.
   * New upstream release (Closes: #603004).
-  * Remove .pdf sample pictures from the html documentation since they
-    are not 3d.
-  * Make .pdf sample pictures accessible from the html documentation.
   * Correct several spelling mistakes in manpages and in lang/numpy.i
-  * Create symbol files for libraries.
-  * Add title to patch 00_add_info_section.diff.
+  * Create symbols files for libraries.
   * Register documentation to doc-base.
 
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Fri, 26 Nov 2010 18:47:00 +0200
+ -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sat, 27 Nov 2010 18:50:00 +0200
 
 mathgl (1.10.2.1-2) unstable; urgency=low
 
diff --git a/debian/patches/debian-changes-1.11.0.1-1 b/debian/patches/debian-changes-1.11.0.1-1
new file mode 100644
index 0000000..e2e5d61
--- /dev/null
+++ b/debian/patches/debian-changes-1.11.0.1-1
@@ -0,0 +1,15251 @@
+Description: Upstream changes introduced in version 1.11.0.1-1
+ This patch has been created by dpkg-source during the package build.
+ Here's the last changelog entry, hopefully it gives details on why
+ those changes were made:
+ .
+ mathgl (1.11.0.1-1) experimental; urgency=low
+ .
+   * Create proper patches for the changes in the source tree.
+   * Add new package for Russian documentation.
+   * New upstream release (Closes: #603004).
+   * Correct several spelling mistakes in manpages and in lang/numpy.i
+   * Create symbols files for libraries.
+   * Register documentation to doc-base.
+ .
+ The person named in the Author field signed this changelog entry.
+Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
+Bug-Debian: http://bugs.debian.org/603004
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- mathgl-1.11.0.1.orig/Makefile.in
++++ mathgl-1.11.0.1/Makefile.in
+@@ -46,7 +46,11 @@ DIST_COMMON = README $(am__configure_dep
+ 	config/texinfo.tex
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+--- mathgl-1.11.0.1.orig/aclocal.m4
++++ mathgl-1.11.0.1/aclocal.m4
+@@ -19,7972 +19,6 @@ You have another version of autoconf.  I
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically `autoreconf'.])])
+ 
+-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+-#
+-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+-#   Written by Gordon Matzigkeit, 1996
+-#
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-
+-m4_define([_LT_COPYING], [dnl
+-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+-#   Written by Gordon Matzigkeit, 1996
+-#
+-#   This file is part of GNU Libtool.
+-#
+-# GNU Libtool 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 of
+-# the License, or (at your option) any later version.
+-#
+-# As a special exception to the GNU General Public License,
+-# if you distribute this file as part of a program or library that
+-# is built using GNU Libtool, you may include this file under the
+-# same distribution terms that you use for the rest of that program.
+-#
+-# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
+-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+-# obtained by writing to the Free Software Foundation, Inc.,
+-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-])
+-
+-# serial 56 LT_INIT
+-
+-
+-# LT_PREREQ(VERSION)
+-# ------------------
+-# Complain and exit if this libtool version is less that VERSION.
+-m4_defun([LT_PREREQ],
+-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+-       [m4_default([$3],
+-		   [m4_fatal([Libtool version $1 or higher is required],
+-		             63)])],
+-       [$2])])
+-
+-
+-# _LT_CHECK_BUILDDIR
+-# ------------------
+-# Complain if the absolute build directory name contains unusual characters
+-m4_defun([_LT_CHECK_BUILDDIR],
+-[case `pwd` in
+-  *\ * | *\	*)
+-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+-esac
+-])
+-
+-
+-# LT_INIT([OPTIONS])
+-# ------------------
+-AC_DEFUN([LT_INIT],
+-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+-AC_BEFORE([$0], [LT_LANG])dnl
+-AC_BEFORE([$0], [LT_OUTPUT])dnl
+-AC_BEFORE([$0], [LTDL_INIT])dnl
+-m4_require([_LT_CHECK_BUILDDIR])dnl
+-
+-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+-dnl unless we require an AC_DEFUNed macro:
+-AC_REQUIRE([LTOPTIONS_VERSION])dnl
+-AC_REQUIRE([LTSUGAR_VERSION])dnl
+-AC_REQUIRE([LTVERSION_VERSION])dnl
+-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+-m4_require([_LT_PROG_LTMAIN])dnl
+-
+-dnl Parse OPTIONS
+-_LT_SET_OPTIONS([$0], [$1])
+-
+-# This can be used to rebuild libtool when needed
+-LIBTOOL_DEPS="$ltmain"
+-
+-# Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+-AC_SUBST(LIBTOOL)dnl
+-
+-_LT_SETUP
+-
+-# Only expand once:
+-m4_define([LT_INIT])
+-])# LT_INIT
+-
+-# Old names:
+-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+-
+-
+-# _LT_CC_BASENAME(CC)
+-# -------------------
+-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+-m4_defun([_LT_CC_BASENAME],
+-[for cc_temp in $1""; do
+-  case $cc_temp in
+-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+-    \-*) ;;
+-    *) break;;
+-  esac
+-done
+-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+-])
+-
+-
+-# _LT_FILEUTILS_DEFAULTS
+-# ----------------------
+-# It is okay to use these file commands and assume they have been set
+-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+-m4_defun([_LT_FILEUTILS_DEFAULTS],
+-[: ${CP="cp -f"}
+-: ${MV="mv -f"}
+-: ${RM="rm -f"}
+-])# _LT_FILEUTILS_DEFAULTS
+-
+-
+-# _LT_SETUP
+-# ---------
+-m4_defun([_LT_SETUP],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-_LT_DECL([], [host_alias], [0], [The host system])dnl
+-_LT_DECL([], [host], [0])dnl
+-_LT_DECL([], [host_os], [0])dnl
+-dnl
+-_LT_DECL([], [build_alias], [0], [The build system])dnl
+-_LT_DECL([], [build], [0])dnl
+-_LT_DECL([], [build_os], [0])dnl
+-dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([LT_PATH_LD])dnl
+-AC_REQUIRE([LT_PATH_NM])dnl
+-dnl
+-AC_REQUIRE([AC_PROG_LN_S])dnl
+-test -z "$LN_S" && LN_S="ln -s"
+-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+-dnl
+-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+-dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+-m4_require([_LT_CMD_RELOAD])dnl
+-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+-
+-_LT_CONFIG_LIBTOOL_INIT([
+-# See if we are running on zsh, and set the options which allow our
+-# commands through without removal of \ escapes INIT.
+-if test -n "\${ZSH_VERSION+set}" ; then
+-   setopt NO_GLOB_SUBST
+-fi
+-])
+-if test -n "${ZSH_VERSION+set}" ; then
+-   setopt NO_GLOB_SUBST
+-fi
+-
+-_LT_CHECK_OBJDIR
+-
+-m4_require([_LT_TAG_COMPILER])dnl
+-_LT_PROG_ECHO_BACKSLASH
+-
+-case $host_os in
+-aix3*)
+-  # AIX sometimes has problems with the GCC collect2 program.  For some
+-  # reason, if we set the COLLECT_NAMES environment variable, the problems
+-  # vanish in a puff of smoke.
+-  if test "X${COLLECT_NAMES+set}" != Xset; then
+-    COLLECT_NAMES=
+-    export COLLECT_NAMES
+-  fi
+-  ;;
+-esac
+-
+-# Sed substitution that helps us do robust quoting.  It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+-
+-# Same as above, but do not quote variable references.
+-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+-
+-# Sed substitution to delay expansion of an escaped shell variable in a
+-# double_quote_subst'ed string.
+-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+-
+-# Sed substitution to delay expansion of an escaped single quote.
+-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+-
+-# Sed substitution to avoid accidental globbing in evaled expressions
+-no_glob_subst='s/\*/\\\*/g'
+-
+-# Global variables:
+-ofile=libtool
+-can_build_shared=yes
+-
+-# All known linkers require a `.a' archive for static linking (except MSVC,
+-# which needs '.lib').
+-libext=a
+-
+-with_gnu_ld="$lt_cv_prog_gnu_ld"
+-
+-old_CC="$CC"
+-old_CFLAGS="$CFLAGS"
+-
+-# Set sane defaults for various variables
+-test -z "$CC" && CC=cc
+-test -z "$LTCC" && LTCC=$CC
+-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+-test -z "$LD" && LD=ld
+-test -z "$ac_objext" && ac_objext=o
+-
+-_LT_CC_BASENAME([$compiler])
+-
+-# Only perform the check for file, if the check method requires it
+-test -z "$MAGIC_CMD" && MAGIC_CMD=file
+-case $deplibs_check_method in
+-file_magic*)
+-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+-    _LT_PATH_MAGIC
+-  fi
+-  ;;
+-esac
+-
+-# Use C for the default configuration in the libtool script
+-LT_SUPPORTED_TAG([CC])
+-_LT_LANG_C_CONFIG
+-_LT_LANG_DEFAULT_CONFIG
+-_LT_CONFIG_COMMANDS
+-])# _LT_SETUP
+-
+-
+-# _LT_PROG_LTMAIN
+-# ---------------
+-# Note that this code is called both from `configure', and `config.status'
+-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+-# `config.status' has no value for ac_aux_dir unless we are using Automake,
+-# so we pass a copy along to make sure it has a sensible value anyway.
+-m4_defun([_LT_PROG_LTMAIN],
+-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+-ltmain="$ac_aux_dir/ltmain.sh"
+-])# _LT_PROG_LTMAIN
+-
+-
+-
+-# So that we can recreate a full libtool script including additional
+-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+-# in macros and then make a single call at the end using the `libtool'
+-# label.
+-
+-
+-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+-# ----------------------------------------
+-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+-m4_define([_LT_CONFIG_LIBTOOL_INIT],
+-[m4_ifval([$1],
+-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+-                     [$1
+-])])])
+-
+-# Initialize.
+-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+-
+-
+-# _LT_CONFIG_LIBTOOL([COMMANDS])
+-# ------------------------------
+-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+-m4_define([_LT_CONFIG_LIBTOOL],
+-[m4_ifval([$1],
+-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+-                     [$1
+-])])])
+-
+-# Initialize.
+-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+-
+-
+-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+-# -----------------------------------------------------
+-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+-[_LT_CONFIG_LIBTOOL([$1])
+-_LT_CONFIG_LIBTOOL_INIT([$2])
+-])
+-
+-
+-# _LT_FORMAT_COMMENT([COMMENT])
+-# -----------------------------
+-# Add leading comment marks to the start of each line, and a trailing
+-# full-stop to the whole comment if one is not present already.
+-m4_define([_LT_FORMAT_COMMENT],
+-[m4_ifval([$1], [
+-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+-)])
+-
+-
+-
+-
+-
+-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+-# -------------------------------------------------------------------
+-# CONFIGNAME is the name given to the value in the libtool script.
+-# VARNAME is the (base) name used in the configure script.
+-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+-# VARNAME.  Any other value will be used directly.
+-m4_define([_LT_DECL],
+-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+-	[m4_ifval([$1], [$1], [$2])])
+-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+-    m4_ifval([$4],
+-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+-    lt_dict_add_subkey([lt_decl_dict], [$2],
+-	[tagged?], [m4_ifval([$5], [yes], [no])])])
+-])
+-
+-
+-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+-# --------------------------------------------------------
+-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+-
+-
+-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+-# ------------------------------------------------
+-m4_define([lt_decl_tag_varnames],
+-[_lt_decl_filter([tagged?], [yes], $@)])
+-
+-
+-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+-# ---------------------------------------------------------
+-m4_define([_lt_decl_filter],
+-[m4_case([$#],
+-  [0], [m4_fatal([$0: too few arguments: $#])],
+-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+-])
+-
+-
+-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+-# --------------------------------------------------
+-m4_define([lt_decl_quote_varnames],
+-[_lt_decl_filter([value], [1], $@)])
+-
+-
+-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+-# ---------------------------------------------------
+-m4_define([lt_decl_dquote_varnames],
+-[_lt_decl_filter([value], [2], $@)])
+-
+-
+-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+-# ---------------------------------------------------
+-m4_define([lt_decl_varnames_tagged],
+-[m4_assert([$# <= 2])dnl
+-_$0(m4_quote(m4_default([$1], [[, ]])),
+-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+-m4_define([_lt_decl_varnames_tagged],
+-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+-
+-
+-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+-# ------------------------------------------------
+-m4_define([lt_decl_all_varnames],
+-[_$0(m4_quote(m4_default([$1], [[, ]])),
+-     m4_if([$2], [],
+-	   m4_quote(lt_decl_varnames),
+-	m4_quote(m4_shift($@))))[]dnl
+-])
+-m4_define([_lt_decl_all_varnames],
+-[lt_join($@, lt_decl_varnames_tagged([$1],
+-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+-])
+-
+-
+-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+-# ------------------------------------
+-# Quote a variable value, and forward it to `config.status' so that its
+-# declaration there will have the same value as in `configure'.  VARNAME
+-# must have a single quote delimited value for this to work.
+-m4_define([_LT_CONFIG_STATUS_DECLARE],
+-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+-
+-
+-# _LT_CONFIG_STATUS_DECLARATIONS
+-# ------------------------------
+-# We delimit libtool config variables with single quotes, so when
+-# we write them to config.status, we have to be sure to quote all
+-# embedded single quotes properly.  In configure, this macro expands
+-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+-#
+-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+-
+-
+-# _LT_LIBTOOL_TAGS
+-# ----------------
+-# Output comment and list of tags supported by the script
+-m4_defun([_LT_LIBTOOL_TAGS],
+-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+-available_tags="_LT_TAGS"dnl
+-])
+-
+-
+-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+-# -----------------------------------
+-# Extract the dictionary values for VARNAME (optionally with TAG) and
+-# expand to a commented shell variable setting:
+-#
+-#    # Some comment about what VAR is for.
+-#    visible_name=$lt_internal_name
+-m4_define([_LT_LIBTOOL_DECLARE],
+-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+-					   [description])))[]dnl
+-m4_pushdef([_libtool_name],
+-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+-    [0], [_libtool_name=[$]$1],
+-    [1], [_libtool_name=$lt_[]$1],
+-    [2], [_libtool_name=$lt_[]$1],
+-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+-])
+-
+-
+-# _LT_LIBTOOL_CONFIG_VARS
+-# -----------------------
+-# Produce commented declarations of non-tagged libtool config variables
+-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+-# section) are produced by _LT_LIBTOOL_TAG_VARS.
+-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+-[m4_foreach([_lt_var],
+-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+-
+-
+-# _LT_LIBTOOL_TAG_VARS(TAG)
+-# -------------------------
+-m4_define([_LT_LIBTOOL_TAG_VARS],
+-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+-
+-
+-# _LT_TAGVAR(VARNAME, [TAGNAME])
+-# ------------------------------
+-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+-
+-
+-# _LT_CONFIG_COMMANDS
+-# -------------------
+-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+-# variables for single and double quote escaping we saved from calls
+-# to _LT_DECL, we can put quote escaped variables declarations
+-# into `config.status', and then the shell code to quote escape them in
+-# for loops in `config.status'.  Finally, any additional code accumulated
+-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+-m4_defun([_LT_CONFIG_COMMANDS],
+-[AC_PROVIDE_IFELSE([LT_OUTPUT],
+-	dnl If the libtool generation code has been placed in $CONFIG_LT,
+-	dnl instead of duplicating it all over again into config.status,
+-	dnl then we will have config.status run $CONFIG_LT later, so it
+-	dnl needs to know what name is stored there:
+-        [AC_CONFIG_COMMANDS([libtool],
+-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+-    dnl If the libtool generation code is destined for config.status,
+-    dnl expand the accumulated commands and init code now:
+-    [AC_CONFIG_COMMANDS([libtool],
+-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+-])#_LT_CONFIG_COMMANDS
+-
+-
+-# Initialize.
+-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+-[
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+-
+-sed_quote_subst='$sed_quote_subst'
+-double_quote_subst='$double_quote_subst'
+-delay_variable_subst='$delay_variable_subst'
+-_LT_CONFIG_STATUS_DECLARATIONS
+-LTCC='$LTCC'
+-LTCFLAGS='$LTCFLAGS'
+-compiler='$compiler_DEFAULT'
+-
+-# Quote evaled strings.
+-for var in lt_decl_all_varnames([[ \
+-]], lt_decl_quote_varnames); do
+-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+-    *[[\\\\\\\`\\"\\\$]]*)
+-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+-      ;;
+-    *)
+-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+-      ;;
+-    esac
+-done
+-
+-# Double-quote double-evaled strings.
+-for var in lt_decl_all_varnames([[ \
+-]], lt_decl_dquote_varnames); do
+-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+-    *[[\\\\\\\`\\"\\\$]]*)
+-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+-      ;;
+-    *)
+-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+-      ;;
+-    esac
+-done
+-
+-# Fix-up fallback echo if it was mangled by the above quoting rules.
+-case \$lt_ECHO in
+-*'\\\[$]0 --fallback-echo"')dnl "
+-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+-  ;;
+-esac
+-
+-_LT_OUTPUT_LIBTOOL_INIT
+-])
+-
+-
+-# LT_OUTPUT
+-# ---------
+-# This macro allows early generation of the libtool script (before
+-# AC_OUTPUT is called), incase it is used in configure for compilation
+-# tests.
+-AC_DEFUN([LT_OUTPUT],
+-[: ${CONFIG_LT=./config.lt}
+-AC_MSG_NOTICE([creating $CONFIG_LT])
+-cat >"$CONFIG_LT" <<_LTEOF
+-#! $SHELL
+-# Generated by $as_me.
+-# Run this file to recreate a libtool stub with the current configuration.
+-
+-lt_cl_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_LTEOF
+-
+-cat >>"$CONFIG_LT" <<\_LTEOF
+-AS_SHELL_SANITIZE
+-_AS_PREPARE
+-
+-exec AS_MESSAGE_FD>&1
+-exec AS_MESSAGE_LOG_FD>>config.log
+-{
+-  echo
+-  AS_BOX([Running $as_me.])
+-} >&AS_MESSAGE_LOG_FD
+-
+-lt_cl_help="\
+-\`$as_me' creates a local libtool stub from the current configuration,
+-for use in further configure time tests before the real libtool is
+-generated.
+-
+-Usage: $[0] [[OPTIONS]]
+-
+-  -h, --help      print this help, then exit
+-  -V, --version   print version number, then exit
+-  -q, --quiet     do not print progress messages
+-  -d, --debug     don't remove temporary files
+-
+-Report bugs to <bug-libtool at gnu.org>."
+-
+-lt_cl_version="\
+-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+-configured by $[0], generated by m4_PACKAGE_STRING.
+-
+-Copyright (C) 2008 Free Software Foundation, Inc.
+-This config.lt script is free software; the Free Software Foundation
+-gives unlimited permision to copy, distribute and modify it."
+-
+-while test $[#] != 0
+-do
+-  case $[1] in
+-    --version | --v* | -V )
+-      echo "$lt_cl_version"; exit 0 ;;
+-    --help | --h* | -h )
+-      echo "$lt_cl_help"; exit 0 ;;
+-    --debug | --d* | -d )
+-      debug=: ;;
+-    --quiet | --q* | --silent | --s* | -q )
+-      lt_cl_silent=: ;;
+-
+-    -*) AC_MSG_ERROR([unrecognized option: $[1]
+-Try \`$[0] --help' for more information.]) ;;
+-
+-    *) AC_MSG_ERROR([unrecognized argument: $[1]
+-Try \`$[0] --help' for more information.]) ;;
+-  esac
+-  shift
+-done
+-
+-if $lt_cl_silent; then
+-  exec AS_MESSAGE_FD>/dev/null
+-fi
+-_LTEOF
+-
+-cat >>"$CONFIG_LT" <<_LTEOF
+-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+-_LTEOF
+-
+-cat >>"$CONFIG_LT" <<\_LTEOF
+-AC_MSG_NOTICE([creating $ofile])
+-_LT_OUTPUT_LIBTOOL_COMMANDS
+-AS_EXIT(0)
+-_LTEOF
+-chmod +x "$CONFIG_LT"
+-
+-# configure is writing to config.log, but config.lt does its own redirection,
+-# appending to config.log, which fails on DOS, as config.log is still kept
+-# open by configure.  Here we exec the FD to /dev/null, effectively closing
+-# config.log, so it can be properly (re)opened and appended to by config.lt.
+-if test "$no_create" != yes; then
+-  lt_cl_success=:
+-  test "$silent" = yes &&
+-    lt_config_lt_args="$lt_config_lt_args --quiet"
+-  exec AS_MESSAGE_LOG_FD>/dev/null
+-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+-  exec AS_MESSAGE_LOG_FD>>config.log
+-  $lt_cl_success || AS_EXIT(1)
+-fi
+-])# LT_OUTPUT
+-
+-
+-# _LT_CONFIG(TAG)
+-# ---------------
+-# If TAG is the built-in tag, create an initial libtool script with a
+-# default configuration from the untagged config vars.  Otherwise add code
+-# to config.status for appending the configuration named by TAG from the
+-# matching tagged config vars.
+-m4_defun([_LT_CONFIG],
+-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-_LT_CONFIG_SAVE_COMMANDS([
+-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+-  m4_if(_LT_TAG, [C], [
+-    # See if we are running on zsh, and set the options which allow our
+-    # commands through without removal of \ escapes.
+-    if test -n "${ZSH_VERSION+set}" ; then
+-      setopt NO_GLOB_SUBST
+-    fi
+-
+-    cfgfile="${ofile}T"
+-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+-    $RM "$cfgfile"
+-
+-    cat <<_LT_EOF >> "$cfgfile"
+-#! $SHELL
+-
+-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+-#
+-_LT_COPYING
+-_LT_LIBTOOL_TAGS
+-
+-# ### BEGIN LIBTOOL CONFIG
+-_LT_LIBTOOL_CONFIG_VARS
+-_LT_LIBTOOL_TAG_VARS
+-# ### END LIBTOOL CONFIG
+-
+-_LT_EOF
+-
+-  case $host_os in
+-  aix3*)
+-    cat <<\_LT_EOF >> "$cfgfile"
+-# AIX sometimes has problems with the GCC collect2 program.  For some
+-# reason, if we set the COLLECT_NAMES environment variable, the problems
+-# vanish in a puff of smoke.
+-if test "X${COLLECT_NAMES+set}" != Xset; then
+-  COLLECT_NAMES=
+-  export COLLECT_NAMES
+-fi
+-_LT_EOF
+-    ;;
+-  esac
+-
+-  _LT_PROG_LTMAIN
+-
+-  # We use sed instead of cat because bash on DJGPP gets confused if
+-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+-  # text mode, it properly converts lines to CR/LF.  This bash problem
+-  # is reportedly fixed, but why not run on old versions too?
+-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+-    || (rm -f "$cfgfile"; exit 1)
+-
+-  _LT_PROG_XSI_SHELLFNS
+-
+-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+-    || (rm -f "$cfgfile"; exit 1)
+-
+-  mv -f "$cfgfile" "$ofile" ||
+-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+-  chmod +x "$ofile"
+-],
+-[cat <<_LT_EOF >> "$ofile"
+-
+-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+-dnl in a comment (ie after a #).
+-# ### BEGIN LIBTOOL TAG CONFIG: $1
+-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+-# ### END LIBTOOL TAG CONFIG: $1
+-_LT_EOF
+-])dnl /m4_if
+-],
+-[m4_if([$1], [], [
+-    PACKAGE='$PACKAGE'
+-    VERSION='$VERSION'
+-    TIMESTAMP='$TIMESTAMP'
+-    RM='$RM'
+-    ofile='$ofile'], [])
+-])dnl /_LT_CONFIG_SAVE_COMMANDS
+-])# _LT_CONFIG
+-
+-
+-# LT_SUPPORTED_TAG(TAG)
+-# ---------------------
+-# Trace this macro to discover what tags are supported by the libtool
+-# --tag option, using:
+-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+-AC_DEFUN([LT_SUPPORTED_TAG], [])
+-
+-
+-# C support is built-in for now
+-m4_define([_LT_LANG_C_enabled], [])
+-m4_define([_LT_TAGS], [])
+-
+-
+-# LT_LANG(LANG)
+-# -------------
+-# Enable libtool support for the given language if not already enabled.
+-AC_DEFUN([LT_LANG],
+-[AC_BEFORE([$0], [LT_OUTPUT])dnl
+-m4_case([$1],
+-  [C],			[_LT_LANG(C)],
+-  [C++],		[_LT_LANG(CXX)],
+-  [Java],		[_LT_LANG(GCJ)],
+-  [Fortran 77],		[_LT_LANG(F77)],
+-  [Fortran],		[_LT_LANG(FC)],
+-  [Windows Resource],	[_LT_LANG(RC)],
+-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+-    [_LT_LANG($1)],
+-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+-])# LT_LANG
+-
+-
+-# _LT_LANG(LANGNAME)
+-# ------------------
+-m4_defun([_LT_LANG],
+-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+-  [LT_SUPPORTED_TAG([$1])dnl
+-  m4_append([_LT_TAGS], [$1 ])dnl
+-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+-  _LT_LANG_$1_CONFIG($1)])dnl
+-])# _LT_LANG
+-
+-
+-# _LT_LANG_DEFAULT_CONFIG
+-# -----------------------
+-m4_defun([_LT_LANG_DEFAULT_CONFIG],
+-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+-  [LT_LANG(CXX)],
+-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+-
+-AC_PROVIDE_IFELSE([AC_PROG_F77],
+-  [LT_LANG(F77)],
+-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+-
+-AC_PROVIDE_IFELSE([AC_PROG_FC],
+-  [LT_LANG(FC)],
+-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+-
+-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+-dnl pulling things in needlessly.
+-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+-  [LT_LANG(GCJ)],
+-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+-    [LT_LANG(GCJ)],
+-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+-      [LT_LANG(GCJ)],
+-      [m4_ifdef([AC_PROG_GCJ],
+-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+-       m4_ifdef([A][M_PROG_GCJ],
+-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+-       m4_ifdef([LT_PROG_GCJ],
+-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+-
+-AC_PROVIDE_IFELSE([LT_PROG_RC],
+-  [LT_LANG(RC)],
+-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+-])# _LT_LANG_DEFAULT_CONFIG
+-
+-# Obsolete macros:
+-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+-
+-
+-# _LT_TAG_COMPILER
+-# ----------------
+-m4_defun([_LT_TAG_COMPILER],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-
+-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+-
+-# If no C compiler was specified, use CC.
+-LTCC=${LTCC-"$CC"}
+-
+-# If no C compiler flags were specified, use CFLAGS.
+-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+-
+-# Allow CC to be a program name with arguments.
+-compiler=$CC
+-])# _LT_TAG_COMPILER
+-
+-
+-# _LT_COMPILER_BOILERPLATE
+-# ------------------------
+-# Check for compiler boilerplate output or warnings with
+-# the simple compiler test code.
+-m4_defun([_LT_COMPILER_BOILERPLATE],
+-[m4_require([_LT_DECL_SED])dnl
+-ac_outfile=conftest.$ac_objext
+-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+-_lt_compiler_boilerplate=`cat conftest.err`
+-$RM conftest*
+-])# _LT_COMPILER_BOILERPLATE
+-
+-
+-# _LT_LINKER_BOILERPLATE
+-# ----------------------
+-# Check for linker boilerplate output or warnings with
+-# the simple link test code.
+-m4_defun([_LT_LINKER_BOILERPLATE],
+-[m4_require([_LT_DECL_SED])dnl
+-ac_outfile=conftest.$ac_objext
+-echo "$lt_simple_link_test_code" >conftest.$ac_ext
+-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+-_lt_linker_boilerplate=`cat conftest.err`
+-$RM -r conftest*
+-])# _LT_LINKER_BOILERPLATE
+-
+-# _LT_REQUIRED_DARWIN_CHECKS
+-# -------------------------
+-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+-  case $host_os in
+-    rhapsody* | darwin*)
+-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+-    AC_CHECK_TOOL([LIPO], [lipo], [:])
+-    AC_CHECK_TOOL([OTOOL], [otool], [:])
+-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+-    _LT_DECL([], [DSYMUTIL], [1],
+-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+-    _LT_DECL([], [NMEDIT], [1],
+-      [Tool to change global to local symbols on Mac OS X])
+-    _LT_DECL([], [LIPO], [1],
+-      [Tool to manipulate fat objects and archives on Mac OS X])
+-    _LT_DECL([], [OTOOL], [1],
+-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+-    _LT_DECL([], [OTOOL64], [1],
+-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+-
+-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+-      [lt_cv_apple_cc_single_mod=no
+-      if test -z "${LT_MULTI_MODULE}"; then
+-	# By default we will add the -single_module flag. You can override
+-	# by either setting the environment variable LT_MULTI_MODULE
+-	# non-empty at configure time, or by adding -multi_module to the
+-	# link flags.
+-	rm -rf libconftest.dylib*
+-	echo "int foo(void){return 1;}" > conftest.c
+-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+-        _lt_result=$?
+-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+-	  lt_cv_apple_cc_single_mod=yes
+-	else
+-	  cat conftest.err >&AS_MESSAGE_LOG_FD
+-	fi
+-	rm -rf libconftest.dylib*
+-	rm -f conftest.*
+-      fi])
+-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+-      [lt_cv_ld_exported_symbols_list],
+-      [lt_cv_ld_exported_symbols_list=no
+-      save_LDFLAGS=$LDFLAGS
+-      echo "_main" > conftest.sym
+-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+-	[lt_cv_ld_exported_symbols_list=yes],
+-	[lt_cv_ld_exported_symbols_list=no])
+-	LDFLAGS="$save_LDFLAGS"
+-    ])
+-    case $host_os in
+-    rhapsody* | darwin1.[[012]])
+-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+-    darwin1.*)
+-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+-    darwin*) # darwin 5.x on
+-      # if running on 10.5 or later, the deployment target defaults
+-      # to the OS version, if on x86, and 10.4, the deployment
+-      # target defaults to 10.4. Don't you love it?
+-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+-	10.[[012]]*)
+-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+-	10.*)
+-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+-      esac
+-    ;;
+-  esac
+-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+-      _lt_dar_single_mod='$single_module'
+-    fi
+-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+-    else
+-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-    fi
+-    if test "$DSYMUTIL" != ":"; then
+-      _lt_dsymutil='~$DSYMUTIL $lib || :'
+-    else
+-      _lt_dsymutil=
+-    fi
+-    ;;
+-  esac
+-])
+-
+-
+-# _LT_DARWIN_LINKER_FEATURES
+-# --------------------------
+-# Checks for linker and compiler features on darwin
+-m4_defun([_LT_DARWIN_LINKER_FEATURES],
+-[
+-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-  _LT_TAGVAR(hardcode_direct, $1)=no
+-  _LT_TAGVAR(hardcode_automatic, $1)=yes
+-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+-  _LT_TAGVAR(link_all_deplibs, $1)=yes
+-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+-  case $cc_basename in
+-     ifort*) _lt_dar_can_shared=yes ;;
+-     *) _lt_dar_can_shared=$GCC ;;
+-  esac
+-  if test "$_lt_dar_can_shared" = "yes"; then
+-    output_verbose_link_cmd=echo
+-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+-    m4_if([$1], [CXX],
+-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+-    fi
+-],[])
+-  else
+-  _LT_TAGVAR(ld_shlibs, $1)=no
+-  fi
+-])
+-
+-# _LT_SYS_MODULE_PATH_AIX
+-# -----------------------
+-# Links a minimal program and checks the executable
+-# for the system default hardcoded library path. In most cases,
+-# this is /usr/lib:/lib, but when the MPI compilers are used
+-# the location of the communication and MPI libs are included too.
+-# If we don't find anything, use the default library path according
+-# to the aix ld manual.
+-m4_defun([_LT_SYS_MODULE_PATH_AIX],
+-[m4_require([_LT_DECL_SED])dnl
+-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+-lt_aix_libpath_sed='
+-    /Import File Strings/,/^$/ {
+-	/^0/ {
+-	    s/^0  *\(.*\)$/\1/
+-	    p
+-	}
+-    }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi],[])
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+-])# _LT_SYS_MODULE_PATH_AIX
+-
+-
+-# _LT_SHELL_INIT(ARG)
+-# -------------------
+-m4_define([_LT_SHELL_INIT],
+-[ifdef([AC_DIVERSION_NOTICE],
+-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+-	 [AC_DIVERT_PUSH(NOTICE)])
+-$1
+-AC_DIVERT_POP
+-])# _LT_SHELL_INIT
+-
+-
+-# _LT_PROG_ECHO_BACKSLASH
+-# -----------------------
+-# Add some code to the start of the generated configure script which
+-# will find an echo command which doesn't interpret backslashes.
+-m4_defun([_LT_PROG_ECHO_BACKSLASH],
+-[_LT_SHELL_INIT([
+-# Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-case X$lt_ECHO in
+-X*--fallback-echo)
+-  # Remove one level of quotation (which was required for Make).
+-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+-  ;;
+-esac
+-
+-ECHO=${lt_ECHO-echo}
+-if test "X[$]1" = X--no-reexec; then
+-  # Discard the --no-reexec flag, and continue.
+-  shift
+-elif test "X[$]1" = X--fallback-echo; then
+-  # Avoid inline document here, it may be left over
+-  :
+-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+-  # Yippee, $ECHO works!
+-  :
+-else
+-  # Restart under the correct shell.
+-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+-fi
+-
+-if test "X[$]1" = X--fallback-echo; then
+-  # used as fallback echo
+-  shift
+-  cat <<_LT_EOF
+-[$]*
+-_LT_EOF
+-  exit 0
+-fi
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+-
+-if test -z "$lt_ECHO"; then
+-  if test "X${echo_test_string+set}" != Xset; then
+-    # find a string as large as possible, as long as the shell can cope with it
+-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+-      then
+-        break
+-      fi
+-    done
+-  fi
+-
+-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+-     test "X$echo_testing_string" = "X$echo_test_string"; then
+-    :
+-  else
+-    # The Solaris, AIX, and Digital Unix default echo programs unquote
+-    # backslashes.  This makes it impossible to quote backslashes using
+-    #   echo "$something" | sed 's/\\/\\\\/g'
+-    #
+-    # So, first we look for a working echo in the user's PATH.
+-
+-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-    for dir in $PATH /usr/ucb; do
+-      IFS="$lt_save_ifs"
+-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+-         test "X$echo_testing_string" = "X$echo_test_string"; then
+-        ECHO="$dir/echo"
+-        break
+-      fi
+-    done
+-    IFS="$lt_save_ifs"
+-
+-    if test "X$ECHO" = Xecho; then
+-      # We didn't find a better echo, so look for alternatives.
+-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+-         test "X$echo_testing_string" = "X$echo_test_string"; then
+-        # This shell has a builtin print -r that does the trick.
+-        ECHO='print -r'
+-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+-        # If we have ksh, try running configure again with it.
+-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+-        export ORIGINAL_CONFIG_SHELL
+-        CONFIG_SHELL=/bin/ksh
+-        export CONFIG_SHELL
+-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+-      else
+-        # Try using printf.
+-        ECHO='printf %s\n'
+-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+-	   test "X$echo_testing_string" = "X$echo_test_string"; then
+-	  # Cool, printf works
+-	  :
+-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+-	     test "X$echo_testing_string" = 'X\t' &&
+-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+-	     test "X$echo_testing_string" = "X$echo_test_string"; then
+-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+-	  export CONFIG_SHELL
+-	  SHELL="$CONFIG_SHELL"
+-	  export SHELL
+-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+-	     test "X$echo_testing_string" = 'X\t' &&
+-	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+-	     test "X$echo_testing_string" = "X$echo_test_string"; then
+-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+-        else
+-	  # maybe with a smaller string...
+-	  prev=:
+-
+-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+-	    then
+-	      break
+-	    fi
+-	    prev="$cmd"
+-	  done
+-
+-	  if test "$prev" != 'sed 50q "[$]0"'; then
+-	    echo_test_string=`eval $prev`
+-	    export echo_test_string
+-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+-	  else
+-	    # Oops.  We lost completely, so just stick with echo.
+-	    ECHO=echo
+-	  fi
+-        fi
+-      fi
+-    fi
+-  fi
+-fi
+-
+-# Copy echo and quote the copy suitably for passing to libtool from
+-# the Makefile, instead of quoting the original, which is used later.
+-lt_ECHO=$ECHO
+-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+-fi
+-
+-AC_SUBST(lt_ECHO)
+-])
+-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+-_LT_DECL([], [ECHO], [1],
+-    [An echo program that does not interpret backslashes])
+-])# _LT_PROG_ECHO_BACKSLASH
+-
+-
+-# _LT_ENABLE_LOCK
+-# ---------------
+-m4_defun([_LT_ENABLE_LOCK],
+-[AC_ARG_ENABLE([libtool-lock],
+-  [AS_HELP_STRING([--disable-libtool-lock],
+-    [avoid locking (might break parallel builds)])])
+-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+-
+-# Some flags need to be propagated to the compiler or linker for good
+-# libtool support.
+-case $host in
+-ia64-*-hpux*)
+-  # Find out which ABI we are using.
+-  echo 'int i;' > conftest.$ac_ext
+-  if AC_TRY_EVAL(ac_compile); then
+-    case `/usr/bin/file conftest.$ac_objext` in
+-      *ELF-32*)
+-	HPUX_IA64_MODE="32"
+-	;;
+-      *ELF-64*)
+-	HPUX_IA64_MODE="64"
+-	;;
+-    esac
+-  fi
+-  rm -rf conftest*
+-  ;;
+-*-*-irix6*)
+-  # Find out which ABI we are using.
+-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+-  if AC_TRY_EVAL(ac_compile); then
+-    if test "$lt_cv_prog_gnu_ld" = yes; then
+-      case `/usr/bin/file conftest.$ac_objext` in
+-	*32-bit*)
+-	  LD="${LD-ld} -melf32bsmip"
+-	  ;;
+-	*N32*)
+-	  LD="${LD-ld} -melf32bmipn32"
+-	  ;;
+-	*64-bit*)
+-	  LD="${LD-ld} -melf64bmip"
+-	;;
+-      esac
+-    else
+-      case `/usr/bin/file conftest.$ac_objext` in
+-	*32-bit*)
+-	  LD="${LD-ld} -32"
+-	  ;;
+-	*N32*)
+-	  LD="${LD-ld} -n32"
+-	  ;;
+-	*64-bit*)
+-	  LD="${LD-ld} -64"
+-	  ;;
+-      esac
+-    fi
+-  fi
+-  rm -rf conftest*
+-  ;;
+-
+-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+-  # Find out which ABI we are using.
+-  echo 'int i;' > conftest.$ac_ext
+-  if AC_TRY_EVAL(ac_compile); then
+-    case `/usr/bin/file conftest.o` in
+-      *32-bit*)
+-	case $host in
+-	  x86_64-*kfreebsd*-gnu)
+-	    LD="${LD-ld} -m elf_i386_fbsd"
+-	    ;;
+-	  x86_64-*linux*)
+-	    LD="${LD-ld} -m elf_i386"
+-	    ;;
+-	  ppc64-*linux*|powerpc64-*linux*)
+-	    LD="${LD-ld} -m elf32ppclinux"
+-	    ;;
+-	  s390x-*linux*)
+-	    LD="${LD-ld} -m elf_s390"
+-	    ;;
+-	  sparc64-*linux*)
+-	    LD="${LD-ld} -m elf32_sparc"
+-	    ;;
+-	esac
+-	;;
+-      *64-bit*)
+-	case $host in
+-	  x86_64-*kfreebsd*-gnu)
+-	    LD="${LD-ld} -m elf_x86_64_fbsd"
+-	    ;;
+-	  x86_64-*linux*)
+-	    LD="${LD-ld} -m elf_x86_64"
+-	    ;;
+-	  ppc*-*linux*|powerpc*-*linux*)
+-	    LD="${LD-ld} -m elf64ppc"
+-	    ;;
+-	  s390*-*linux*|s390*-*tpf*)
+-	    LD="${LD-ld} -m elf64_s390"
+-	    ;;
+-	  sparc*-*linux*)
+-	    LD="${LD-ld} -m elf64_sparc"
+-	    ;;
+-	esac
+-	;;
+-    esac
+-  fi
+-  rm -rf conftest*
+-  ;;
+-
+-*-*-sco3.2v5*)
+-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+-  SAVE_CFLAGS="$CFLAGS"
+-  CFLAGS="$CFLAGS -belf"
+-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+-    [AC_LANG_PUSH(C)
+-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+-     AC_LANG_POP])
+-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+-    CFLAGS="$SAVE_CFLAGS"
+-  fi
+-  ;;
+-sparc*-*solaris*)
+-  # Find out which ABI we are using.
+-  echo 'int i;' > conftest.$ac_ext
+-  if AC_TRY_EVAL(ac_compile); then
+-    case `/usr/bin/file conftest.o` in
+-    *64-bit*)
+-      case $lt_cv_prog_gnu_ld in
+-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+-      *)
+-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+-	  LD="${LD-ld} -64"
+-	fi
+-	;;
+-      esac
+-      ;;
+-    esac
+-  fi
+-  rm -rf conftest*
+-  ;;
+-esac
+-
+-need_locks="$enable_libtool_lock"
+-])# _LT_ENABLE_LOCK
+-
+-
+-# _LT_CMD_OLD_ARCHIVE
+-# -------------------
+-m4_defun([_LT_CMD_OLD_ARCHIVE],
+-[AC_CHECK_TOOL(AR, ar, false)
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
+-_LT_DECL([], [AR], [1], [The archiver])
+-_LT_DECL([], [AR_FLAGS], [1])
+-
+-AC_CHECK_TOOL(STRIP, strip, :)
+-test -z "$STRIP" && STRIP=:
+-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+-
+-AC_CHECK_TOOL(RANLIB, ranlib, :)
+-test -z "$RANLIB" && RANLIB=:
+-_LT_DECL([], [RANLIB], [1],
+-    [Commands used to install an old-style archive])
+-
+-# Determine commands to create old-style static archives.
+-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+-old_postinstall_cmds='chmod 644 $oldlib'
+-old_postuninstall_cmds=
+-
+-if test -n "$RANLIB"; then
+-  case $host_os in
+-  openbsd*)
+-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+-    ;;
+-  *)
+-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+-    ;;
+-  esac
+-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-fi
+-_LT_DECL([], [old_postinstall_cmds], [2])
+-_LT_DECL([], [old_postuninstall_cmds], [2])
+-_LT_TAGDECL([], [old_archive_cmds], [2],
+-    [Commands used to build an old-style archive])
+-])# _LT_CMD_OLD_ARCHIVE
+-
+-
+-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ----------------------------------------------------------------
+-# Check whether the given compiler option works
+-AC_DEFUN([_LT_COMPILER_OPTION],
+-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_DECL_SED])dnl
+-AC_CACHE_CHECK([$1], [$2],
+-  [$2=no
+-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+-   lt_compiler_flag="$3"
+-   # Insert the option either (1) after the last *FLAGS variable, or
+-   # (2) before a word containing "conftest.", or (3) at the end.
+-   # Note that $ac_compile itself does not contain backslashes and begins
+-   # with a dollar sign (not a hyphen), so the echo should work correctly.
+-   # The option is referenced via a variable to avoid confusing sed.
+-   lt_compile=`echo "$ac_compile" | $SED \
+-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+-   -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+-   (eval "$lt_compile" 2>conftest.err)
+-   ac_status=$?
+-   cat conftest.err >&AS_MESSAGE_LOG_FD
+-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+-   if (exit $ac_status) && test -s "$ac_outfile"; then
+-     # The compiler can only warn and ignore the option if not recognized
+-     # So say no if there are warnings other than the usual output.
+-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+-       $2=yes
+-     fi
+-   fi
+-   $RM conftest*
+-])
+-
+-if test x"[$]$2" = xyes; then
+-    m4_if([$5], , :, [$5])
+-else
+-    m4_if([$6], , :, [$6])
+-fi
+-])# _LT_COMPILER_OPTION
+-
+-# Old name:
+-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+-
+-
+-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ----------------------------------------------------
+-# Check whether the given linker option works
+-AC_DEFUN([_LT_LINKER_OPTION],
+-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_DECL_SED])dnl
+-AC_CACHE_CHECK([$1], [$2],
+-  [$2=no
+-   save_LDFLAGS="$LDFLAGS"
+-   LDFLAGS="$LDFLAGS $3"
+-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+-     # The linker can only warn and ignore the option if not recognized
+-     # So say no if there are warnings
+-     if test -s conftest.err; then
+-       # Append any errors to the config.log.
+-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+-       if diff conftest.exp conftest.er2 >/dev/null; then
+-         $2=yes
+-       fi
+-     else
+-       $2=yes
+-     fi
+-   fi
+-   $RM -r conftest*
+-   LDFLAGS="$save_LDFLAGS"
+-])
+-
+-if test x"[$]$2" = xyes; then
+-    m4_if([$4], , :, [$4])
+-else
+-    m4_if([$5], , :, [$5])
+-fi
+-])# _LT_LINKER_OPTION
+-
+-# Old name:
+-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+-
+-
+-# LT_CMD_MAX_LEN
+-#---------------
+-AC_DEFUN([LT_CMD_MAX_LEN],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-# find the maximum length of command line arguments
+-AC_MSG_CHECKING([the maximum length of command line arguments])
+-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+-  i=0
+-  teststring="ABCD"
+-
+-  case $build_os in
+-  msdosdjgpp*)
+-    # On DJGPP, this test can blow up pretty badly due to problems in libc
+-    # (any single argument exceeding 2000 bytes causes a buffer overrun
+-    # during glob expansion).  Even if it were fixed, the result of this
+-    # check would be larger than it should be.
+-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+-    ;;
+-
+-  gnu*)
+-    # Under GNU Hurd, this test is not required because there is
+-    # no limit to the length of command line arguments.
+-    # Libtool will interpret -1 as no limit whatsoever
+-    lt_cv_sys_max_cmd_len=-1;
+-    ;;
+-
+-  cygwin* | mingw* | cegcc*)
+-    # On Win9x/ME, this test blows up -- it succeeds, but takes
+-    # about 5 minutes as the teststring grows exponentially.
+-    # Worse, since 9x/ME are not pre-emptively multitasking,
+-    # you end up with a "frozen" computer, even though with patience
+-    # the test eventually succeeds (with a max line length of 256k).
+-    # Instead, let's just punt: use the minimum linelength reported by
+-    # all of the supported platforms: 8192 (on NT/2K/XP).
+-    lt_cv_sys_max_cmd_len=8192;
+-    ;;
+-
+-  amigaos*)
+-    # On AmigaOS with pdksh, this test takes hours, literally.
+-    # So we just punt and use a minimum line length of 8192.
+-    lt_cv_sys_max_cmd_len=8192;
+-    ;;
+-
+-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+-    # This has been around since 386BSD, at least.  Likely further.
+-    if test -x /sbin/sysctl; then
+-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+-    elif test -x /usr/sbin/sysctl; then
+-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+-    else
+-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+-    fi
+-    # And add a safety zone
+-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+-    ;;
+-
+-  interix*)
+-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+-    lt_cv_sys_max_cmd_len=196608
+-    ;;
+-
+-  osf*)
+-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+-    # nice to cause kernel panics so lets avoid the loop below.
+-    # First set a reasonable default.
+-    lt_cv_sys_max_cmd_len=16384
+-    #
+-    if test -x /sbin/sysconfig; then
+-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+-      esac
+-    fi
+-    ;;
+-  sco3.2v5*)
+-    lt_cv_sys_max_cmd_len=102400
+-    ;;
+-  sysv5* | sco5v6* | sysv4.2uw2*)
+-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+-    if test -n "$kargmax"; then
+-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+-    else
+-      lt_cv_sys_max_cmd_len=32768
+-    fi
+-    ;;
+-  *)
+-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+-    if test -n "$lt_cv_sys_max_cmd_len"; then
+-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+-    else
+-      # Make teststring a little bigger before we do anything with it.
+-      # a 1K string should be a reasonable start.
+-      for i in 1 2 3 4 5 6 7 8 ; do
+-        teststring=$teststring$teststring
+-      done
+-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+-      # If test is not a shell built-in, we'll probably end up computing a
+-      # maximum length that is only half of the actual maximum length, but
+-      # we can't tell.
+-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+-	      test $i != 17 # 1/2 MB should be enough
+-      do
+-        i=`expr $i + 1`
+-        teststring=$teststring$teststring
+-      done
+-      # Only check the string length outside the loop.
+-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+-      teststring=
+-      # Add a significant safety factor because C++ compilers can tack on
+-      # massive amounts of additional arguments before passing them to the
+-      # linker.  It appears as though 1/2 is a usable value.
+-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+-    fi
+-    ;;
+-  esac
+-])
+-if test -n $lt_cv_sys_max_cmd_len ; then
+-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+-else
+-  AC_MSG_RESULT(none)
+-fi
+-max_cmd_len=$lt_cv_sys_max_cmd_len
+-_LT_DECL([], [max_cmd_len], [0],
+-    [What is the maximum length of a command?])
+-])# LT_CMD_MAX_LEN
+-
+-# Old name:
+-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+-
+-
+-# _LT_HEADER_DLFCN
+-# ----------------
+-m4_defun([_LT_HEADER_DLFCN],
+-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+-])# _LT_HEADER_DLFCN
+-
+-
+-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+-# ----------------------------------------------------------------
+-m4_defun([_LT_TRY_DLOPEN_SELF],
+-[m4_require([_LT_HEADER_DLFCN])dnl
+-if test "$cross_compiling" = yes; then :
+-  [$4]
+-else
+-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+-  lt_status=$lt_dlunknown
+-  cat > conftest.$ac_ext <<_LT_EOF
+-[#line __oline__ "configure"
+-#include "confdefs.h"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-#  define LT_DLGLOBAL		RTLD_GLOBAL
+-#else
+-#  ifdef DL_GLOBAL
+-#    define LT_DLGLOBAL		DL_GLOBAL
+-#  else
+-#    define LT_DLGLOBAL		0
+-#  endif
+-#endif
+-
+-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+-   find out it does not work in some platform. */
+-#ifndef LT_DLLAZY_OR_NOW
+-#  ifdef RTLD_LAZY
+-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+-#  else
+-#    ifdef DL_LAZY
+-#      define LT_DLLAZY_OR_NOW		DL_LAZY
+-#    else
+-#      ifdef RTLD_NOW
+-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+-#      else
+-#        ifdef DL_NOW
+-#          define LT_DLLAZY_OR_NOW	DL_NOW
+-#        else
+-#          define LT_DLLAZY_OR_NOW	0
+-#        endif
+-#      endif
+-#    endif
+-#  endif
+-#endif
+-
+-void fnord() { int i=42;}
+-int main ()
+-{
+-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+-  int status = $lt_dlunknown;
+-
+-  if (self)
+-    {
+-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+-      /* dlclose (self); */
+-    }
+-  else
+-    puts (dlerror ());
+-
+-  return status;
+-}]
+-_LT_EOF
+-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+-    lt_status=$?
+-    case x$lt_status in
+-      x$lt_dlno_uscore) $1 ;;
+-      x$lt_dlneed_uscore) $2 ;;
+-      x$lt_dlunknown|x*) $3 ;;
+-    esac
+-  else :
+-    # compilation failed
+-    $3
+-  fi
+-fi
+-rm -fr conftest*
+-])# _LT_TRY_DLOPEN_SELF
+-
+-
+-# LT_SYS_DLOPEN_SELF
+-# ------------------
+-AC_DEFUN([LT_SYS_DLOPEN_SELF],
+-[m4_require([_LT_HEADER_DLFCN])dnl
+-if test "x$enable_dlopen" != xyes; then
+-  enable_dlopen=unknown
+-  enable_dlopen_self=unknown
+-  enable_dlopen_self_static=unknown
+-else
+-  lt_cv_dlopen=no
+-  lt_cv_dlopen_libs=
+-
+-  case $host_os in
+-  beos*)
+-    lt_cv_dlopen="load_add_on"
+-    lt_cv_dlopen_libs=
+-    lt_cv_dlopen_self=yes
+-    ;;
+-
+-  mingw* | pw32* | cegcc*)
+-    lt_cv_dlopen="LoadLibrary"
+-    lt_cv_dlopen_libs=
+-    ;;
+-
+-  cygwin*)
+-    lt_cv_dlopen="dlopen"
+-    lt_cv_dlopen_libs=
+-    ;;
+-
+-  darwin*)
+-  # if libdl is installed we need to link against it
+-    AC_CHECK_LIB([dl], [dlopen],
+-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+-    lt_cv_dlopen="dyld"
+-    lt_cv_dlopen_libs=
+-    lt_cv_dlopen_self=yes
+-    ])
+-    ;;
+-
+-  *)
+-    AC_CHECK_FUNC([shl_load],
+-	  [lt_cv_dlopen="shl_load"],
+-      [AC_CHECK_LIB([dld], [shl_load],
+-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+-	[AC_CHECK_FUNC([dlopen],
+-	      [lt_cv_dlopen="dlopen"],
+-	  [AC_CHECK_LIB([dl], [dlopen],
+-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+-	    [AC_CHECK_LIB([svld], [dlopen],
+-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+-	      [AC_CHECK_LIB([dld], [dld_link],
+-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+-	      ])
+-	    ])
+-	  ])
+-	])
+-      ])
+-    ;;
+-  esac
+-
+-  if test "x$lt_cv_dlopen" != xno; then
+-    enable_dlopen=yes
+-  else
+-    enable_dlopen=no
+-  fi
+-
+-  case $lt_cv_dlopen in
+-  dlopen)
+-    save_CPPFLAGS="$CPPFLAGS"
+-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+-
+-    save_LDFLAGS="$LDFLAGS"
+-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+-
+-    save_LIBS="$LIBS"
+-    LIBS="$lt_cv_dlopen_libs $LIBS"
+-
+-    AC_CACHE_CHECK([whether a program can dlopen itself],
+-	  lt_cv_dlopen_self, [dnl
+-	  _LT_TRY_DLOPEN_SELF(
+-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+-    ])
+-
+-    if test "x$lt_cv_dlopen_self" = xyes; then
+-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+-	  lt_cv_dlopen_self_static, [dnl
+-	  _LT_TRY_DLOPEN_SELF(
+-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+-      ])
+-    fi
+-
+-    CPPFLAGS="$save_CPPFLAGS"
+-    LDFLAGS="$save_LDFLAGS"
+-    LIBS="$save_LIBS"
+-    ;;
+-  esac
+-
+-  case $lt_cv_dlopen_self in
+-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+-  *) enable_dlopen_self=unknown ;;
+-  esac
+-
+-  case $lt_cv_dlopen_self_static in
+-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+-  *) enable_dlopen_self_static=unknown ;;
+-  esac
+-fi
+-_LT_DECL([dlopen_support], [enable_dlopen], [0],
+-	 [Whether dlopen is supported])
+-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+-	 [Whether dlopen of programs is supported])
+-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+-	 [Whether dlopen of statically linked programs is supported])
+-])# LT_SYS_DLOPEN_SELF
+-
+-# Old name:
+-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+-
+-
+-# _LT_COMPILER_C_O([TAGNAME])
+-# ---------------------------
+-# Check to see if options -c and -o are simultaneously supported by compiler.
+-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+-m4_defun([_LT_COMPILER_C_O],
+-[m4_require([_LT_DECL_SED])dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_TAG_COMPILER])dnl
+-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+-   $RM -r conftest 2>/dev/null
+-   mkdir conftest
+-   cd conftest
+-   mkdir out
+-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+-   lt_compiler_flag="-o out/conftest2.$ac_objext"
+-   # Insert the option either (1) after the last *FLAGS variable, or
+-   # (2) before a word containing "conftest.", or (3) at the end.
+-   # Note that $ac_compile itself does not contain backslashes and begins
+-   # with a dollar sign (not a hyphen), so the echo should work correctly.
+-   lt_compile=`echo "$ac_compile" | $SED \
+-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+-   -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+-   (eval "$lt_compile" 2>out/conftest.err)
+-   ac_status=$?
+-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+-   then
+-     # The compiler can only warn and ignore the option if not recognized
+-     # So say no if there are warnings
+-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+-     fi
+-   fi
+-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+-   $RM conftest*
+-   # SGI C++ compiler will create directory out/ii_files/ for
+-   # template instantiation
+-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+-   $RM out/* && rmdir out
+-   cd ..
+-   $RM -r conftest
+-   $RM conftest*
+-])
+-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+-	[Does compiler simultaneously support -c and -o options?])
+-])# _LT_COMPILER_C_O
+-
+-
+-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+-# ----------------------------------
+-# Check to see if we can do hard links to lock some files if needed
+-m4_defun([_LT_COMPILER_FILE_LOCKS],
+-[m4_require([_LT_ENABLE_LOCK])dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-_LT_COMPILER_C_O([$1])
+-
+-hard_links="nottested"
+-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+-  # do not overwrite the value of need_locks provided by the user
+-  AC_MSG_CHECKING([if we can lock with hard links])
+-  hard_links=yes
+-  $RM conftest*
+-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+-  touch conftest.a
+-  ln conftest.a conftest.b 2>&5 || hard_links=no
+-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+-  AC_MSG_RESULT([$hard_links])
+-  if test "$hard_links" = no; then
+-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+-    need_locks=warn
+-  fi
+-else
+-  need_locks=no
+-fi
+-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+-])# _LT_COMPILER_FILE_LOCKS
+-
+-
+-# _LT_CHECK_OBJDIR
+-# ----------------
+-m4_defun([_LT_CHECK_OBJDIR],
+-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+-[rm -f .libs 2>/dev/null
+-mkdir .libs 2>/dev/null
+-if test -d .libs; then
+-  lt_cv_objdir=.libs
+-else
+-  # MS-DOS does not allow filenames that begin with a dot.
+-  lt_cv_objdir=_libs
+-fi
+-rmdir .libs 2>/dev/null])
+-objdir=$lt_cv_objdir
+-_LT_DECL([], [objdir], [0],
+-         [The name of the directory that contains temporary libtool files])dnl
+-m4_pattern_allow([LT_OBJDIR])dnl
+-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+-])# _LT_CHECK_OBJDIR
+-
+-
+-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+-# --------------------------------------
+-# Check hardcoding attributes.
+-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+-[AC_MSG_CHECKING([how to hardcode library paths into programs])
+-_LT_TAGVAR(hardcode_action, $1)=
+-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+-
+-  # We can hardcode non-existent directories.
+-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+-     # have to relink, otherwise we might link with an installed library
+-     # when we should be linking with a yet-to-be-installed one
+-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+-    # Linking always hardcodes the temporary library directory.
+-    _LT_TAGVAR(hardcode_action, $1)=relink
+-  else
+-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+-    _LT_TAGVAR(hardcode_action, $1)=immediate
+-  fi
+-else
+-  # We cannot hardcode anything, or else we can only hardcode existing
+-  # directories.
+-  _LT_TAGVAR(hardcode_action, $1)=unsupported
+-fi
+-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+-
+-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+-  # Fast installation is not supported
+-  enable_fast_install=no
+-elif test "$shlibpath_overrides_runpath" = yes ||
+-     test "$enable_shared" = no; then
+-  # Fast installation is not necessary
+-  enable_fast_install=needless
+-fi
+-_LT_TAGDECL([], [hardcode_action], [0],
+-    [How to hardcode a shared library path into an executable])
+-])# _LT_LINKER_HARDCODE_LIBPATH
+-
+-
+-# _LT_CMD_STRIPLIB
+-# ----------------
+-m4_defun([_LT_CMD_STRIPLIB],
+-[m4_require([_LT_DECL_EGREP])
+-striplib=
+-old_striplib=
+-AC_MSG_CHECKING([whether stripping libraries is possible])
+-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+-  AC_MSG_RESULT([yes])
+-else
+-# FIXME - insert some real tests, host_os isn't really good enough
+-  case $host_os in
+-  darwin*)
+-    if test -n "$STRIP" ; then
+-      striplib="$STRIP -x"
+-      old_striplib="$STRIP -S"
+-      AC_MSG_RESULT([yes])
+-    else
+-      AC_MSG_RESULT([no])
+-    fi
+-    ;;
+-  *)
+-    AC_MSG_RESULT([no])
+-    ;;
+-  esac
+-fi
+-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+-_LT_DECL([], [striplib], [1])
+-])# _LT_CMD_STRIPLIB
+-
+-
+-# _LT_SYS_DYNAMIC_LINKER([TAG])
+-# -----------------------------
+-# PORTME Fill in your ld.so characteristics
+-m4_defun([_LT_SYS_DYNAMIC_LINKER],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-m4_require([_LT_DECL_EGREP])dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_DECL_OBJDUMP])dnl
+-m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([dynamic linker characteristics])
+-m4_if([$1],
+-	[], [
+-if test "$GCC" = yes; then
+-  case $host_os in
+-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+-    *) lt_awk_arg="/^libraries:/" ;;
+-  esac
+-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+-    # if the path contains ";" then we assume it to be the separator
+-    # otherwise default to the standard path separator (i.e. ":") - it is
+-    # assumed that no part of a normal pathname contains ";" but that should
+-    # okay in the real world where ";" in dirpaths is itself problematic.
+-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+-  else
+-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+-  fi
+-  # Ok, now we have the path, separated by spaces, we can step through it
+-  # and add multilib dir if necessary.
+-  lt_tmp_lt_search_path_spec=
+-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+-  for lt_sys_path in $lt_search_path_spec; do
+-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+-    else
+-      test -d "$lt_sys_path" && \
+-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+-    fi
+-  done
+-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+-BEGIN {RS=" "; FS="/|\n";} {
+-  lt_foo="";
+-  lt_count=0;
+-  for (lt_i = NF; lt_i > 0; lt_i--) {
+-    if ($lt_i != "" && $lt_i != ".") {
+-      if ($lt_i == "..") {
+-        lt_count++;
+-      } else {
+-        if (lt_count == 0) {
+-          lt_foo="/" $lt_i lt_foo;
+-        } else {
+-          lt_count--;
+-        }
+-      }
+-    }
+-  }
+-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+-}'`
+-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+-else
+-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-fi])
+-library_names_spec=
+-libname_spec='lib$name'
+-soname_spec=
+-shrext_cmds=".so"
+-postinstall_cmds=
+-postuninstall_cmds=
+-finish_cmds=
+-finish_eval=
+-shlibpath_var=
+-shlibpath_overrides_runpath=unknown
+-version_type=none
+-dynamic_linker="$host_os ld.so"
+-sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-need_lib_prefix=unknown
+-hardcode_into_libs=no
+-
+-# when you set need_version to no, make sure it does not cause -set_version
+-# flags to be left without arguments
+-need_version=unknown
+-
+-case $host_os in
+-aix3*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+-  shlibpath_var=LIBPATH
+-
+-  # AIX 3 has no versioning support, so we append a major version to the name.
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  ;;
+-
+-aix[[4-9]]*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  hardcode_into_libs=yes
+-  if test "$host_cpu" = ia64; then
+-    # AIX 5 supports IA64
+-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+-    shlibpath_var=LD_LIBRARY_PATH
+-  else
+-    # With GCC up to 2.95.x, collect2 would create an import file
+-    # for dependence libraries.  The import file would start with
+-    # the line `#! .'.  This would cause the generated library to
+-    # depend on `.', always an invalid library.  This was fixed in
+-    # development snapshots of GCC prior to 3.0.
+-    case $host_os in
+-      aix4 | aix4.[[01]] | aix4.[[01]].*)
+-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+-	   echo ' yes '
+-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+-	:
+-      else
+-	can_build_shared=no
+-      fi
+-      ;;
+-    esac
+-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+-    # soname into executable. Probably we can add versioning support to
+-    # collect2, so additional links can be useful in future.
+-    if test "$aix_use_runtimelinking" = yes; then
+-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+-      # instead of lib<name>.a to let people know that these are not
+-      # typical AIX shared libraries.
+-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-    else
+-      # We preserve .a as extension for shared libraries through AIX4.2
+-      # and later when we are not doing run time linking.
+-      library_names_spec='${libname}${release}.a $libname.a'
+-      soname_spec='${libname}${release}${shared_ext}$major'
+-    fi
+-    shlibpath_var=LIBPATH
+-  fi
+-  ;;
+-
+-amigaos*)
+-  case $host_cpu in
+-  powerpc)
+-    # Since July 2007 AmigaOS4 officially supports .so libraries.
+-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-    ;;
+-  m68k)
+-    library_names_spec='$libname.ixlibrary $libname.a'
+-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+-    ;;
+-  esac
+-  ;;
+-
+-beos*)
+-  library_names_spec='${libname}${shared_ext}'
+-  dynamic_linker="$host_os ld.so"
+-  shlibpath_var=LIBRARY_PATH
+-  ;;
+-
+-bsdi[[45]]*)
+-  version_type=linux
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+-  # the default ld.so.conf also contains /usr/contrib/lib and
+-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+-  # libtool to hard-code these into programs
+-  ;;
+-
+-cygwin* | mingw* | pw32* | cegcc*)
+-  version_type=windows
+-  shrext_cmds=".dll"
+-  need_version=no
+-  need_lib_prefix=no
+-
+-  case $GCC,$host_os in
+-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+-    library_names_spec='$libname.dll.a'
+-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+-    postinstall_cmds='base_file=`basename \${file}`~
+-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+-      dldir=$destdir/`dirname \$dlpath`~
+-      test -d \$dldir || mkdir -p \$dldir~
+-      $install_prog $dir/$dlname \$dldir/$dlname~
+-      chmod a+x \$dldir/$dlname~
+-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+-      fi'
+-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+-      dlpath=$dir/\$dldll~
+-       $RM \$dlpath'
+-    shlibpath_overrides_runpath=yes
+-
+-    case $host_os in
+-    cygwin*)
+-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+-      ;;
+-    mingw* | cegcc*)
+-      # MinGW DLLs use traditional 'lib' prefix
+-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+-        # It is most probably a Windows format PATH printed by
+-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+-        # path with ; separators, and with drive letters. We can handle the
+-        # drive letters (cygwin fileutils understands them), so leave them,
+-        # especially as we might pass files found there to a mingw objdump,
+-        # which wouldn't understand a cygwinified path. Ahh.
+-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+-      else
+-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+-      fi
+-      ;;
+-    pw32*)
+-      # pw32 DLLs use 'pw' prefix rather than 'lib'
+-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+-      ;;
+-    esac
+-    ;;
+-
+-  *)
+-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+-    ;;
+-  esac
+-  dynamic_linker='Win32 ld.exe'
+-  # FIXME: first we should search . and the directory the executable is in
+-  shlibpath_var=PATH
+-  ;;
+-
+-darwin* | rhapsody*)
+-  dynamic_linker="$host_os dyld"
+-  version_type=darwin
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+-  soname_spec='${libname}${release}${major}$shared_ext'
+-  shlibpath_overrides_runpath=yes
+-  shlibpath_var=DYLD_LIBRARY_PATH
+-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+-m4_if([$1], [],[
+-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+-  ;;
+-
+-dgux*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-freebsd1*)
+-  dynamic_linker=no
+-  ;;
+-
+-freebsd* | dragonfly*)
+-  # DragonFly does not have aout.  When/if they implement a new
+-  # versioning mechanism, adjust this.
+-  if test -x /usr/bin/objformat; then
+-    objformat=`/usr/bin/objformat`
+-  else
+-    case $host_os in
+-    freebsd[[123]]*) objformat=aout ;;
+-    *) objformat=elf ;;
+-    esac
+-  fi
+-  version_type=freebsd-$objformat
+-  case $version_type in
+-    freebsd-elf*)
+-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+-      need_version=no
+-      need_lib_prefix=no
+-      ;;
+-    freebsd-*)
+-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+-      need_version=yes
+-      ;;
+-  esac
+-  shlibpath_var=LD_LIBRARY_PATH
+-  case $host_os in
+-  freebsd2*)
+-    shlibpath_overrides_runpath=yes
+-    ;;
+-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+-    shlibpath_overrides_runpath=yes
+-    hardcode_into_libs=yes
+-    ;;
+-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+-    shlibpath_overrides_runpath=no
+-    hardcode_into_libs=yes
+-    ;;
+-  *) # from 4.6 on, and DragonFly
+-    shlibpath_overrides_runpath=yes
+-    hardcode_into_libs=yes
+-    ;;
+-  esac
+-  ;;
+-
+-gnu*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  hardcode_into_libs=yes
+-  ;;
+-
+-hpux9* | hpux10* | hpux11*)
+-  # Give a soname corresponding to the major version so that dld.sl refuses to
+-  # link against other versions.
+-  version_type=sunos
+-  need_lib_prefix=no
+-  need_version=no
+-  case $host_cpu in
+-  ia64*)
+-    shrext_cmds='.so'
+-    hardcode_into_libs=yes
+-    dynamic_linker="$host_os dld.so"
+-    shlibpath_var=LD_LIBRARY_PATH
+-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-    soname_spec='${libname}${release}${shared_ext}$major'
+-    if test "X$HPUX_IA64_MODE" = X32; then
+-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+-    else
+-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+-    fi
+-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+-    ;;
+-  hppa*64*)
+-    shrext_cmds='.sl'
+-    hardcode_into_libs=yes
+-    dynamic_linker="$host_os dld.sl"
+-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-    soname_spec='${libname}${release}${shared_ext}$major'
+-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+-    ;;
+-  *)
+-    shrext_cmds='.sl'
+-    dynamic_linker="$host_os dld.sl"
+-    shlibpath_var=SHLIB_PATH
+-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-    soname_spec='${libname}${release}${shared_ext}$major'
+-    ;;
+-  esac
+-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+-  postinstall_cmds='chmod 555 $lib'
+-  ;;
+-
+-interix[[3-9]]*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  ;;
+-
+-irix5* | irix6* | nonstopux*)
+-  case $host_os in
+-    nonstopux*) version_type=nonstopux ;;
+-    *)
+-	if test "$lt_cv_prog_gnu_ld" = yes; then
+-		version_type=linux
+-	else
+-		version_type=irix
+-	fi ;;
+-  esac
+-  need_lib_prefix=no
+-  need_version=no
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+-  case $host_os in
+-  irix5* | nonstopux*)
+-    libsuff= shlibsuff=
+-    ;;
+-  *)
+-    case $LD in # libtool.m4 will add one of these switches to LD
+-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+-      libsuff= shlibsuff= libmagic=32-bit;;
+-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+-      libsuff=32 shlibsuff=N32 libmagic=N32;;
+-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+-    *) libsuff= shlibsuff= libmagic=never-match;;
+-    esac
+-    ;;
+-  esac
+-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+-  shlibpath_overrides_runpath=no
+-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+-  hardcode_into_libs=yes
+-  ;;
+-
+-# No shared lib support for Linux oldld, aout, or coff.
+-linux*oldld* | linux*aout* | linux*coff*)
+-  dynamic_linker=no
+-  ;;
+-
+-# This must be Linux ELF.
+-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  # Some binutils ld are patched to set DT_RUNPATH
+-  save_LDFLAGS=$LDFLAGS
+-  save_libdir=$libdir
+-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+-       [shlibpath_overrides_runpath=yes])])
+-  LDFLAGS=$save_LDFLAGS
+-  libdir=$save_libdir
+-
+-  # This implies no fast_install, which is unacceptable.
+-  # Some rework will be needed to allow for fast_install
+-  # before this can be enabled.
+-  hardcode_into_libs=yes
+-
+-  # Append ld.so.conf contents to the search path
+-  if test -f /etc/ld.so.conf; then
+-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+-  fi
+-
+-  # We used to test for /lib/ld.so.1 and disable shared libraries on
+-  # powerpc, because MkLinux only supported shared libraries with the
+-  # GNU dynamic linker.  Since this was broken with cross compilers,
+-  # most powerpc-linux boxes support dynamic linking these days and
+-  # people can always --disable-shared, the test was removed, and we
+-  # assume the GNU/Linux dynamic linker is in use.
+-  dynamic_linker='GNU/Linux ld.so'
+-  ;;
+-
+-netbsdelf*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='NetBSD ld.elf_so'
+-  ;;
+-
+-netbsd*)
+-  version_type=sunos
+-  need_lib_prefix=no
+-  need_version=no
+-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+-    dynamic_linker='NetBSD (a.out) ld.so'
+-  else
+-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-    soname_spec='${libname}${release}${shared_ext}$major'
+-    dynamic_linker='NetBSD ld.elf_so'
+-  fi
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  hardcode_into_libs=yes
+-  ;;
+-
+-newsos6)
+-  version_type=linux
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  ;;
+-
+-*nto* | *qnx*)
+-  version_type=qnx
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='ldqnx.so'
+-  ;;
+-
+-openbsd*)
+-  version_type=sunos
+-  sys_lib_dlsearch_path_spec="/usr/lib"
+-  need_lib_prefix=no
+-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+-  case $host_os in
+-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+-    *)				need_version=no  ;;
+-  esac
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+-    case $host_os in
+-      openbsd2.[[89]] | openbsd2.[[89]].*)
+-	shlibpath_overrides_runpath=no
+-	;;
+-      *)
+-	shlibpath_overrides_runpath=yes
+-	;;
+-      esac
+-  else
+-    shlibpath_overrides_runpath=yes
+-  fi
+-  ;;
+-
+-os2*)
+-  libname_spec='$name'
+-  shrext_cmds=".dll"
+-  need_lib_prefix=no
+-  library_names_spec='$libname${shared_ext} $libname.a'
+-  dynamic_linker='OS/2 ld.exe'
+-  shlibpath_var=LIBPATH
+-  ;;
+-
+-osf3* | osf4* | osf5*)
+-  version_type=osf
+-  need_lib_prefix=no
+-  need_version=no
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+-  ;;
+-
+-rdos*)
+-  dynamic_linker=no
+-  ;;
+-
+-solaris*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  hardcode_into_libs=yes
+-  # ldd complains unless libraries are executable
+-  postinstall_cmds='chmod +x $lib'
+-  ;;
+-
+-sunos4*)
+-  version_type=sunos
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  if test "$with_gnu_ld" = yes; then
+-    need_lib_prefix=no
+-  fi
+-  need_version=yes
+-  ;;
+-
+-sysv4 | sysv4.3*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  case $host_vendor in
+-    sni)
+-      shlibpath_overrides_runpath=no
+-      need_lib_prefix=no
+-      runpath_var=LD_RUN_PATH
+-      ;;
+-    siemens)
+-      need_lib_prefix=no
+-      ;;
+-    motorola)
+-      need_lib_prefix=no
+-      need_version=no
+-      shlibpath_overrides_runpath=no
+-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+-      ;;
+-  esac
+-  ;;
+-
+-sysv4*MP*)
+-  if test -d /usr/nec ;then
+-    version_type=linux
+-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+-    soname_spec='$libname${shared_ext}.$major'
+-    shlibpath_var=LD_LIBRARY_PATH
+-  fi
+-  ;;
+-
+-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+-  version_type=freebsd-elf
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  hardcode_into_libs=yes
+-  if test "$with_gnu_ld" = yes; then
+-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+-  else
+-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+-    case $host_os in
+-      sco3.2v5*)
+-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+-	;;
+-    esac
+-  fi
+-  sys_lib_dlsearch_path_spec='/usr/lib'
+-  ;;
+-
+-tpf*)
+-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  ;;
+-
+-uts4*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-*)
+-  dynamic_linker=no
+-  ;;
+-esac
+-AC_MSG_RESULT([$dynamic_linker])
+-test "$dynamic_linker" = no && can_build_shared=no
+-
+-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+-if test "$GCC" = yes; then
+-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+-fi
+-
+-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+-fi
+-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+-fi
+-
+-_LT_DECL([], [variables_saved_for_relink], [1],
+-    [Variables whose values should be saved in libtool wrapper scripts and
+-    restored at link time])
+-_LT_DECL([], [need_lib_prefix], [0],
+-    [Do we need the "lib" prefix for modules?])
+-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+-_LT_DECL([], [version_type], [0], [Library versioning type])
+-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+-_LT_DECL([], [shlibpath_overrides_runpath], [0],
+-    [Is shlibpath searched before the hard-coded library search path?])
+-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+-_LT_DECL([], [library_names_spec], [1],
+-    [[List of archive names.  First name is the real one, the rest are links.
+-    The last name is the one that the linker finds with -lNAME]])
+-_LT_DECL([], [soname_spec], [1],
+-    [[The coded name of the library, if different from the real name]])
+-_LT_DECL([], [postinstall_cmds], [2],
+-    [Command to use after installation of a shared archive])
+-_LT_DECL([], [postuninstall_cmds], [2],
+-    [Command to use after uninstallation of a shared archive])
+-_LT_DECL([], [finish_cmds], [2],
+-    [Commands used to finish a libtool library installation in a directory])
+-_LT_DECL([], [finish_eval], [1],
+-    [[As "finish_cmds", except a single script fragment to be evaled but
+-    not shown]])
+-_LT_DECL([], [hardcode_into_libs], [0],
+-    [Whether we should hardcode library paths into libraries])
+-_LT_DECL([], [sys_lib_search_path_spec], [2],
+-    [Compile-time system search path for libraries])
+-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+-    [Run-time system search path for libraries])
+-])# _LT_SYS_DYNAMIC_LINKER
+-
+-
+-# _LT_PATH_TOOL_PREFIX(TOOL)
+-# --------------------------
+-# find a file program which can recognize shared library
+-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+-[m4_require([_LT_DECL_EGREP])dnl
+-AC_MSG_CHECKING([for $1])
+-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+-[case $MAGIC_CMD in
+-[[\\/*] |  ?:[\\/]*])
+-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+-  ;;
+-*)
+-  lt_save_MAGIC_CMD="$MAGIC_CMD"
+-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-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="m4_if([$2], , $PATH, [$2])"
+-  for ac_dir in $ac_dummy; do
+-    IFS="$lt_save_ifs"
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$1; then
+-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+-      if test -n "$file_magic_test_file"; then
+-	case $deplibs_check_method in
+-	"file_magic "*)
+-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+-	    $EGREP "$file_magic_regex" > /dev/null; then
+-	    :
+-	  else
+-	    cat <<_LT_EOF 1>&2
+-
+-*** Warning: the command libtool uses to detect shared libraries,
+-*** $file_magic_cmd, produces output that libtool cannot recognize.
+-*** The result is that libtool may fail to recognize shared libraries
+-*** as such.  This will affect the creation of libtool libraries that
+-*** depend on shared libraries, but programs linked with such libtool
+-*** libraries will work regardless of this problem.  Nevertheless, you
+-*** may want to report the problem to your system manager and/or to
+-*** bug-libtool at gnu.org
+-
+-_LT_EOF
+-	  fi ;;
+-	esac
+-      fi
+-      break
+-    fi
+-  done
+-  IFS="$lt_save_ifs"
+-  MAGIC_CMD="$lt_save_MAGIC_CMD"
+-  ;;
+-esac])
+-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+-if test -n "$MAGIC_CMD"; then
+-  AC_MSG_RESULT($MAGIC_CMD)
+-else
+-  AC_MSG_RESULT(no)
+-fi
+-_LT_DECL([], [MAGIC_CMD], [0],
+-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+-])# _LT_PATH_TOOL_PREFIX
+-
+-# Old name:
+-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+-
+-
+-# _LT_PATH_MAGIC
+-# --------------
+-# find a file program which can recognize a shared library
+-m4_defun([_LT_PATH_MAGIC],
+-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+-if test -z "$lt_cv_path_MAGIC_CMD"; then
+-  if test -n "$ac_tool_prefix"; then
+-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+-  else
+-    MAGIC_CMD=:
+-  fi
+-fi
+-])# _LT_PATH_MAGIC
+-
+-
+-# LT_PATH_LD
+-# ----------
+-# find the pathname to the GNU or non-GNU linker
+-AC_DEFUN([LT_PATH_LD],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-m4_require([_LT_DECL_SED])dnl
+-m4_require([_LT_DECL_EGREP])dnl
+-
+-AC_ARG_WITH([gnu-ld],
+-    [AS_HELP_STRING([--with-gnu-ld],
+-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+-    [test "$withval" = no || with_gnu_ld=yes],
+-    [with_gnu_ld=no])dnl
+-
+-ac_prog=ld
+-if test "$GCC" = yes; then
+-  # Check if gcc -print-prog-name=ld gives a path.
+-  AC_MSG_CHECKING([for ld used by $CC])
+-  case $host in
+-  *-*-mingw*)
+-    # gcc leaves a trailing carriage return which upsets mingw
+-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+-  *)
+-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+-  esac
+-  case $ac_prog in
+-    # Accept absolute paths.
+-    [[\\/]]* | ?:[[\\/]]*)
+-      re_direlt='/[[^/]][[^/]]*/\.\./'
+-      # Canonicalize the pathname of ld
+-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+-      done
+-      test -z "$LD" && LD="$ac_prog"
+-      ;;
+-  "")
+-    # If it fails, then pretend we aren't using GCC.
+-    ac_prog=ld
+-    ;;
+-  *)
+-    # If it is relative, then search for the first ld in PATH.
+-    with_gnu_ld=unknown
+-    ;;
+-  esac
+-elif test "$with_gnu_ld" = yes; then
+-  AC_MSG_CHECKING([for GNU ld])
+-else
+-  AC_MSG_CHECKING([for non-GNU ld])
+-fi
+-AC_CACHE_VAL(lt_cv_path_LD,
+-[if test -z "$LD"; then
+-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-  for ac_dir in $PATH; do
+-    IFS="$lt_save_ifs"
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+-      lt_cv_path_LD="$ac_dir/$ac_prog"
+-      # Check to see if the program is GNU ld.  I'd rather use --version,
+-      # but apparently some variants of GNU ld only accept -v.
+-      # Break only if it was the GNU/non-GNU ld that we prefer.
+-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+-      *GNU* | *'with BFD'*)
+-	test "$with_gnu_ld" != no && break
+-	;;
+-      *)
+-	test "$with_gnu_ld" != yes && break
+-	;;
+-      esac
+-    fi
+-  done
+-  IFS="$lt_save_ifs"
+-else
+-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+-fi])
+-LD="$lt_cv_path_LD"
+-if test -n "$LD"; then
+-  AC_MSG_RESULT($LD)
+-else
+-  AC_MSG_RESULT(no)
+-fi
+-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+-_LT_PATH_LD_GNU
+-AC_SUBST([LD])
+-
+-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+-])# LT_PATH_LD
+-
+-# Old names:
+-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AM_PROG_LD], [])
+-dnl AC_DEFUN([AC_PROG_LD], [])
+-
+-
+-# _LT_PATH_LD_GNU
+-#- --------------
+-m4_defun([_LT_PATH_LD_GNU],
+-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+-case `$LD -v 2>&1 </dev/null` in
+-*GNU* | *'with BFD'*)
+-  lt_cv_prog_gnu_ld=yes
+-  ;;
+-*)
+-  lt_cv_prog_gnu_ld=no
+-  ;;
+-esac])
+-with_gnu_ld=$lt_cv_prog_gnu_ld
+-])# _LT_PATH_LD_GNU
+-
+-
+-# _LT_CMD_RELOAD
+-# --------------
+-# find reload flag for linker
+-#   -- PORTME Some linkers may need a different reload flag.
+-m4_defun([_LT_CMD_RELOAD],
+-[AC_CACHE_CHECK([for $LD option to reload object files],
+-  lt_cv_ld_reload_flag,
+-  [lt_cv_ld_reload_flag='-r'])
+-reload_flag=$lt_cv_ld_reload_flag
+-case $reload_flag in
+-"" | " "*) ;;
+-*) reload_flag=" $reload_flag" ;;
+-esac
+-reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-case $host_os in
+-  darwin*)
+-    if test "$GCC" = yes; then
+-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+-    else
+-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-    fi
+-    ;;
+-esac
+-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+-_LT_DECL([], [reload_cmds], [2])dnl
+-])# _LT_CMD_RELOAD
+-
+-
+-# _LT_CHECK_MAGIC_METHOD
+-# ----------------------
+-# how to check for library dependencies
+-#  -- PORTME fill in with the dynamic library characteristics
+-m4_defun([_LT_CHECK_MAGIC_METHOD],
+-[m4_require([_LT_DECL_EGREP])
+-m4_require([_LT_DECL_OBJDUMP])
+-AC_CACHE_CHECK([how to recognize dependent libraries],
+-lt_cv_deplibs_check_method,
+-[lt_cv_file_magic_cmd='$MAGIC_CMD'
+-lt_cv_file_magic_test_file=
+-lt_cv_deplibs_check_method='unknown'
+-# Need to set the preceding variable on all platforms that support
+-# interlibrary dependencies.
+-# 'none' -- dependencies not supported.
+-# `unknown' -- same as none, but documents that we really don't know.
+-# 'pass_all' -- all dependencies passed with no checks.
+-# 'test_compile' -- check by making test program.
+-# 'file_magic [[regex]]' -- check by looking for files in library path
+-# which responds to the $file_magic_cmd with a given extended regex.
+-# If you have `file' or equivalent on your system and you're not sure
+-# whether `pass_all' will *always* work, you probably want this one.
+-
+-case $host_os in
+-aix[[4-9]]*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-beos*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-bsdi[[45]]*)
+-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+-  lt_cv_file_magic_cmd='/usr/bin/file -L'
+-  lt_cv_file_magic_test_file=/shlib/libc.so
+-  ;;
+-
+-cygwin*)
+-  # func_win32_libid is a shell function defined in ltmain.sh
+-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+-  lt_cv_file_magic_cmd='func_win32_libid'
+-  ;;
+-
+-mingw* | pw32*)
+-  # Base MSYS/MinGW do not provide the 'file' command needed by
+-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+-  # unless we find 'file', for example because we are cross-compiling.
+-  if ( file / ) >/dev/null 2>&1; then
+-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+-    lt_cv_file_magic_cmd='func_win32_libid'
+-  else
+-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+-    lt_cv_file_magic_cmd='$OBJDUMP -f'
+-  fi
+-  ;;
+-
+-cegcc)
+-  # use the weaker test based on 'objdump'. See mingw*.
+-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+-  lt_cv_file_magic_cmd='$OBJDUMP -f'
+-  ;;
+-
+-darwin* | rhapsody*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-freebsd* | dragonfly*)
+-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+-    case $host_cpu in
+-    i*86 )
+-      # Not sure whether the presence of OpenBSD here was a mistake.
+-      # Let's accept both of them until this is cleared up.
+-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+-      lt_cv_file_magic_cmd=/usr/bin/file
+-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+-      ;;
+-    esac
+-  else
+-    lt_cv_deplibs_check_method=pass_all
+-  fi
+-  ;;
+-
+-gnu*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-hpux10.20* | hpux11*)
+-  lt_cv_file_magic_cmd=/usr/bin/file
+-  case $host_cpu in
+-  ia64*)
+-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+-    ;;
+-  hppa*64*)
+-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+-    ;;
+-  *)
+-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+-    ;;
+-  esac
+-  ;;
+-
+-interix[[3-9]]*)
+-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+-  ;;
+-
+-irix5* | irix6* | nonstopux*)
+-  case $LD in
+-  *-32|*"-32 ") libmagic=32-bit;;
+-  *-n32|*"-n32 ") libmagic=N32;;
+-  *-64|*"-64 ") libmagic=64-bit;;
+-  *) libmagic=never-match;;
+-  esac
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-# This must be Linux ELF.
+-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-netbsd* | netbsdelf*-gnu)
+-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+-  else
+-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+-  fi
+-  ;;
+-
+-newos6*)
+-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+-  lt_cv_file_magic_cmd=/usr/bin/file
+-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+-  ;;
+-
+-*nto* | *qnx*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-openbsd*)
+-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+-  else
+-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+-  fi
+-  ;;
+-
+-osf3* | osf4* | osf5*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-rdos*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-solaris*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-
+-sysv4 | sysv4.3*)
+-  case $host_vendor in
+-  motorola)
+-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+-    ;;
+-  ncr)
+-    lt_cv_deplibs_check_method=pass_all
+-    ;;
+-  sequent)
+-    lt_cv_file_magic_cmd='/bin/file'
+-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+-    ;;
+-  sni)
+-    lt_cv_file_magic_cmd='/bin/file'
+-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+-    lt_cv_file_magic_test_file=/lib/libc.so
+-    ;;
+-  siemens)
+-    lt_cv_deplibs_check_method=pass_all
+-    ;;
+-  pc)
+-    lt_cv_deplibs_check_method=pass_all
+-    ;;
+-  esac
+-  ;;
+-
+-tpf*)
+-  lt_cv_deplibs_check_method=pass_all
+-  ;;
+-esac
+-])
+-file_magic_cmd=$lt_cv_file_magic_cmd
+-deplibs_check_method=$lt_cv_deplibs_check_method
+-test -z "$deplibs_check_method" && deplibs_check_method=unknown
+-
+-_LT_DECL([], [deplibs_check_method], [1],
+-    [Method to check whether dependent libraries are shared objects])
+-_LT_DECL([], [file_magic_cmd], [1],
+-    [Command to use when deplibs_check_method == "file_magic"])
+-])# _LT_CHECK_MAGIC_METHOD
+-
+-
+-# LT_PATH_NM
+-# ----------
+-# find the pathname to a BSD- or MS-compatible name lister
+-AC_DEFUN([LT_PATH_NM],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+-[if test -n "$NM"; then
+-  # Let the user override the test.
+-  lt_cv_path_NM="$NM"
+-else
+-  lt_nm_to_check="${ac_tool_prefix}nm"
+-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+-    lt_nm_to_check="$lt_nm_to_check nm"
+-  fi
+-  for lt_tmp_nm in $lt_nm_to_check; do
+-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+-      IFS="$lt_save_ifs"
+-      test -z "$ac_dir" && ac_dir=.
+-      tmp_nm="$ac_dir/$lt_tmp_nm"
+-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+-	# Check to see if the nm accepts a BSD-compat flag.
+-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+-	#   nm: unknown option "B" ignored
+-	# Tru64's nm complains that /dev/null is an invalid object file
+-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+-	*/dev/null* | *'Invalid file or object type'*)
+-	  lt_cv_path_NM="$tmp_nm -B"
+-	  break
+-	  ;;
+-	*)
+-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+-	  */dev/null*)
+-	    lt_cv_path_NM="$tmp_nm -p"
+-	    break
+-	    ;;
+-	  *)
+-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+-	    continue # so that we can try to find one that supports BSD flags
+-	    ;;
+-	  esac
+-	  ;;
+-	esac
+-      fi
+-    done
+-    IFS="$lt_save_ifs"
+-  done
+-  : ${lt_cv_path_NM=no}
+-fi])
+-if test "$lt_cv_path_NM" != "no"; then
+-  NM="$lt_cv_path_NM"
+-else
+-  # Didn't find any BSD compatible name lister, look for dumpbin.
+-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+-  AC_SUBST([DUMPBIN])
+-  if test "$DUMPBIN" != ":"; then
+-    NM="$DUMPBIN"
+-  fi
+-fi
+-test -z "$NM" && NM=nm
+-AC_SUBST([NM])
+-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+-
+-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+-  [lt_cv_nm_interface="BSD nm"
+-  echo "int some_variable = 0;" > conftest.$ac_ext
+-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+-  (eval "$ac_compile" 2>conftest.err)
+-  cat conftest.err >&AS_MESSAGE_LOG_FD
+-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+-  cat conftest.err >&AS_MESSAGE_LOG_FD
+-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+-  cat conftest.out >&AS_MESSAGE_LOG_FD
+-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+-    lt_cv_nm_interface="MS dumpbin"
+-  fi
+-  rm -f conftest*])
+-])# LT_PATH_NM
+-
+-# Old names:
+-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AM_PROG_NM], [])
+-dnl AC_DEFUN([AC_PROG_NM], [])
+-
+-
+-# LT_LIB_M
+-# --------
+-# check for math library
+-AC_DEFUN([LT_LIB_M],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-LIBM=
+-case $host in
+-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+-  # These system don't have libm, or don't need it
+-  ;;
+-*-ncr-sysv4.3*)
+-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+-  ;;
+-*)
+-  AC_CHECK_LIB(m, cos, LIBM="-lm")
+-  ;;
+-esac
+-AC_SUBST([LIBM])
+-])# LT_LIB_M
+-
+-# Old name:
+-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_CHECK_LIBM], [])
+-
+-
+-# _LT_COMPILER_NO_RTTI([TAGNAME])
+-# -------------------------------
+-m4_defun([_LT_COMPILER_NO_RTTI],
+-[m4_require([_LT_TAG_COMPILER])dnl
+-
+-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-
+-if test "$GCC" = yes; then
+-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-
+-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+-    lt_cv_prog_compiler_rtti_exceptions,
+-    [-fno-rtti -fno-exceptions], [],
+-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+-fi
+-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+-	[Compiler flag to turn off builtin functions])
+-])# _LT_COMPILER_NO_RTTI
+-
+-
+-# _LT_CMD_GLOBAL_SYMBOLS
+-# ----------------------
+-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([LT_PATH_NM])dnl
+-AC_REQUIRE([LT_PATH_LD])dnl
+-m4_require([_LT_DECL_SED])dnl
+-m4_require([_LT_DECL_EGREP])dnl
+-m4_require([_LT_TAG_COMPILER])dnl
+-
+-# Check for command to grab the raw symbol name followed by C symbol from nm.
+-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+-[
+-# These are sane defaults that work on at least a few old systems.
+-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+-
+-# Character class describing NM global symbol codes.
+-symcode='[[BCDEGRST]]'
+-
+-# Regexp to match symbols that can be accessed directly from C.
+-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+-
+-# Define system-specific variables.
+-case $host_os in
+-aix*)
+-  symcode='[[BCDT]]'
+-  ;;
+-cygwin* | mingw* | pw32* | cegcc*)
+-  symcode='[[ABCDGISTW]]'
+-  ;;
+-hpux*)
+-  if test "$host_cpu" = ia64; then
+-    symcode='[[ABCDEGRST]]'
+-  fi
+-  ;;
+-irix* | nonstopux*)
+-  symcode='[[BCDEGRST]]'
+-  ;;
+-osf*)
+-  symcode='[[BCDEGQRST]]'
+-  ;;
+-solaris*)
+-  symcode='[[BDRT]]'
+-  ;;
+-sco3.2v5*)
+-  symcode='[[DT]]'
+-  ;;
+-sysv4.2uw2*)
+-  symcode='[[DT]]'
+-  ;;
+-sysv5* | sco5v6* | unixware* | OpenUNIX*)
+-  symcode='[[ABDT]]'
+-  ;;
+-sysv4)
+-  symcode='[[DFNSTU]]'
+-  ;;
+-esac
+-
+-# If we're using GNU nm, then use its standard symbol codes.
+-case `$NM -V 2>&1` in
+-*GNU* | *'with BFD'*)
+-  symcode='[[ABCDGIRSTW]]' ;;
+-esac
+-
+-# Transform an extracted symbol line into a proper C declaration.
+-# Some systems (esp. on ia64) link data and code symbols differently,
+-# so use this general approach.
+-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+-
+-# Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+-
+-# Handle CRLF in mingw tool chain
+-opt_cr=
+-case $build_os in
+-mingw*)
+-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+-  ;;
+-esac
+-
+-# Try without a prefix underscore, then with it.
+-for ac_symprfx in "" "_"; do
+-
+-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+-  symxfrm="\\1 $ac_symprfx\\2 \\2"
+-
+-  # Write the raw and C identifiers.
+-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+-    # Fake it for dumpbin and say T for any non-static function
+-    # and D for any global variable.
+-    # Also find C++ and __fastcall symbols from MSVC++,
+-    # which start with @ or ?.
+-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+-"     {last_section=section; section=\$ 3};"\
+-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+-"     \$ 0!~/External *\|/{next};"\
+-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+-"     {if(hide[section]) next};"\
+-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+-"     ' prfx=^$ac_symprfx]"
+-  else
+-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+-  fi
+-
+-  # Check to see that the pipe works correctly.
+-  pipe_works=no
+-
+-  rm -f conftest*
+-  cat > conftest.$ac_ext <<_LT_EOF
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-char nm_test_var;
+-void nm_test_func(void);
+-void nm_test_func(void){}
+-#ifdef __cplusplus
+-}
+-#endif
+-int main(){nm_test_var='a';nm_test_func();return(0);}
+-_LT_EOF
+-
+-  if AC_TRY_EVAL(ac_compile); then
+-    # Now try to grab the symbols.
+-    nlist=conftest.nm
+-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+-      # Try sorting and uniquifying the output.
+-      if sort "$nlist" | uniq > "$nlist"T; then
+-	mv -f "$nlist"T "$nlist"
+-      else
+-	rm -f "$nlist"T
+-      fi
+-
+-      # Make sure that we snagged all the symbols we need.
+-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+-	  cat <<_LT_EOF > conftest.$ac_ext
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-_LT_EOF
+-	  # Now generate the symbol file.
+-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+-
+-	  cat <<_LT_EOF >> conftest.$ac_ext
+-
+-/* The mapping between symbol names and symbols.  */
+-const struct {
+-  const char *name;
+-  void       *address;
+-}
+-lt__PROGRAM__LTX_preloaded_symbols[[]] =
+-{
+-  { "@PROGRAM@", (void *) 0 },
+-_LT_EOF
+-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+-	  cat <<\_LT_EOF >> conftest.$ac_ext
+-  {0, (void *) 0}
+-};
+-
+-/* This works around a problem in FreeBSD linker */
+-#ifdef FREEBSD_WORKAROUND
+-static const void *lt_preloaded_setup() {
+-  return lt__PROGRAM__LTX_preloaded_symbols;
+-}
+-#endif
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-_LT_EOF
+-	  # Now try linking the two files.
+-	  mv conftest.$ac_objext conftstm.$ac_objext
+-	  lt_save_LIBS="$LIBS"
+-	  lt_save_CFLAGS="$CFLAGS"
+-	  LIBS="conftstm.$ac_objext"
+-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+-	    pipe_works=yes
+-	  fi
+-	  LIBS="$lt_save_LIBS"
+-	  CFLAGS="$lt_save_CFLAGS"
+-	else
+-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+-	fi
+-      else
+-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+-      fi
+-    else
+-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+-    fi
+-  else
+-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+-    cat conftest.$ac_ext >&5
+-  fi
+-  rm -rf conftest* conftst*
+-
+-  # Do not use the global_symbol_pipe unless it works.
+-  if test "$pipe_works" = yes; then
+-    break
+-  else
+-    lt_cv_sys_global_symbol_pipe=
+-  fi
+-done
+-])
+-if test -z "$lt_cv_sys_global_symbol_pipe"; then
+-  lt_cv_sys_global_symbol_to_cdecl=
+-fi
+-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+-  AC_MSG_RESULT(failed)
+-else
+-  AC_MSG_RESULT(ok)
+-fi
+-
+-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+-    [Take the output of nm and produce a listing of raw symbols and C names])
+-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+-    [Transform the output of nm in a proper C declaration])
+-_LT_DECL([global_symbol_to_c_name_address],
+-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+-    [Transform the output of nm in a C name address pair])
+-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+-    [Transform the output of nm in a C name address pair when lib prefix is needed])
+-]) # _LT_CMD_GLOBAL_SYMBOLS
+-
+-
+-# _LT_COMPILER_PIC([TAGNAME])
+-# ---------------------------
+-m4_defun([_LT_COMPILER_PIC],
+-[m4_require([_LT_TAG_COMPILER])dnl
+-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-_LT_TAGVAR(lt_prog_compiler_static, $1)=
+-
+-AC_MSG_CHECKING([for $compiler option to produce PIC])
+-m4_if([$1], [CXX], [
+-  # C++ specific cases for pic, static, wl, etc.
+-  if test "$GXX" = yes; then
+-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+-    case $host_os in
+-    aix*)
+-      # All AIX code is PIC.
+-      if test "$host_cpu" = ia64; then
+-	# AIX 5 now supports IA64 processor
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      fi
+-      ;;
+-
+-    amigaos*)
+-      case $host_cpu in
+-      powerpc)
+-            # see comment about AmigaOS4 .so support
+-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-        ;;
+-      m68k)
+-            # FIXME: we need at least 68020 code to build shared libraries, but
+-            # adding the `-m68020' flag to GCC prevents building anything better,
+-            # like `-m68040'.
+-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-      esac
+-      ;;
+-
+-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-      # PIC is the default for these OSes.
+-      ;;
+-    mingw* | cygwin* | os2* | pw32* | cegcc*)
+-      # This hack is so that the source file can tell whether it is being
+-      # built for inclusion in a dll (and should export symbols for example).
+-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+-      # (--disable-auto-import) libraries
+-      m4_if([$1], [GCJ], [],
+-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+-      ;;
+-    darwin* | rhapsody*)
+-      # PIC is the default on this platform
+-      # Common symbols not allowed in MH_DYLIB files
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+-      ;;
+-    *djgpp*)
+-      # DJGPP does not support shared libraries at all
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-      ;;
+-    interix[[3-9]]*)
+-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+-      # Instead, we relocate shared libraries at runtime.
+-      ;;
+-    sysv4*MP*)
+-      if test -d /usr/nec; then
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+-      fi
+-      ;;
+-    hpux*)
+-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+-      # sets the default TLS model and affects inlining.
+-      case $host_cpu in
+-      hppa*64*)
+-	;;
+-      *)
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-	;;
+-      esac
+-      ;;
+-    *qnx* | *nto*)
+-      # QNX uses GNU C++, but need to define -shared option too, otherwise
+-      # it will coredump.
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+-      ;;
+-    *)
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-      ;;
+-    esac
+-  else
+-    case $host_os in
+-      aix[[4-9]]*)
+-	# All AIX code is PIC.
+-	if test "$host_cpu" = ia64; then
+-	  # AIX 5 now supports IA64 processor
+-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	else
+-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+-	fi
+-	;;
+-      chorus*)
+-	case $cc_basename in
+-	cxch68*)
+-	  # Green Hills C++ Compiler
+-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+-	  ;;
+-	esac
+-	;;
+-      dgux*)
+-	case $cc_basename in
+-	  ec++*)
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	    ;;
+-	  ghcx*)
+-	    # Green Hills C++ Compiler
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      freebsd* | dragonfly*)
+-	# FreeBSD uses GNU C++
+-	;;
+-      hpux9* | hpux10* | hpux11*)
+-	case $cc_basename in
+-	  CC*)
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+-	    if test "$host_cpu" != ia64; then
+-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+-	    fi
+-	    ;;
+-	  aCC*)
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+-	    case $host_cpu in
+-	    hppa*64*|ia64*)
+-	      # +Z the default
+-	      ;;
+-	    *)
+-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+-	      ;;
+-	    esac
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      interix*)
+-	# This is c89, which is MS Visual C++ (no shared libs)
+-	# Anyone wants to do a port?
+-	;;
+-      irix5* | irix6* | nonstopux*)
+-	case $cc_basename in
+-	  CC*)
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-	    # CC pic flag -KPIC is the default.
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+-	case $cc_basename in
+-	  KCC*)
+-	    # KAI C++ Compiler
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-	    ;;
+-	  ecpc* )
+-	    # old Intel C++ for x86_64 which still supported -KPIC.
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-	    ;;
+-	  icpc* )
+-	    # Intel C++, used to be incompatible with GCC.
+-	    # ICC 10 doesn't accept -KPIC any more.
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-	    ;;
+-	  pgCC* | pgcpp*)
+-	    # Portland Group C++ compiler
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	    ;;
+-	  cxx*)
+-	    # Compaq C++
+-	    # Make sure the PIC flag is empty.  It appears that all Alpha
+-	    # Linux and Compaq Tru64 Unix objects are PIC.
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-	    ;;
+-	  xlc* | xlC*)
+-	    # IBM XL 8.0 on PPC
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+-	    ;;
+-	  *)
+-	    case `$CC -V 2>&1 | sed 5q` in
+-	    *Sun\ C*)
+-	      # Sun C++ 5.9
+-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+-	      ;;
+-	    esac
+-	    ;;
+-	esac
+-	;;
+-      lynxos*)
+-	;;
+-      m88k*)
+-	;;
+-      mvs*)
+-	case $cc_basename in
+-	  cxx*)
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      netbsd* | netbsdelf*-gnu)
+-	;;
+-      *qnx* | *nto*)
+-        # QNX uses GNU C++, but need to define -shared option too, otherwise
+-        # it will coredump.
+-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+-        ;;
+-      osf3* | osf4* | osf5*)
+-	case $cc_basename in
+-	  KCC*)
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+-	    ;;
+-	  RCC*)
+-	    # Rational C++ 2.4.1
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+-	    ;;
+-	  cxx*)
+-	    # Digital/Compaq C++
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    # Make sure the PIC flag is empty.  It appears that all Alpha
+-	    # Linux and Compaq Tru64 Unix objects are PIC.
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      psos*)
+-	;;
+-      solaris*)
+-	case $cc_basename in
+-	  CC*)
+-	    # Sun C++ 4.2, 5.x and Centerline C++
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+-	    ;;
+-	  gcx*)
+-	    # Green Hills C++ Compiler
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      sunos4*)
+-	case $cc_basename in
+-	  CC*)
+-	    # Sun C++ 4.x
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	    ;;
+-	  lcc*)
+-	    # Lucid
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+-	case $cc_basename in
+-	  CC*)
+-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	    ;;
+-	esac
+-	;;
+-      tandem*)
+-	case $cc_basename in
+-	  NCC*)
+-	    # NonStop-UX NCC 3.20
+-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	    ;;
+-	  *)
+-	    ;;
+-	esac
+-	;;
+-      vxworks*)
+-	;;
+-      *)
+-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+-	;;
+-    esac
+-  fi
+-],
+-[
+-  if test "$GCC" = yes; then
+-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+-    case $host_os in
+-      aix*)
+-      # All AIX code is PIC.
+-      if test "$host_cpu" = ia64; then
+-	# AIX 5 now supports IA64 processor
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      fi
+-      ;;
+-
+-    amigaos*)
+-      case $host_cpu in
+-      powerpc)
+-            # see comment about AmigaOS4 .so support
+-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-        ;;
+-      m68k)
+-            # FIXME: we need at least 68020 code to build shared libraries, but
+-            # adding the `-m68020' flag to GCC prevents building anything better,
+-            # like `-m68040'.
+-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-      esac
+-      ;;
+-
+-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-      # PIC is the default for these OSes.
+-      ;;
+-
+-    mingw* | cygwin* | pw32* | os2* | cegcc*)
+-      # This hack is so that the source file can tell whether it is being
+-      # built for inclusion in a dll (and should export symbols for example).
+-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+-      # (--disable-auto-import) libraries
+-      m4_if([$1], [GCJ], [],
+-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+-      ;;
+-
+-    darwin* | rhapsody*)
+-      # PIC is the default on this platform
+-      # Common symbols not allowed in MH_DYLIB files
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+-      ;;
+-
+-    hpux*)
+-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+-      # sets the default TLS model and affects inlining.
+-      case $host_cpu in
+-      hppa*64*)
+-	# +Z the default
+-	;;
+-      *)
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-	;;
+-      esac
+-      ;;
+-
+-    interix[[3-9]]*)
+-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+-      # Instead, we relocate shared libraries at runtime.
+-      ;;
+-
+-    msdosdjgpp*)
+-      # Just because we use GCC doesn't mean we suddenly get shared libraries
+-      # on systems that don't support them.
+-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+-      enable_shared=no
+-      ;;
+-
+-    *nto* | *qnx*)
+-      # QNX uses GNU C++, but need to define -shared option too, otherwise
+-      # it will coredump.
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+-      ;;
+-
+-    sysv4*MP*)
+-      if test -d /usr/nec; then
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+-      fi
+-      ;;
+-
+-    *)
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-      ;;
+-    esac
+-  else
+-    # PORTME Check for flag to pass linker flags through the system compiler.
+-    case $host_os in
+-    aix*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      if test "$host_cpu" = ia64; then
+-	# AIX 5 now supports IA64 processor
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      else
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+-      fi
+-      ;;
+-
+-    mingw* | cygwin* | pw32* | os2* | cegcc*)
+-      # This hack is so that the source file can tell whether it is being
+-      # built for inclusion in a dll (and should export symbols for example).
+-      m4_if([$1], [GCJ], [],
+-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+-      ;;
+-
+-    hpux9* | hpux10* | hpux11*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+-      # not for PA HP-UX.
+-      case $host_cpu in
+-      hppa*64*|ia64*)
+-	# +Z the default
+-	;;
+-      *)
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+-	;;
+-      esac
+-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+-      ;;
+-
+-    irix5* | irix6* | nonstopux*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      # PIC (with -KPIC) is the default.
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-      ;;
+-
+-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+-      case $cc_basename in
+-      # old Intel for x86_64 which still supported -KPIC.
+-      ecc*)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-        ;;
+-      # icc used to be incompatible with GCC.
+-      # ICC 10 doesn't accept -KPIC any more.
+-      icc* | ifort*)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-        ;;
+-      # Lahey Fortran 8.1.
+-      lf95*)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+-	;;
+-      pgcc* | pgf77* | pgf90* | pgf95*)
+-        # Portland Group compilers (*not* the Pentium gcc compiler,
+-	# which looks to be a dead project)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-        ;;
+-      ccc*)
+-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-        # All Alpha code is PIC.
+-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-        ;;
+-      xl*)
+-	# IBM XL C 8.0/Fortran 10.1 on PPC
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+-	;;
+-      *)
+-	case `$CC -V 2>&1 | sed 5q` in
+-	*Sun\ C*)
+-	  # Sun C 5.9
+-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-	  ;;
+-	*Sun\ F*)
+-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+-	  ;;
+-	esac
+-	;;
+-      esac
+-      ;;
+-
+-    newsos6)
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      ;;
+-
+-    *nto* | *qnx*)
+-      # QNX uses GNU C++, but need to define -shared option too, otherwise
+-      # it will coredump.
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+-      ;;
+-
+-    osf3* | osf4* | osf5*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      # All OSF/1 code is PIC.
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-      ;;
+-
+-    rdos*)
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+-      ;;
+-
+-    solaris*)
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      case $cc_basename in
+-      f77* | f90* | f95*)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+-      *)
+-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+-      esac
+-      ;;
+-
+-    sunos4*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      ;;
+-
+-    sysv4 | sysv4.2uw2* | sysv4.3*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      ;;
+-
+-    sysv4*MP*)
+-      if test -d /usr/nec ;then
+-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      fi
+-      ;;
+-
+-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      ;;
+-
+-    unicos*)
+-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+-      ;;
+-
+-    uts4*)
+-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+-      ;;
+-
+-    *)
+-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+-      ;;
+-    esac
+-  fi
+-])
+-case $host_os in
+-  # For platforms which do not support PIC, -DPIC is meaningless:
+-  *djgpp*)
+-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-    ;;
+-  *)
+-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+-    ;;
+-esac
+-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+-	[How to pass a linker flag through the compiler])
+-
+-#
+-# Check to make sure the PIC flag actually works.
+-#
+-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+-     "" | " "*) ;;
+-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+-     esac],
+-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+-fi
+-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+-	[Additional compiler flags for building library objects])
+-
+-#
+-# Check to make sure the static flag actually works.
+-#
+-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+-  $lt_tmp_static_flag,
+-  [],
+-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+-	[Compiler flag to prevent dynamic linking])
+-])# _LT_COMPILER_PIC
+-
+-
+-# _LT_LINKER_SHLIBS([TAGNAME])
+-# ----------------------------
+-# See if the linker supports building shared libraries.
+-m4_defun([_LT_LINKER_SHLIBS],
+-[AC_REQUIRE([LT_PATH_LD])dnl
+-AC_REQUIRE([LT_PATH_NM])dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_DECL_EGREP])dnl
+-m4_require([_LT_DECL_SED])dnl
+-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+-m4_require([_LT_TAG_COMPILER])dnl
+-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-m4_if([$1], [CXX], [
+-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+-  case $host_os in
+-  aix[[4-9]]*)
+-    # If we're using GNU nm, then we don't want the "-C" option.
+-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+-    else
+-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+-    fi
+-    ;;
+-  pw32*)
+-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+-  ;;
+-  cygwin* | mingw* | cegcc*)
+-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+-  ;;
+-  linux* | k*bsd*-gnu)
+-    _LT_TAGVAR(link_all_deplibs, $1)=no
+-  ;;
+-  *)
+-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+-  ;;
+-  esac
+-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+-], [
+-  runpath_var=
+-  _LT_TAGVAR(allow_undefined_flag, $1)=
+-  _LT_TAGVAR(always_export_symbols, $1)=no
+-  _LT_TAGVAR(archive_cmds, $1)=
+-  _LT_TAGVAR(archive_expsym_cmds, $1)=
+-  _LT_TAGVAR(compiler_needs_object, $1)=no
+-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+-  _LT_TAGVAR(hardcode_automatic, $1)=no
+-  _LT_TAGVAR(hardcode_direct, $1)=no
+-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+-  _LT_TAGVAR(hardcode_minus_L, $1)=no
+-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+-  _LT_TAGVAR(inherit_rpath, $1)=no
+-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+-  _LT_TAGVAR(module_cmds, $1)=
+-  _LT_TAGVAR(module_expsym_cmds, $1)=
+-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+-  # include_expsyms should be a list of space-separated symbols to be *always*
+-  # included in the symbol list
+-  _LT_TAGVAR(include_expsyms, $1)=
+-  # exclude_expsyms can be an extended regexp of symbols to exclude
+-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+-  # as well as any symbol that contains `d'.
+-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+-  # platforms (ab)use it in PIC code, but their linkers get confused if
+-  # the symbol is explicitly referenced.  Since portable code cannot
+-  # rely on this symbol name, it's probably fine to never include it in
+-  # preloaded symbol tables.
+-  # Exclude shared library initialization/finalization symbols.
+-dnl Note also adjust exclude_expsyms for C++ above.
+-  extract_expsyms_cmds=
+-
+-  case $host_os in
+-  cygwin* | mingw* | pw32* | cegcc*)
+-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+-    # When not using gcc, we currently assume that we are using
+-    # Microsoft Visual C++.
+-    if test "$GCC" != yes; then
+-      with_gnu_ld=no
+-    fi
+-    ;;
+-  interix*)
+-    # we just hope/assume this is gcc and not c89 (= MSVC++)
+-    with_gnu_ld=yes
+-    ;;
+-  openbsd*)
+-    with_gnu_ld=no
+-    ;;
+-  linux* | k*bsd*-gnu)
+-    _LT_TAGVAR(link_all_deplibs, $1)=no
+-    ;;
+-  esac
+-
+-  _LT_TAGVAR(ld_shlibs, $1)=yes
+-  if test "$with_gnu_ld" = yes; then
+-    # If archive_cmds runs LD, not CC, wlarc should be empty
+-    wlarc='${wl}'
+-
+-    # Set some defaults for GNU ld with shared library support. These
+-    # are reset later if shared libraries are not supported. Putting them
+-    # here allows them to be overridden if necessary.
+-    runpath_var=LD_RUN_PATH
+-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-    # ancient GNU ld didn't support --whole-archive et. al.
+-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+-    else
+-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+-    fi
+-    supports_anon_versioning=no
+-    case `$LD -v 2>&1` in
+-      *GNU\ gold*) supports_anon_versioning=yes ;;
+-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+-      *\ 2.11.*) ;; # other 2.11 versions
+-      *) supports_anon_versioning=yes ;;
+-    esac
+-
+-    # See if GNU ld supports shared libraries.
+-    case $host_os in
+-    aix[[3-9]]*)
+-      # On AIX/PPC, the GNU linker is very broken
+-      if test "$host_cpu" != ia64; then
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-	cat <<_LT_EOF 1>&2
+-
+-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+-*** to be unable to reliably create shared libraries on AIX.
+-*** Therefore, libtool is disabling shared libraries support.  If you
+-*** really care for shared libraries, you may want to modify your PATH
+-*** so that a non-GNU linker is found, and then restart.
+-
+-_LT_EOF
+-      fi
+-      ;;
+-
+-    amigaos*)
+-      case $host_cpu in
+-      powerpc)
+-            # see comment about AmigaOS4 .so support
+-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+-        ;;
+-      m68k)
+-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-        ;;
+-      esac
+-      ;;
+-
+-    beos*)
+-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+-	# support --undefined.  This deserves some investigation.  FIXME
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-      else
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-
+-    cygwin* | mingw* | pw32* | cegcc*)
+-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+-      # as there is no search path for DLLs.
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-      _LT_TAGVAR(always_export_symbols, $1)=no
+-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+-
+-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-	# If the export-symbols file already is a .def file (1st line
+-	# is EXPORTS), use it as is; otherwise, prepend...
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-	  cp $export_symbols $output_objdir/$soname.def;
+-	else
+-	  echo EXPORTS > $output_objdir/$soname.def;
+-	  cat $export_symbols >> $output_objdir/$soname.def;
+-	fi~
+-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-      else
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-
+-    interix[[3-9]]*)
+-      _LT_TAGVAR(hardcode_direct, $1)=no
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+-      # Instead, shared libraries are loaded at an image base (0x10000000 by
+-      # default) and relocated if they conflict, which is a slow very memory
+-      # consuming and fragmenting process.  To avoid this, we pick a random,
+-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+-      ;;
+-
+-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+-      tmp_diet=no
+-      if test "$host_os" = linux-dietlibc; then
+-	case $cc_basename in
+-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+-	esac
+-      fi
+-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+-	 && test "$tmp_diet" = no
+-      then
+-	tmp_addflag=
+-	tmp_sharedflag='-shared'
+-	case $cc_basename,$host_cpu in
+-        pgcc*)				# Portland Group C compiler
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+-	  tmp_addflag=' $pic_flag'
+-	  ;;
+-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+-	  tmp_addflag=' $pic_flag -Mnomain' ;;
+-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+-	  tmp_addflag=' -i_dynamic' ;;
+-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+-	ifc* | ifort*)			# Intel Fortran compiler
+-	  tmp_addflag=' -nofor_main' ;;
+-	lf95*)				# Lahey Fortran 8.1
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+-	  tmp_sharedflag='--shared' ;;
+-	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+-	  tmp_sharedflag='-qmkshrobj'
+-	  tmp_addflag= ;;
+-	esac
+-	case `$CC -V 2>&1 | sed 5q` in
+-	*Sun\ C*)			# Sun C 5.9
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+-	  tmp_sharedflag='-G' ;;
+-	*Sun\ F*)			# Sun Fortran 8.3
+-	  tmp_sharedflag='-G' ;;
+-	esac
+-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-
+-        if test "x$supports_anon_versioning" = xyes; then
+-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+-	    echo "local: *; };" >> $output_objdir/$libname.ver~
+-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+-        fi
+-
+-	case $cc_basename in
+-	xlf*)
+-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+-	  if test "x$supports_anon_versioning" = xyes; then
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+-	      echo "local: *; };" >> $output_objdir/$libname.ver~
+-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+-	  fi
+-	  ;;
+-	esac
+-      else
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-
+-    netbsd* | netbsdelf*-gnu)
+-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+-	wlarc=
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-      fi
+-      ;;
+-
+-    solaris*)
+-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-	cat <<_LT_EOF 1>&2
+-
+-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+-*** create shared libraries on Solaris systems.  Therefore, libtool
+-*** is disabling shared libraries support.  We urge you to upgrade GNU
+-*** binutils to release 2.9.1 or newer.  Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-_LT_EOF
+-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-      else
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-
+-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+-      case `$LD -v 2>&1` in
+-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-	cat <<_LT_EOF 1>&2
+-
+-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+-*** reliably create shared libraries on SCO systems.  Therefore, libtool
+-*** is disabling shared libraries support.  We urge you to upgrade GNU
+-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-_LT_EOF
+-	;;
+-	*)
+-	  # For security reasons, it is highly recommended that you always
+-	  # use absolute paths for naming shared libraries, and exclude the
+-	  # DT_RUNPATH tag from executables and libraries.  But doing so
+-	  # requires that you compile everything twice, which is a pain.
+-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-	  else
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	  fi
+-	;;
+-      esac
+-      ;;
+-
+-    sunos4*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+-      wlarc=
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    *)
+-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-      else
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-    esac
+-
+-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+-      runpath_var=
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+-    fi
+-  else
+-    # PORTME fill in a description of your system's linker (not GNU ld)
+-    case $host_os in
+-    aix3*)
+-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-      _LT_TAGVAR(always_export_symbols, $1)=yes
+-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+-      # Note: this linker hardcodes the directories in LIBPATH if there
+-      # are no directories specified by -L.
+-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+-	# Neither direct hardcoding nor static linking is supported with a
+-	# broken collect2.
+-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+-      fi
+-      ;;
+-
+-    aix[[4-9]]*)
+-      if test "$host_cpu" = ia64; then
+-	# On IA64, the linker does run time linking by default, so we don't
+-	# have to do anything special.
+-	aix_use_runtimelinking=no
+-	exp_sym_flag='-Bexport'
+-	no_entry_flag=""
+-      else
+-	# If we're using GNU nm, then we don't want the "-C" option.
+-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+-	else
+-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+-	fi
+-	aix_use_runtimelinking=no
+-
+-	# Test if we are trying to use run time linking or normal
+-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+-	# need to do runtime linking.
+-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+-	  for ld_flag in $LDFLAGS; do
+-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+-	    aix_use_runtimelinking=yes
+-	    break
+-	  fi
+-	  done
+-	  ;;
+-	esac
+-
+-	exp_sym_flag='-bexport'
+-	no_entry_flag='-bnoentry'
+-      fi
+-
+-      # When large executables or shared objects are built, AIX ld can
+-      # have problems creating the table of contents.  If linking a library
+-      # or program results in "error TOC overflow" add -mminimal-toc to
+-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+-      _LT_TAGVAR(archive_cmds, $1)=''
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+-      _LT_TAGVAR(link_all_deplibs, $1)=yes
+-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+-
+-      if test "$GCC" = yes; then
+-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+-	# We only want to do this on AIX 4.2 and lower, the check
+-	# below for broken collect2 doesn't work under 4.3+
+-	  collect2name=`${CC} -print-prog-name=collect2`
+-	  if test -f "$collect2name" &&
+-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+-	  then
+-	  # We have reworked collect2
+-	  :
+-	  else
+-	  # We have old collect2
+-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+-	  # It fails to find uninstalled libraries when the uninstalled
+-	  # path is not listed in the libpath.  Setting hardcode_minus_L
+-	  # to unsupported forces relinking
+-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+-	  fi
+-	  ;;
+-	esac
+-	shared_flag='-shared'
+-	if test "$aix_use_runtimelinking" = yes; then
+-	  shared_flag="$shared_flag "'${wl}-G'
+-	fi
+-	_LT_TAGVAR(link_all_deplibs, $1)=no
+-      else
+-	# not using gcc
+-	if test "$host_cpu" = ia64; then
+-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+-	# chokes on -Wl,-G. The following line is correct:
+-	  shared_flag='-G'
+-	else
+-	  if test "$aix_use_runtimelinking" = yes; then
+-	    shared_flag='${wl}-G'
+-	  else
+-	    shared_flag='${wl}-bM:SRE'
+-	  fi
+-	fi
+-      fi
+-
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+-      # It seems that -bexpall does not export symbols beginning with
+-      # underscore (_), so it is better to generate a list of symbols to export.
+-      _LT_TAGVAR(always_export_symbols, $1)=yes
+-      if test "$aix_use_runtimelinking" = yes; then
+-	# Warning - without using the other runtime loading flags (-brtl),
+-	# -berok will link without error, but may produce a broken library.
+-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+-        # Determine the default libpath from the value encoded in an
+-        # empty executable.
+-        _LT_SYS_MODULE_PATH_AIX
+-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+-      else
+-	if test "$host_cpu" = ia64; then
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+-	else
+-	 # Determine the default libpath from the value encoded in an
+-	 # empty executable.
+-	 _LT_SYS_MODULE_PATH_AIX
+-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-	  # Warning - without using the other run time loading flags,
+-	  # -berok will link without error, but may produce a broken library.
+-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+-	  # Exported symbols can be pulled into shared objects from archives
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+-	  # This is similar to how AIX traditionally builds its shared libraries.
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+-	fi
+-      fi
+-      ;;
+-
+-    amigaos*)
+-      case $host_cpu in
+-      powerpc)
+-            # see comment about AmigaOS4 .so support
+-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+-        ;;
+-      m68k)
+-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-        ;;
+-      esac
+-      ;;
+-
+-    bsdi[[45]]*)
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+-      ;;
+-
+-    cygwin* | mingw* | pw32* | cegcc*)
+-      # When not using gcc, we currently assume that we are using
+-      # Microsoft Visual C++.
+-      # hardcode_libdir_flag_spec is actually meaningless, as there is
+-      # no search path for DLLs.
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-      # Tell ltmain to make .lib files, not .a files.
+-      libext=lib
+-      # Tell ltmain to make .dll files, not .so files.
+-      shrext_cmds=".dll"
+-      # FIXME: Setting linknames here is a bad hack.
+-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+-      # The linker will automatically build a .lib file if we build a DLL.
+-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+-      # FIXME: Should let the user specify the lib program.
+-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-      ;;
+-
+-    darwin* | rhapsody*)
+-      _LT_DARWIN_LINKER_FEATURES($1)
+-      ;;
+-
+-    dgux*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    freebsd1*)
+-      _LT_TAGVAR(ld_shlibs, $1)=no
+-      ;;
+-
+-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+-    # support.  Future versions do this automatically, but an explicit c++rt0.o
+-    # does not break anything, and helps significantly (at the cost of a little
+-    # extra space).
+-    freebsd2.2*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+-    freebsd2*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+-    freebsd* | dragonfly*)
+-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    hpux9*)
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+-      fi
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-
+-      # hardcode_minus_L: Not really in the search PATH,
+-      # but as the default location of the library.
+-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-      ;;
+-
+-    hpux10*)
+-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+-      fi
+-      if test "$with_gnu_ld" = no; then
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-	_LT_TAGVAR(hardcode_direct, $1)=yes
+-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-	# hardcode_minus_L: Not really in the search PATH,
+-	# but as the default location of the library.
+-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      fi
+-      ;;
+-
+-    hpux11*)
+-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+-	case $host_cpu in
+-	hppa*64*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	ia64*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	esac
+-      else
+-	case $host_cpu in
+-	hppa*64*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	ia64*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	esac
+-      fi
+-      if test "$with_gnu_ld" = no; then
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-	case $host_cpu in
+-	hppa*64*|ia64*)
+-	  _LT_TAGVAR(hardcode_direct, $1)=no
+-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	  ;;
+-	*)
+-	  _LT_TAGVAR(hardcode_direct, $1)=yes
+-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-
+-	  # hardcode_minus_L: Not really in the search PATH,
+-	  # but as the default location of the library.
+-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-	  ;;
+-	esac
+-      fi
+-      ;;
+-
+-    irix5* | irix6* | nonstopux*)
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-	# Try to use the -exported_symbol ld option, if it does not
+-	# work, assume that -exports_file does not work either and
+-	# implicitly export all symbols.
+-        save_LDFLAGS="$LDFLAGS"
+-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+-        AC_LINK_IFELSE(int foo(void) {},
+-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-        )
+-        LDFLAGS="$save_LDFLAGS"
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+-      fi
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-      _LT_TAGVAR(inherit_rpath, $1)=yes
+-      _LT_TAGVAR(link_all_deplibs, $1)=yes
+-      ;;
+-
+-    netbsd* | netbsdelf*-gnu)
+-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+-      fi
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    newsos6)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    *nto* | *qnx*)
+-      ;;
+-
+-    openbsd*)
+-      if test -f /usr/libexec/ld.so; then
+-	_LT_TAGVAR(hardcode_direct, $1)=yes
+-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-	else
+-	  case $host_os in
+-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-	     ;;
+-	   *)
+-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	     ;;
+-	  esac
+-	fi
+-      else
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-      fi
+-      ;;
+-
+-    os2*)
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+-      ;;
+-
+-    osf3*)
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-      else
+-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-      fi
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-      ;;
+-
+-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-      else
+-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+-
+-	# Both c and cxx compiler support -rpath directly
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+-      fi
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-      ;;
+-
+-    solaris*)
+-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+-      if test "$GCC" = yes; then
+-	wlarc='${wl}'
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+-      else
+-	case `$CC -V 2>&1` in
+-	*"Compilers 5.0"*)
+-	  wlarc=''
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+-	  ;;
+-	*)
+-	  wlarc='${wl}'
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+-	  ;;
+-	esac
+-      fi
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      case $host_os in
+-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+-      *)
+-	# The compiler driver will combine and reorder linker options,
+-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+-	# but is careful enough not to reorder.
+-	# Supported since Solaris 2.6 (maybe 2.5.1?)
+-	if test "$GCC" = yes; then
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+-	else
+-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+-	fi
+-	;;
+-      esac
+-      _LT_TAGVAR(link_all_deplibs, $1)=yes
+-      ;;
+-
+-    sunos4*)
+-      if test "x$host_vendor" = xsequent; then
+-	# Use $CC to link under sequent, because it throws in some extra .o
+-	# files that make .init and .fini sections work.
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+-      fi
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-      _LT_TAGVAR(hardcode_direct, $1)=yes
+-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    sysv4)
+-      case $host_vendor in
+-	sni)
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+-	;;
+-	siemens)
+-	  ## LD is ld it makes a PLAMLIB
+-	  ## CC just makes a GrossModule.
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+-	  _LT_TAGVAR(hardcode_direct, $1)=no
+-        ;;
+-	motorola)
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+-	;;
+-      esac
+-      runpath_var='LD_RUN_PATH'
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    sysv4.3*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+-      ;;
+-
+-    sysv4*MP*)
+-      if test -d /usr/nec; then
+-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	runpath_var=LD_RUN_PATH
+-	hardcode_runpath_var=yes
+-	_LT_TAGVAR(ld_shlibs, $1)=yes
+-      fi
+-      ;;
+-
+-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      runpath_var='LD_RUN_PATH'
+-
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-      fi
+-      ;;
+-
+-    sysv5* | sco3.2v5* | sco5v6*)
+-      # Note: We can NOT use -z defs as we might desire, because we do not
+-      # link with -lc, and that would cause any symbols used from libc to
+-      # always be unresolved, which means just about no library would
+-      # ever link correctly.  If we're not using GNU ld we use -z text
+-      # though, which does catch some bad symbols but isn't as heavy-handed
+-      # as -z defs.
+-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+-      _LT_TAGVAR(link_all_deplibs, $1)=yes
+-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+-      runpath_var='LD_RUN_PATH'
+-
+-      if test "$GCC" = yes; then
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-      else
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-      fi
+-      ;;
+-
+-    uts4*)
+-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      ;;
+-
+-    *)
+-      _LT_TAGVAR(ld_shlibs, $1)=no
+-      ;;
+-    esac
+-
+-    if test x$host_vendor = xsni; then
+-      case $host in
+-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+-	;;
+-      esac
+-    fi
+-  fi
+-])
+-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+-
+-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+-_LT_DECL([], [extract_expsyms_cmds], [2],
+-    [The commands to extract the exported symbol list from a shared archive])
+-
+-#
+-# Do we need to explicitly link libc?
+-#
+-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+-x|xyes)
+-  # Assume -lc should be added
+-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+-
+-  if test "$enable_shared" = yes && test "$GCC" = yes; then
+-    case $_LT_TAGVAR(archive_cmds, $1) in
+-    *'~'*)
+-      # FIXME: we may have to deal with multi-command sequences.
+-      ;;
+-    '$CC '*)
+-      # Test whether the compiler implicitly links with -lc since on some
+-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+-      # to ld, don't add -lc before -lgcc.
+-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+-      $RM conftest*
+-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+-        soname=conftest
+-        lib=conftest
+-        libobjs=conftest.$ac_objext
+-        deplibs=
+-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+-	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+-        compiler_flags=-v
+-        linker_flags=-v
+-        verstring=
+-        output_objdir=.
+-        libname=conftest
+-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+-        _LT_TAGVAR(allow_undefined_flag, $1)=
+-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+-        then
+-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-        else
+-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+-        fi
+-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+-      else
+-        cat conftest.err 1>&5
+-      fi
+-      $RM conftest*
+-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+-      ;;
+-    esac
+-  fi
+-  ;;
+-esac
+-
+-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+-    [Whether or not to add -lc for building shared libraries])
+-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+-    [enable_shared_with_static_runtimes], [0],
+-    [Whether or not to disallow shared libs when runtime libs are static])
+-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+-    [Compiler flag to allow reflexive dlopens])
+-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+-    [Compiler flag to generate shared objects directly from archives])
+-_LT_TAGDECL([], [compiler_needs_object], [1],
+-    [Whether the compiler copes with passing no objects directly])
+-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+-    [Create an old-style archive from a shared archive])
+-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+-    [Create a temporary old-style archive to link instead of a shared archive])
+-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+-_LT_TAGDECL([], [archive_expsym_cmds], [2])
+-_LT_TAGDECL([], [module_cmds], [2],
+-    [Commands used to build a loadable module if different from building
+-    a shared archive.])
+-_LT_TAGDECL([], [module_expsym_cmds], [2])
+-_LT_TAGDECL([], [with_gnu_ld], [1],
+-    [Whether we are building with GNU ld or not])
+-_LT_TAGDECL([], [allow_undefined_flag], [1],
+-    [Flag that allows shared libraries with undefined symbols to be built])
+-_LT_TAGDECL([], [no_undefined_flag], [1],
+-    [Flag that enforces no undefined symbols])
+-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+-    [Flag to hardcode $libdir into a binary during linking.
+-    This must work even if $libdir does not exist])
+-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+-    [[If ld is used when linking, flag to hardcode $libdir into a binary
+-    during linking.  This must work even if $libdir does not exist]])
+-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+-    [Whether we need a single "-rpath" flag with a separated argument])
+-_LT_TAGDECL([], [hardcode_direct], [0],
+-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+-    DIR into the resulting binary])
+-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+-    DIR into the resulting binary and the resulting library dependency is
+-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+-    library is relocated])
+-_LT_TAGDECL([], [hardcode_minus_L], [0],
+-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+-    into the resulting binary])
+-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+-    into the resulting binary])
+-_LT_TAGDECL([], [hardcode_automatic], [0],
+-    [Set to "yes" if building a shared library automatically hardcodes DIR
+-    into the library and all subsequent libraries and executables linked
+-    against it])
+-_LT_TAGDECL([], [inherit_rpath], [0],
+-    [Set to yes if linker adds runtime paths of dependent libraries
+-    to runtime path list])
+-_LT_TAGDECL([], [link_all_deplibs], [0],
+-    [Whether libtool must link a program against all its dependency libraries])
+-_LT_TAGDECL([], [fix_srcfile_path], [1],
+-    [Fix the shell variable $srcfile for the compiler])
+-_LT_TAGDECL([], [always_export_symbols], [0],
+-    [Set to "yes" if exported symbols are required])
+-_LT_TAGDECL([], [export_symbols_cmds], [2],
+-    [The commands to list exported symbols])
+-_LT_TAGDECL([], [exclude_expsyms], [1],
+-    [Symbols that should not be listed in the preloaded symbols])
+-_LT_TAGDECL([], [include_expsyms], [1],
+-    [Symbols that must always be exported])
+-_LT_TAGDECL([], [prelink_cmds], [2],
+-    [Commands necessary for linking programs (against libraries) with templates])
+-_LT_TAGDECL([], [file_list_spec], [1],
+-    [Specify filename containing input files])
+-dnl FIXME: Not yet implemented
+-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+-dnl    [Compiler flag to generate thread safe objects])
+-])# _LT_LINKER_SHLIBS
+-
+-
+-# _LT_LANG_C_CONFIG([TAG])
+-# ------------------------
+-# Ensure that the configuration variables for a C compiler are suitably
+-# defined.  These variables are subsequently used by _LT_CONFIG to write
+-# the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_C_CONFIG],
+-[m4_require([_LT_DECL_EGREP])dnl
+-lt_save_CC="$CC"
+-AC_LANG_PUSH(C)
+-
+-# Source file extension for C test sources.
+-ac_ext=c
+-
+-# Object file extension for compiled C test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='int main(){return(0);}'
+-
+-_LT_TAG_COMPILER
+-# Save the default compiler, since it gets overwritten when the other
+-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+-compiler_DEFAULT=$CC
+-
+-# save warnings/boilerplate of simple test code
+-_LT_COMPILER_BOILERPLATE
+-_LT_LINKER_BOILERPLATE
+-
+-if test -n "$compiler"; then
+-  _LT_COMPILER_NO_RTTI($1)
+-  _LT_COMPILER_PIC($1)
+-  _LT_COMPILER_C_O($1)
+-  _LT_COMPILER_FILE_LOCKS($1)
+-  _LT_LINKER_SHLIBS($1)
+-  _LT_SYS_DYNAMIC_LINKER($1)
+-  _LT_LINKER_HARDCODE_LIBPATH($1)
+-  LT_SYS_DLOPEN_SELF
+-  _LT_CMD_STRIPLIB
+-
+-  # Report which library types will actually be built
+-  AC_MSG_CHECKING([if libtool supports shared libraries])
+-  AC_MSG_RESULT([$can_build_shared])
+-
+-  AC_MSG_CHECKING([whether to build shared libraries])
+-  test "$can_build_shared" = "no" && enable_shared=no
+-
+-  # On AIX, shared libraries and static libraries use the same namespace, and
+-  # are all built from PIC.
+-  case $host_os in
+-  aix3*)
+-    test "$enable_shared" = yes && enable_static=no
+-    if test -n "$RANLIB"; then
+-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+-      postinstall_cmds='$RANLIB $lib'
+-    fi
+-    ;;
+-
+-  aix[[4-9]]*)
+-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+-      test "$enable_shared" = yes && enable_static=no
+-    fi
+-    ;;
+-  esac
+-  AC_MSG_RESULT([$enable_shared])
+-
+-  AC_MSG_CHECKING([whether to build static libraries])
+-  # Make sure either enable_shared or enable_static is yes.
+-  test "$enable_shared" = yes || enable_static=yes
+-  AC_MSG_RESULT([$enable_static])
+-
+-  _LT_CONFIG($1)
+-fi
+-AC_LANG_POP
+-CC="$lt_save_CC"
+-])# _LT_LANG_C_CONFIG
+-
+-
+-# _LT_PROG_CXX
+-# ------------
+-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+-# compiler, we have our own version here.
+-m4_defun([_LT_PROG_CXX],
+-[
+-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+-AC_PROG_CXX
+-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+-    (test "X$CXX" != "Xg++"))) ; then
+-  AC_PROG_CXXCPP
+-else
+-  _lt_caught_CXX_error=yes
+-fi
+-popdef([AC_MSG_ERROR])
+-])# _LT_PROG_CXX
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([_LT_PROG_CXX], [])
+-
+-
+-# _LT_LANG_CXX_CONFIG([TAG])
+-# --------------------------
+-# Ensure that the configuration variables for a C++ compiler are suitably
+-# defined.  These variables are subsequently used by _LT_CONFIG to write
+-# the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_CXX_CONFIG],
+-[AC_REQUIRE([_LT_PROG_CXX])dnl
+-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-m4_require([_LT_DECL_EGREP])dnl
+-
+-AC_LANG_PUSH(C++)
+-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_TAGVAR(allow_undefined_flag, $1)=
+-_LT_TAGVAR(always_export_symbols, $1)=no
+-_LT_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_TAGVAR(compiler_needs_object, $1)=no
+-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_direct, $1)=no
+-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+-_LT_TAGVAR(hardcode_automatic, $1)=no
+-_LT_TAGVAR(inherit_rpath, $1)=no
+-_LT_TAGVAR(module_cmds, $1)=
+-_LT_TAGVAR(module_expsym_cmds, $1)=
+-_LT_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_TAGVAR(no_undefined_flag, $1)=
+-_LT_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Source file extension for C++ test sources.
+-ac_ext=cpp
+-
+-# Object file extension for compiled C++ test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# No sense in running all these tests if we already determined that
+-# the CXX compiler isn't working.  Some variables (like enable_shared)
+-# are currently assumed to apply to all compilers on this platform,
+-# and will be corrupted by setting them based on a non-working compiler.
+-if test "$_lt_caught_CXX_error" != yes; then
+-  # Code to be used in simple compile tests
+-  lt_simple_compile_test_code="int some_variable = 0;"
+-
+-  # Code to be used in simple link tests
+-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+-
+-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-  _LT_TAG_COMPILER
+-
+-  # save warnings/boilerplate of simple test code
+-  _LT_COMPILER_BOILERPLATE
+-  _LT_LINKER_BOILERPLATE
+-
+-  # Allow CC to be a program name with arguments.
+-  lt_save_CC=$CC
+-  lt_save_LD=$LD
+-  lt_save_GCC=$GCC
+-  GCC=$GXX
+-  lt_save_with_gnu_ld=$with_gnu_ld
+-  lt_save_path_LD=$lt_cv_path_LD
+-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+-  else
+-    $as_unset lt_cv_prog_gnu_ld
+-  fi
+-  if test -n "${lt_cv_path_LDCXX+set}"; then
+-    lt_cv_path_LD=$lt_cv_path_LDCXX
+-  else
+-    $as_unset lt_cv_path_LD
+-  fi
+-  test -z "${LDCXX+set}" || LD=$LDCXX
+-  CC=${CXX-"c++"}
+-  compiler=$CC
+-  _LT_TAGVAR(compiler, $1)=$CC
+-  _LT_CC_BASENAME([$compiler])
+-
+-  if test -n "$compiler"; then
+-    # We don't want -fno-exception when compiling C++ code, so set the
+-    # no_builtin_flag separately
+-    if test "$GXX" = yes; then
+-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-    else
+-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-    fi
+-
+-    if test "$GXX" = yes; then
+-      # Set up default GNU C++ configuration
+-
+-      LT_PATH_LD
+-
+-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+-      # archiving commands below assume that GNU ld is being used.
+-      if test "$with_gnu_ld" = yes; then
+-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-
+-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+-        # If archive_cmds runs LD, not CC, wlarc should be empty
+-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+-        #     investigate it a little bit more. (MM)
+-        wlarc='${wl}'
+-
+-        # ancient GNU ld didn't support --whole-archive et. al.
+-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+-	  $GREP 'no-whole-archive' > /dev/null; then
+-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+-        else
+-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+-        fi
+-      else
+-        with_gnu_ld=no
+-        wlarc=
+-
+-        # A generic and very simple default shared library creation
+-        # command for GNU C++ for the case where it uses the native
+-        # linker, instead of GNU ld.  If possible, this setting should
+-        # overridden to take advantage of the native linker features on
+-        # the platform it is being used on.
+-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+-      fi
+-
+-      # Commands to make compiler produce verbose output that lists
+-      # what "hidden" libraries, object files and flags are used when
+-      # linking a shared library.
+-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+-
+-    else
+-      GXX=no
+-      with_gnu_ld=no
+-      wlarc=
+-    fi
+-
+-    # PORTME: fill in a description of your system's C++ link characteristics
+-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-    _LT_TAGVAR(ld_shlibs, $1)=yes
+-    case $host_os in
+-      aix3*)
+-        # FIXME: insert proper C++ library support
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-        ;;
+-      aix[[4-9]]*)
+-        if test "$host_cpu" = ia64; then
+-          # On IA64, the linker does run time linking by default, so we don't
+-          # have to do anything special.
+-          aix_use_runtimelinking=no
+-          exp_sym_flag='-Bexport'
+-          no_entry_flag=""
+-        else
+-          aix_use_runtimelinking=no
+-
+-          # Test if we are trying to use run time linking or normal
+-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+-          # need to do runtime linking.
+-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+-	    for ld_flag in $LDFLAGS; do
+-	      case $ld_flag in
+-	      *-brtl*)
+-	        aix_use_runtimelinking=yes
+-	        break
+-	        ;;
+-	      esac
+-	    done
+-	    ;;
+-          esac
+-
+-          exp_sym_flag='-bexport'
+-          no_entry_flag='-bnoentry'
+-        fi
+-
+-        # When large executables or shared objects are built, AIX ld can
+-        # have problems creating the table of contents.  If linking a library
+-        # or program results in "error TOC overflow" add -mminimal-toc to
+-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+-        _LT_TAGVAR(archive_cmds, $1)=''
+-        _LT_TAGVAR(hardcode_direct, $1)=yes
+-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+-        _LT_TAGVAR(link_all_deplibs, $1)=yes
+-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+-
+-        if test "$GXX" = yes; then
+-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+-          # We only want to do this on AIX 4.2 and lower, the check
+-          # below for broken collect2 doesn't work under 4.3+
+-	  collect2name=`${CC} -print-prog-name=collect2`
+-	  if test -f "$collect2name" &&
+-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+-	  then
+-	    # We have reworked collect2
+-	    :
+-	  else
+-	    # We have old collect2
+-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+-	    # It fails to find uninstalled libraries when the uninstalled
+-	    # path is not listed in the libpath.  Setting hardcode_minus_L
+-	    # to unsupported forces relinking
+-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+-	  fi
+-          esac
+-          shared_flag='-shared'
+-	  if test "$aix_use_runtimelinking" = yes; then
+-	    shared_flag="$shared_flag "'${wl}-G'
+-	  fi
+-        else
+-          # not using gcc
+-          if test "$host_cpu" = ia64; then
+-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+-	  # chokes on -Wl,-G. The following line is correct:
+-	  shared_flag='-G'
+-          else
+-	    if test "$aix_use_runtimelinking" = yes; then
+-	      shared_flag='${wl}-G'
+-	    else
+-	      shared_flag='${wl}-bM:SRE'
+-	    fi
+-          fi
+-        fi
+-
+-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+-        # It seems that -bexpall does not export symbols beginning with
+-        # underscore (_), so it is better to generate a list of symbols to
+-	# export.
+-        _LT_TAGVAR(always_export_symbols, $1)=yes
+-        if test "$aix_use_runtimelinking" = yes; then
+-          # Warning - without using the other runtime loading flags (-brtl),
+-          # -berok will link without error, but may produce a broken library.
+-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+-          # Determine the default libpath from the value encoded in an empty
+-          # executable.
+-          _LT_SYS_MODULE_PATH_AIX
+-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-
+-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+-        else
+-          if test "$host_cpu" = ia64; then
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+-          else
+-	    # Determine the default libpath from the value encoded in an
+-	    # empty executable.
+-	    _LT_SYS_MODULE_PATH_AIX
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-	    # Warning - without using the other run time loading flags,
+-	    # -berok will link without error, but may produce a broken library.
+-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+-	    # Exported symbols can be pulled into shared objects from archives
+-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+-	    # This is similar to how AIX traditionally builds its shared
+-	    # libraries.
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+-          fi
+-        fi
+-        ;;
+-
+-      beos*)
+-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+-	  # support --undefined.  This deserves some investigation.  FIXME
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	else
+-	  _LT_TAGVAR(ld_shlibs, $1)=no
+-	fi
+-	;;
+-
+-      chorus*)
+-        case $cc_basename in
+-          *)
+-	  # FIXME: insert proper C++ library support
+-	  _LT_TAGVAR(ld_shlibs, $1)=no
+-	  ;;
+-        esac
+-        ;;
+-
+-      cygwin* | mingw* | pw32* | cegcc*)
+-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+-        # as there is no search path for DLLs.
+-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+-        _LT_TAGVAR(always_export_symbols, $1)=no
+-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-
+-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-          # If the export-symbols file already is a .def file (1st line
+-          # is EXPORTS), use it as is; otherwise, prepend...
+-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-	    cp $export_symbols $output_objdir/$soname.def;
+-          else
+-	    echo EXPORTS > $output_objdir/$soname.def;
+-	    cat $export_symbols >> $output_objdir/$soname.def;
+-          fi~
+-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-        else
+-          _LT_TAGVAR(ld_shlibs, $1)=no
+-        fi
+-        ;;
+-      darwin* | rhapsody*)
+-        _LT_DARWIN_LINKER_FEATURES($1)
+-	;;
+-
+-      dgux*)
+-        case $cc_basename in
+-          ec++*)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          ghcx*)
+-	    # Green Hills C++ Compiler
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          *)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-        esac
+-        ;;
+-
+-      freebsd[[12]]*)
+-        # C++ shared libraries reported to be fairly broken before
+-	# switch to ELF
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-        ;;
+-
+-      freebsd-elf*)
+-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-        ;;
+-
+-      freebsd* | dragonfly*)
+-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+-        # conventions
+-        _LT_TAGVAR(ld_shlibs, $1)=yes
+-        ;;
+-
+-      gnu*)
+-        ;;
+-
+-      hpux9*)
+-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-        _LT_TAGVAR(hardcode_direct, $1)=yes
+-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+-				             # but as the default
+-				             # location of the library.
+-
+-        case $cc_basename in
+-          CC*)
+-            # FIXME: insert proper C++ library support
+-            _LT_TAGVAR(ld_shlibs, $1)=no
+-            ;;
+-          aCC*)
+-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+-            # Commands to make compiler produce verbose output that lists
+-            # what "hidden" libraries, object files and flags are used when
+-            # linking a shared library.
+-            #
+-            # There doesn't appear to be a way to prevent this compiler from
+-            # explicitly linking system object files so we need to strip them
+-            # from the output so that they don't get included in the library
+-            # dependencies.
+-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+-            ;;
+-          *)
+-            if test "$GXX" = yes; then
+-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+-            else
+-              # FIXME: insert proper C++ library support
+-              _LT_TAGVAR(ld_shlibs, $1)=no
+-            fi
+-            ;;
+-        esac
+-        ;;
+-
+-      hpux10*|hpux11*)
+-        if test $with_gnu_ld = no; then
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-          case $host_cpu in
+-            hppa*64*|ia64*)
+-              ;;
+-            *)
+-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-              ;;
+-          esac
+-        fi
+-        case $host_cpu in
+-          hppa*64*|ia64*)
+-            _LT_TAGVAR(hardcode_direct, $1)=no
+-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-            ;;
+-          *)
+-            _LT_TAGVAR(hardcode_direct, $1)=yes
+-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+-					         # but as the default
+-					         # location of the library.
+-            ;;
+-        esac
+-
+-        case $cc_basename in
+-          CC*)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          aCC*)
+-	    case $host_cpu in
+-	      hppa*64*)
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	        ;;
+-	      ia64*)
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	        ;;
+-	      *)
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	        ;;
+-	    esac
+-	    # Commands to make compiler produce verbose output that lists
+-	    # what "hidden" libraries, object files and flags are used when
+-	    # linking a shared library.
+-	    #
+-	    # There doesn't appear to be a way to prevent this compiler from
+-	    # explicitly linking system object files so we need to strip them
+-	    # from the output so that they don't get included in the library
+-	    # dependencies.
+-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+-	    ;;
+-          *)
+-	    if test "$GXX" = yes; then
+-	      if test $with_gnu_ld = no; then
+-	        case $host_cpu in
+-	          hppa*64*)
+-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	            ;;
+-	          ia64*)
+-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	            ;;
+-	          *)
+-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	            ;;
+-	        esac
+-	      fi
+-	    else
+-	      # FIXME: insert proper C++ library support
+-	      _LT_TAGVAR(ld_shlibs, $1)=no
+-	    fi
+-	    ;;
+-        esac
+-        ;;
+-
+-      interix[[3-9]]*)
+-	_LT_TAGVAR(hardcode_direct, $1)=no
+-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+-	# Instead, shared libraries are loaded at an image base (0x10000000 by
+-	# default) and relocated if they conflict, which is a slow very memory
+-	# consuming and fragmenting process.  To avoid this, we pick a random,
+-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+-	;;
+-      irix5* | irix6*)
+-        case $cc_basename in
+-          CC*)
+-	    # SGI C++
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-
+-	    # Archives containing C++ object files must be created using
+-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+-	    # necessary to make sure instantiated templates are included
+-	    # in the archive.
+-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+-	    ;;
+-          *)
+-	    if test "$GXX" = yes; then
+-	      if test "$with_gnu_ld" = no; then
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-	      else
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+-	      fi
+-	    fi
+-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+-	    ;;
+-        esac
+-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-        _LT_TAGVAR(inherit_rpath, $1)=yes
+-        ;;
+-
+-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+-        case $cc_basename in
+-          KCC*)
+-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+-	    # KCC will only create a shared library if the output file
+-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+-	    # to its proper name (with version) after linking.
+-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+-	    # Commands to make compiler produce verbose output that lists
+-	    # what "hidden" libraries, object files and flags are used when
+-	    # linking a shared library.
+-	    #
+-	    # There doesn't appear to be a way to prevent this compiler from
+-	    # explicitly linking system object files so we need to strip them
+-	    # from the output so that they don't get included in the library
+-	    # dependencies.
+-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+-
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+-	    # Archives containing C++ object files must be created using
+-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+-	    ;;
+-	  icpc* | ecpc* )
+-	    # Intel C++
+-	    with_gnu_ld=yes
+-	    # version 8.0 and above of icpc choke on multiply defined symbols
+-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+-	    # earlier do not add the objects themselves.
+-	    case `$CC -V 2>&1` in
+-	      *"Version 7."*)
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-		;;
+-	      *)  # Version 8.0 or newer
+-	        tmp_idyn=
+-	        case $host_cpu in
+-		  ia64*) tmp_idyn=' -i_dynamic';;
+-		esac
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-		;;
+-	    esac
+-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+-	    ;;
+-          pgCC* | pgcpp*)
+-            # Portland Group C++ compiler
+-	    case `$CC -V` in
+-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+-		rm -rf $tpldir~
+-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+-		rm -rf $tpldir~
+-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+-		$RANLIB $oldlib'
+-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+-		rm -rf $tpldir~
+-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+-		rm -rf $tpldir~
+-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+-	      ;;
+-	    *) # Version 6 will use weak symbols
+-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+-	      ;;
+-	    esac
+-
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+-            ;;
+-	  cxx*)
+-	    # Compaq C++
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+-
+-	    runpath_var=LD_RUN_PATH
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-	    # Commands to make compiler produce verbose output that lists
+-	    # what "hidden" libraries, object files and flags are used when
+-	    # linking a shared library.
+-	    #
+-	    # There doesn't appear to be a way to prevent this compiler from
+-	    # explicitly linking system object files so we need to strip them
+-	    # from the output so that they don't get included in the library
+-	    # dependencies.
+-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+-	    ;;
+-	  xl*)
+-	    # IBM XL 8.0 on PPC, with GNU ld
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+-	    if test "x$supports_anon_versioning" = xyes; then
+-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+-		echo "local: *; };" >> $output_objdir/$libname.ver~
+-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+-	    fi
+-	    ;;
+-	  *)
+-	    case `$CC -V 2>&1 | sed 5q` in
+-	    *Sun\ C*)
+-	      # Sun C++ 5.9
+-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+-
+-	      # Not sure whether something based on
+-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+-	      # would be better.
+-	      output_verbose_link_cmd='echo'
+-
+-	      # Archives containing C++ object files must be created using
+-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+-	      # necessary to make sure instantiated templates are included
+-	      # in the archive.
+-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+-	      ;;
+-	    esac
+-	    ;;
+-	esac
+-	;;
+-
+-      lynxos*)
+-        # FIXME: insert proper C++ library support
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-	;;
+-
+-      m88k*)
+-        # FIXME: insert proper C++ library support
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-	;;
+-
+-      mvs*)
+-        case $cc_basename in
+-          cxx*)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-	  *)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-	esac
+-	;;
+-
+-      netbsd*)
+-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+-	  wlarc=
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-	  _LT_TAGVAR(hardcode_direct, $1)=yes
+-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	fi
+-	# Workaround some broken pre-1.5 toolchains
+-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+-	;;
+-
+-      *nto* | *qnx*)
+-        _LT_TAGVAR(ld_shlibs, $1)=yes
+-	;;
+-
+-      openbsd2*)
+-        # C++ shared libraries are fairly broken
+-	_LT_TAGVAR(ld_shlibs, $1)=no
+-	;;
+-
+-      openbsd*)
+-	if test -f /usr/libexec/ld.so; then
+-	  _LT_TAGVAR(hardcode_direct, $1)=yes
+-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+-	  fi
+-	  output_verbose_link_cmd=echo
+-	else
+-	  _LT_TAGVAR(ld_shlibs, $1)=no
+-	fi
+-	;;
+-
+-      osf3* | osf4* | osf5*)
+-        case $cc_basename in
+-          KCC*)
+-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+-	    # KCC will only create a shared library if the output file
+-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+-	    # to its proper name (with version) after linking.
+-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+-
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-	    # Archives containing C++ object files must be created using
+-	    # the KAI C++ compiler.
+-	    case $host in
+-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+-	    esac
+-	    ;;
+-          RCC*)
+-	    # Rational C++ 2.4.1
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          cxx*)
+-	    case $host in
+-	      osf3*)
+-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-		;;
+-	      *)
+-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+-	          echo "-hidden">> $lib.exp~
+-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+-	          $RM $lib.exp'
+-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+-		;;
+-	    esac
+-
+-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-	    # Commands to make compiler produce verbose output that lists
+-	    # what "hidden" libraries, object files and flags are used when
+-	    # linking a shared library.
+-	    #
+-	    # There doesn't appear to be a way to prevent this compiler from
+-	    # explicitly linking system object files so we need to strip them
+-	    # from the output so that they don't get included in the library
+-	    # dependencies.
+-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+-	    ;;
+-	  *)
+-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+-	      case $host in
+-	        osf3*)
+-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-		  ;;
+-	        *)
+-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+-		  ;;
+-	      esac
+-
+-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+-	      # Commands to make compiler produce verbose output that lists
+-	      # what "hidden" libraries, object files and flags are used when
+-	      # linking a shared library.
+-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+-
+-	    else
+-	      # FIXME: insert proper C++ library support
+-	      _LT_TAGVAR(ld_shlibs, $1)=no
+-	    fi
+-	    ;;
+-        esac
+-        ;;
+-
+-      psos*)
+-        # FIXME: insert proper C++ library support
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-        ;;
+-
+-      sunos4*)
+-        case $cc_basename in
+-          CC*)
+-	    # Sun C++ 4.x
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          lcc*)
+-	    # Lucid
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          *)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-        esac
+-        ;;
+-
+-      solaris*)
+-        case $cc_basename in
+-          CC*)
+-	    # Sun C++ 4.2, 5.x and Centerline C++
+-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	    case $host_os in
+-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+-	      *)
+-		# The compiler driver will combine and reorder linker options,
+-		# but understands `-z linker_flag'.
+-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+-	        ;;
+-	    esac
+-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+-
+-	    output_verbose_link_cmd='echo'
+-
+-	    # Archives containing C++ object files must be created using
+-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+-	    # necessary to make sure instantiated templates are included
+-	    # in the archive.
+-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+-	    ;;
+-          gcx*)
+-	    # Green Hills C++ Compiler
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+-
+-	    # The C++ compiler must be used to create the archive.
+-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+-	    ;;
+-          *)
+-	    # GNU C++ compiler with Solaris linker
+-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-	        # Commands to make compiler produce verbose output that lists
+-	        # what "hidden" libraries, object files and flags are used when
+-	        # linking a shared library.
+-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+-	      else
+-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+-	        # platform.
+-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-	        # Commands to make compiler produce verbose output that lists
+-	        # what "hidden" libraries, object files and flags are used when
+-	        # linking a shared library.
+-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+-	      fi
+-
+-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+-	      case $host_os in
+-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+-		*)
+-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+-		  ;;
+-	      esac
+-	    fi
+-	    ;;
+-        esac
+-        ;;
+-
+-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-      runpath_var='LD_RUN_PATH'
+-
+-      case $cc_basename in
+-        CC*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-	*)
+-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	  ;;
+-      esac
+-      ;;
+-
+-      sysv5* | sco3.2v5* | sco5v6*)
+-	# Note: We can NOT use -z defs as we might desire, because we do not
+-	# link with -lc, and that would cause any symbols used from libc to
+-	# always be unresolved, which means just about no library would
+-	# ever link correctly.  If we're not using GNU ld we use -z text
+-	# though, which does catch some bad symbols but isn't as heavy-handed
+-	# as -z defs.
+-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+-	_LT_TAGVAR(link_all_deplibs, $1)=yes
+-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+-	runpath_var='LD_RUN_PATH'
+-
+-	case $cc_basename in
+-          CC*)
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	    ;;
+-	  *)
+-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+-	    ;;
+-	esac
+-      ;;
+-
+-      tandem*)
+-        case $cc_basename in
+-          NCC*)
+-	    # NonStop-UX NCC 3.20
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-          *)
+-	    # FIXME: insert proper C++ library support
+-	    _LT_TAGVAR(ld_shlibs, $1)=no
+-	    ;;
+-        esac
+-        ;;
+-
+-      vxworks*)
+-        # FIXME: insert proper C++ library support
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-        ;;
+-
+-      *)
+-        # FIXME: insert proper C++ library support
+-        _LT_TAGVAR(ld_shlibs, $1)=no
+-        ;;
+-    esac
+-
+-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-    _LT_TAGVAR(GCC, $1)="$GXX"
+-    _LT_TAGVAR(LD, $1)="$LD"
+-
+-    ## CAVEAT EMPTOR:
+-    ## There is no encapsulation within the following macros, do not change
+-    ## the running order or otherwise move them around unless you know exactly
+-    ## what you are doing...
+-    _LT_SYS_HIDDEN_LIBDEPS($1)
+-    _LT_COMPILER_PIC($1)
+-    _LT_COMPILER_C_O($1)
+-    _LT_COMPILER_FILE_LOCKS($1)
+-    _LT_LINKER_SHLIBS($1)
+-    _LT_SYS_DYNAMIC_LINKER($1)
+-    _LT_LINKER_HARDCODE_LIBPATH($1)
+-
+-    _LT_CONFIG($1)
+-  fi # test -n "$compiler"
+-
+-  CC=$lt_save_CC
+-  LDCXX=$LD
+-  LD=$lt_save_LD
+-  GCC=$lt_save_GCC
+-  with_gnu_ld=$lt_save_with_gnu_ld
+-  lt_cv_path_LDCXX=$lt_cv_path_LD
+-  lt_cv_path_LD=$lt_save_path_LD
+-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+-fi # test "$_lt_caught_CXX_error" != yes
+-
+-AC_LANG_POP
+-])# _LT_LANG_CXX_CONFIG
+-
+-
+-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+-# ---------------------------------
+-# Figure out "hidden" library dependencies from verbose
+-# compiler output when linking a shared library.
+-# Parse the compiler output and extract the necessary
+-# objects, libraries and library flags.
+-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+-# Dependencies to place before and after the object being linked:
+-_LT_TAGVAR(predep_objects, $1)=
+-_LT_TAGVAR(postdep_objects, $1)=
+-_LT_TAGVAR(predeps, $1)=
+-_LT_TAGVAR(postdeps, $1)=
+-_LT_TAGVAR(compiler_lib_search_path, $1)=
+-
+-dnl we can't use the lt_simple_compile_test_code here,
+-dnl because it contains code intended for an executable,
+-dnl not a library.  It's possible we should let each
+-dnl tag define a new lt_????_link_test_code variable,
+-dnl but it's only used here...
+-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+-int a;
+-void foo (void) { a = 0; }
+-_LT_EOF
+-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+-class Foo
+-{
+-public:
+-  Foo (void) { a = 0; }
+-private:
+-  int a;
+-};
+-_LT_EOF
+-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+-      subroutine foo
+-      implicit none
+-      integer*4 a
+-      a=0
+-      return
+-      end
+-_LT_EOF
+-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+-      subroutine foo
+-      implicit none
+-      integer a
+-      a=0
+-      return
+-      end
+-_LT_EOF
+-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+-public class foo {
+-  private int a;
+-  public void bar (void) {
+-    a = 0;
+-  }
+-};
+-_LT_EOF
+-])
+-dnl Parse the compiler output and extract the necessary
+-dnl objects, libraries and library flags.
+-if AC_TRY_EVAL(ac_compile); then
+-  # Parse the compiler output and extract the necessary
+-  # objects, libraries and library flags.
+-
+-  # Sentinel used to keep track of whether or not we are before
+-  # the conftest object file.
+-  pre_test_object_deps_done=no
+-
+-  for p in `eval "$output_verbose_link_cmd"`; do
+-    case $p in
+-
+-    -L* | -R* | -l*)
+-       # Some compilers place space between "-{L,R}" and the path.
+-       # Remove the space.
+-       if test $p = "-L" ||
+-          test $p = "-R"; then
+-	 prev=$p
+-	 continue
+-       else
+-	 prev=
+-       fi
+-
+-       if test "$pre_test_object_deps_done" = no; then
+-	 case $p in
+-	 -L* | -R*)
+-	   # Internal compiler library paths should come after those
+-	   # provided the user.  The postdeps already come after the
+-	   # user supplied libs so there is no need to process them.
+-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+-	   else
+-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+-	   fi
+-	   ;;
+-	 # The "-l" case would never come before the object being
+-	 # linked, so don't bother handling this case.
+-	 esac
+-       else
+-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+-	 else
+-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+-	 fi
+-       fi
+-       ;;
+-
+-    *.$objext)
+-       # This assumes that the test object file only shows up
+-       # once in the compiler output.
+-       if test "$p" = "conftest.$objext"; then
+-	 pre_test_object_deps_done=yes
+-	 continue
+-       fi
+-
+-       if test "$pre_test_object_deps_done" = no; then
+-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+-	   _LT_TAGVAR(predep_objects, $1)="$p"
+-	 else
+-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+-	 fi
+-       else
+-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+-	   _LT_TAGVAR(postdep_objects, $1)="$p"
+-	 else
+-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+-	 fi
+-       fi
+-       ;;
+-
+-    *) ;; # Ignore the rest.
+-
+-    esac
+-  done
+-
+-  # Clean up.
+-  rm -f a.out a.exe
+-else
+-  echo "libtool.m4: error: problem compiling $1 test program"
+-fi
+-
+-$RM -f confest.$objext
+-
+-# PORTME: override above test on systems where it is broken
+-m4_if([$1], [CXX],
+-[case $host_os in
+-interix[[3-9]]*)
+-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+-  # hack all around it, let's just trust "g++" to DTRT.
+-  _LT_TAGVAR(predep_objects,$1)=
+-  _LT_TAGVAR(postdep_objects,$1)=
+-  _LT_TAGVAR(postdeps,$1)=
+-  ;;
+-
+-linux*)
+-  case `$CC -V 2>&1 | sed 5q` in
+-  *Sun\ C*)
+-    # Sun C++ 5.9
+-
+-    # The more standards-conforming stlport4 library is
+-    # incompatible with the Cstd library. Avoid specifying
+-    # it if it's in CXXFLAGS. Ignore libCrun as
+-    # -library=stlport4 depends on it.
+-    case " $CXX $CXXFLAGS " in
+-    *" -library=stlport4 "*)
+-      solaris_use_stlport4=yes
+-      ;;
+-    esac
+-
+-    if test "$solaris_use_stlport4" != yes; then
+-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+-    fi
+-    ;;
+-  esac
+-  ;;
+-
+-solaris*)
+-  case $cc_basename in
+-  CC*)
+-    # The more standards-conforming stlport4 library is
+-    # incompatible with the Cstd library. Avoid specifying
+-    # it if it's in CXXFLAGS. Ignore libCrun as
+-    # -library=stlport4 depends on it.
+-    case " $CXX $CXXFLAGS " in
+-    *" -library=stlport4 "*)
+-      solaris_use_stlport4=yes
+-      ;;
+-    esac
+-
+-    # Adding this requires a known-good setup of shared libraries for
+-    # Sun compiler versions before 5.6, else PIC objects from an old
+-    # archive will be linked into the output, leading to subtle bugs.
+-    if test "$solaris_use_stlport4" != yes; then
+-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+-    fi
+-    ;;
+-  esac
+-  ;;
+-esac
+-])
+-
+-case " $_LT_TAGVAR(postdeps, $1) " in
+-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+-esac
+- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+-fi
+-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+-    [The directories searched by this compiler when creating a shared library])
+-_LT_TAGDECL([], [predep_objects], [1],
+-    [Dependencies to place before and after the objects being linked to
+-    create a shared library])
+-_LT_TAGDECL([], [postdep_objects], [1])
+-_LT_TAGDECL([], [predeps], [1])
+-_LT_TAGDECL([], [postdeps], [1])
+-_LT_TAGDECL([], [compiler_lib_search_path], [1],
+-    [The library search path used internally by the compiler when linking
+-    a shared library])
+-])# _LT_SYS_HIDDEN_LIBDEPS
+-
+-
+-# _LT_PROG_F77
+-# ------------
+-# Since AC_PROG_F77 is broken, in that it returns the empty string
+-# if there is no fortran compiler, we have our own version here.
+-m4_defun([_LT_PROG_F77],
+-[
+-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+-AC_PROG_F77
+-if test -z "$F77" || test "X$F77" = "Xno"; then
+-  _lt_disable_F77=yes
+-fi
+-popdef([AC_MSG_ERROR])
+-])# _LT_PROG_F77
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([_LT_PROG_F77], [])
+-
+-
+-# _LT_LANG_F77_CONFIG([TAG])
+-# --------------------------
+-# Ensure that the configuration variables for a Fortran 77 compiler are
+-# suitably defined.  These variables are subsequently used by _LT_CONFIG
+-# to write the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_F77_CONFIG],
+-[AC_REQUIRE([_LT_PROG_F77])dnl
+-AC_LANG_PUSH(Fortran 77)
+-
+-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_TAGVAR(allow_undefined_flag, $1)=
+-_LT_TAGVAR(always_export_symbols, $1)=no
+-_LT_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_direct, $1)=no
+-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_TAGVAR(hardcode_automatic, $1)=no
+-_LT_TAGVAR(inherit_rpath, $1)=no
+-_LT_TAGVAR(module_cmds, $1)=
+-_LT_TAGVAR(module_expsym_cmds, $1)=
+-_LT_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_TAGVAR(no_undefined_flag, $1)=
+-_LT_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Source file extension for f77 test sources.
+-ac_ext=f
+-
+-# Object file extension for compiled f77 test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# No sense in running all these tests if we already determined that
+-# the F77 compiler isn't working.  Some variables (like enable_shared)
+-# are currently assumed to apply to all compilers on this platform,
+-# and will be corrupted by setting them based on a non-working compiler.
+-if test "$_lt_disable_F77" != yes; then
+-  # Code to be used in simple compile tests
+-  lt_simple_compile_test_code="\
+-      subroutine t
+-      return
+-      end
+-"
+-
+-  # Code to be used in simple link tests
+-  lt_simple_link_test_code="\
+-      program t
+-      end
+-"
+-
+-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-  _LT_TAG_COMPILER
+-
+-  # save warnings/boilerplate of simple test code
+-  _LT_COMPILER_BOILERPLATE
+-  _LT_LINKER_BOILERPLATE
+-
+-  # Allow CC to be a program name with arguments.
+-  lt_save_CC="$CC"
+-  lt_save_GCC=$GCC
+-  CC=${F77-"f77"}
+-  compiler=$CC
+-  _LT_TAGVAR(compiler, $1)=$CC
+-  _LT_CC_BASENAME([$compiler])
+-  GCC=$G77
+-  if test -n "$compiler"; then
+-    AC_MSG_CHECKING([if libtool supports shared libraries])
+-    AC_MSG_RESULT([$can_build_shared])
+-
+-    AC_MSG_CHECKING([whether to build shared libraries])
+-    test "$can_build_shared" = "no" && enable_shared=no
+-
+-    # On AIX, shared libraries and static libraries use the same namespace, and
+-    # are all built from PIC.
+-    case $host_os in
+-      aix3*)
+-        test "$enable_shared" = yes && enable_static=no
+-        if test -n "$RANLIB"; then
+-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+-          postinstall_cmds='$RANLIB $lib'
+-        fi
+-        ;;
+-      aix[[4-9]]*)
+-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+-	  test "$enable_shared" = yes && enable_static=no
+-	fi
+-        ;;
+-    esac
+-    AC_MSG_RESULT([$enable_shared])
+-
+-    AC_MSG_CHECKING([whether to build static libraries])
+-    # Make sure either enable_shared or enable_static is yes.
+-    test "$enable_shared" = yes || enable_static=yes
+-    AC_MSG_RESULT([$enable_static])
+-
+-    _LT_TAGVAR(GCC, $1)="$G77"
+-    _LT_TAGVAR(LD, $1)="$LD"
+-
+-    ## CAVEAT EMPTOR:
+-    ## There is no encapsulation within the following macros, do not change
+-    ## the running order or otherwise move them around unless you know exactly
+-    ## what you are doing...
+-    _LT_COMPILER_PIC($1)
+-    _LT_COMPILER_C_O($1)
+-    _LT_COMPILER_FILE_LOCKS($1)
+-    _LT_LINKER_SHLIBS($1)
+-    _LT_SYS_DYNAMIC_LINKER($1)
+-    _LT_LINKER_HARDCODE_LIBPATH($1)
+-
+-    _LT_CONFIG($1)
+-  fi # test -n "$compiler"
+-
+-  GCC=$lt_save_GCC
+-  CC="$lt_save_CC"
+-fi # test "$_lt_disable_F77" != yes
+-
+-AC_LANG_POP
+-])# _LT_LANG_F77_CONFIG
+-
+-
+-# _LT_PROG_FC
+-# -----------
+-# Since AC_PROG_FC is broken, in that it returns the empty string
+-# if there is no fortran compiler, we have our own version here.
+-m4_defun([_LT_PROG_FC],
+-[
+-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+-AC_PROG_FC
+-if test -z "$FC" || test "X$FC" = "Xno"; then
+-  _lt_disable_FC=yes
+-fi
+-popdef([AC_MSG_ERROR])
+-])# _LT_PROG_FC
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([_LT_PROG_FC], [])
+-
+-
+-# _LT_LANG_FC_CONFIG([TAG])
+-# -------------------------
+-# Ensure that the configuration variables for a Fortran compiler are
+-# suitably defined.  These variables are subsequently used by _LT_CONFIG
+-# to write the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_FC_CONFIG],
+-[AC_REQUIRE([_LT_PROG_FC])dnl
+-AC_LANG_PUSH(Fortran)
+-
+-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_TAGVAR(allow_undefined_flag, $1)=
+-_LT_TAGVAR(always_export_symbols, $1)=no
+-_LT_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_direct, $1)=no
+-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_TAGVAR(hardcode_automatic, $1)=no
+-_LT_TAGVAR(inherit_rpath, $1)=no
+-_LT_TAGVAR(module_cmds, $1)=
+-_LT_TAGVAR(module_expsym_cmds, $1)=
+-_LT_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_TAGVAR(no_undefined_flag, $1)=
+-_LT_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Source file extension for fc test sources.
+-ac_ext=${ac_fc_srcext-f}
+-
+-# Object file extension for compiled fc test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# No sense in running all these tests if we already determined that
+-# the FC compiler isn't working.  Some variables (like enable_shared)
+-# are currently assumed to apply to all compilers on this platform,
+-# and will be corrupted by setting them based on a non-working compiler.
+-if test "$_lt_disable_FC" != yes; then
+-  # Code to be used in simple compile tests
+-  lt_simple_compile_test_code="\
+-      subroutine t
+-      return
+-      end
+-"
+-
+-  # Code to be used in simple link tests
+-  lt_simple_link_test_code="\
+-      program t
+-      end
+-"
+-
+-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-  _LT_TAG_COMPILER
+-
+-  # save warnings/boilerplate of simple test code
+-  _LT_COMPILER_BOILERPLATE
+-  _LT_LINKER_BOILERPLATE
+-
+-  # Allow CC to be a program name with arguments.
+-  lt_save_CC="$CC"
+-  lt_save_GCC=$GCC
+-  CC=${FC-"f95"}
+-  compiler=$CC
+-  GCC=$ac_cv_fc_compiler_gnu
+-
+-  _LT_TAGVAR(compiler, $1)=$CC
+-  _LT_CC_BASENAME([$compiler])
+-
+-  if test -n "$compiler"; then
+-    AC_MSG_CHECKING([if libtool supports shared libraries])
+-    AC_MSG_RESULT([$can_build_shared])
+-
+-    AC_MSG_CHECKING([whether to build shared libraries])
+-    test "$can_build_shared" = "no" && enable_shared=no
+-
+-    # On AIX, shared libraries and static libraries use the same namespace, and
+-    # are all built from PIC.
+-    case $host_os in
+-      aix3*)
+-        test "$enable_shared" = yes && enable_static=no
+-        if test -n "$RANLIB"; then
+-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+-          postinstall_cmds='$RANLIB $lib'
+-        fi
+-        ;;
+-      aix[[4-9]]*)
+-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+-	  test "$enable_shared" = yes && enable_static=no
+-	fi
+-        ;;
+-    esac
+-    AC_MSG_RESULT([$enable_shared])
+-
+-    AC_MSG_CHECKING([whether to build static libraries])
+-    # Make sure either enable_shared or enable_static is yes.
+-    test "$enable_shared" = yes || enable_static=yes
+-    AC_MSG_RESULT([$enable_static])
+-
+-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+-    _LT_TAGVAR(LD, $1)="$LD"
+-
+-    ## CAVEAT EMPTOR:
+-    ## There is no encapsulation within the following macros, do not change
+-    ## the running order or otherwise move them around unless you know exactly
+-    ## what you are doing...
+-    _LT_SYS_HIDDEN_LIBDEPS($1)
+-    _LT_COMPILER_PIC($1)
+-    _LT_COMPILER_C_O($1)
+-    _LT_COMPILER_FILE_LOCKS($1)
+-    _LT_LINKER_SHLIBS($1)
+-    _LT_SYS_DYNAMIC_LINKER($1)
+-    _LT_LINKER_HARDCODE_LIBPATH($1)
+-
+-    _LT_CONFIG($1)
+-  fi # test -n "$compiler"
+-
+-  GCC=$lt_save_GCC
+-  CC="$lt_save_CC"
+-fi # test "$_lt_disable_FC" != yes
+-
+-AC_LANG_POP
+-])# _LT_LANG_FC_CONFIG
+-
+-
+-# _LT_LANG_GCJ_CONFIG([TAG])
+-# --------------------------
+-# Ensure that the configuration variables for the GNU Java Compiler compiler
+-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+-# to write the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_GCJ_CONFIG],
+-[AC_REQUIRE([LT_PROG_GCJ])dnl
+-AC_LANG_SAVE
+-
+-# Source file extension for Java test sources.
+-ac_ext=java
+-
+-# Object file extension for compiled Java test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="class foo {}"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_TAG_COMPILER
+-
+-# save warnings/boilerplate of simple test code
+-_LT_COMPILER_BOILERPLATE
+-_LT_LINKER_BOILERPLATE
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-lt_save_GCC=$GCC
+-GCC=yes
+-CC=${GCJ-"gcj"}
+-compiler=$CC
+-_LT_TAGVAR(compiler, $1)=$CC
+-_LT_TAGVAR(LD, $1)="$LD"
+-_LT_CC_BASENAME([$compiler])
+-
+-# GCJ did not exist at the time GCC didn't implicitly link libc in.
+-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+-
+-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-
+-if test -n "$compiler"; then
+-  _LT_COMPILER_NO_RTTI($1)
+-  _LT_COMPILER_PIC($1)
+-  _LT_COMPILER_C_O($1)
+-  _LT_COMPILER_FILE_LOCKS($1)
+-  _LT_LINKER_SHLIBS($1)
+-  _LT_LINKER_HARDCODE_LIBPATH($1)
+-
+-  _LT_CONFIG($1)
+-fi
+-
+-AC_LANG_RESTORE
+-
+-GCC=$lt_save_GCC
+-CC="$lt_save_CC"
+-])# _LT_LANG_GCJ_CONFIG
+-
+-
+-# _LT_LANG_RC_CONFIG([TAG])
+-# -------------------------
+-# Ensure that the configuration variables for the Windows resource compiler
+-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+-# to write the compiler configuration to `libtool'.
+-m4_defun([_LT_LANG_RC_CONFIG],
+-[AC_REQUIRE([LT_PROG_RC])dnl
+-AC_LANG_SAVE
+-
+-# Source file extension for RC test sources.
+-ac_ext=rc
+-
+-# Object file extension for compiled RC test sources.
+-objext=o
+-_LT_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code="$lt_simple_compile_test_code"
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_TAG_COMPILER
+-
+-# save warnings/boilerplate of simple test code
+-_LT_COMPILER_BOILERPLATE
+-_LT_LINKER_BOILERPLATE
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-lt_save_GCC=$GCC
+-GCC=
+-CC=${RC-"windres"}
+-compiler=$CC
+-_LT_TAGVAR(compiler, $1)=$CC
+-_LT_CC_BASENAME([$compiler])
+-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+-
+-if test -n "$compiler"; then
+-  :
+-  _LT_CONFIG($1)
+-fi
+-
+-GCC=$lt_save_GCC
+-AC_LANG_RESTORE
+-CC="$lt_save_CC"
+-])# _LT_LANG_RC_CONFIG
+-
+-
+-# LT_PROG_GCJ
+-# -----------
+-AC_DEFUN([LT_PROG_GCJ],
+-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+-    [AC_CHECK_TOOL(GCJ, gcj,)
+-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+-      AC_SUBST(GCJFLAGS)])])[]dnl
+-])
+-
+-# Old name:
+-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+-
+-
+-# LT_PROG_RC
+-# ----------
+-AC_DEFUN([LT_PROG_RC],
+-[AC_CHECK_TOOL(RC, windres,)
+-])
+-
+-# Old name:
+-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([LT_AC_PROG_RC], [])
+-
+-
+-# _LT_DECL_EGREP
+-# --------------
+-# If we don't have a new enough Autoconf to choose the best grep
+-# available, choose the one first in the user's PATH.
+-m4_defun([_LT_DECL_EGREP],
+-[AC_REQUIRE([AC_PROG_EGREP])dnl
+-AC_REQUIRE([AC_PROG_FGREP])dnl
+-test -z "$GREP" && GREP=grep
+-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+-_LT_DECL([], [EGREP], [1], [An ERE matcher])
+-_LT_DECL([], [FGREP], [1], [A literal string matcher])
+-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+-AC_SUBST([GREP])
+-])
+-
+-
+-# _LT_DECL_OBJDUMP
+-# --------------
+-# If we don't have a new enough Autoconf to choose the best objdump
+-# available, choose the one first in the user's PATH.
+-m4_defun([_LT_DECL_OBJDUMP],
+-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+-AC_SUBST([OBJDUMP])
+-])
+-
+-
+-# _LT_DECL_SED
+-# ------------
+-# Check for a fully-functional sed program, that truncates
+-# as few characters as possible.  Prefer GNU sed if found.
+-m4_defun([_LT_DECL_SED],
+-[AC_PROG_SED
+-test -z "$SED" && SED=sed
+-Xsed="$SED -e 1s/^X//"
+-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+-])# _LT_DECL_SED
+-
+-m4_ifndef([AC_PROG_SED], [
+-# NOTE: This macro has been submitted for inclusion into   #
+-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+-#  a released version of Autoconf we should remove this    #
+-#  macro and use it instead.                               #
+-
+-m4_defun([AC_PROG_SED],
+-[AC_MSG_CHECKING([for a sed that does not truncate output])
+-AC_CACHE_VAL(lt_cv_path_SED,
+-[# Loop through the user's path and test for sed and gsed.
+-# Then use that list of sed's as ones to test for truncation.
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for lt_ac_prog in sed gsed; do
+-    for ac_exec_ext in '' $ac_executable_extensions; do
+-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+-      fi
+-    done
+-  done
+-done
+-IFS=$as_save_IFS
+-lt_ac_max=0
+-lt_ac_count=0
+-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+-# along with /bin/sed that truncates output.
+-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+-  test ! -f $lt_ac_sed && continue
+-  cat /dev/null > conftest.in
+-  lt_ac_count=0
+-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+-  # Check for GNU sed and select it if it is found.
+-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+-    lt_cv_path_SED=$lt_ac_sed
+-    break
+-  fi
+-  while true; do
+-    cat conftest.in conftest.in >conftest.tmp
+-    mv conftest.tmp conftest.in
+-    cp conftest.in conftest.nl
+-    echo >>conftest.nl
+-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+-    cmp -s conftest.out conftest.nl || break
+-    # 10000 chars as input seems more than enough
+-    test $lt_ac_count -gt 10 && break
+-    lt_ac_count=`expr $lt_ac_count + 1`
+-    if test $lt_ac_count -gt $lt_ac_max; then
+-      lt_ac_max=$lt_ac_count
+-      lt_cv_path_SED=$lt_ac_sed
+-    fi
+-  done
+-done
+-])
+-SED=$lt_cv_path_SED
+-AC_SUBST([SED])
+-AC_MSG_RESULT([$SED])
+-])#AC_PROG_SED
+-])#m4_ifndef
+-
+-# Old name:
+-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([LT_AC_PROG_SED], [])
+-
+-
+-# _LT_CHECK_SHELL_FEATURES
+-# ------------------------
+-# Find out whether the shell is Bourne or XSI compatible,
+-# or has some other useful features.
+-m4_defun([_LT_CHECK_SHELL_FEATURES],
+-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+-# Try some XSI features
+-xsi_shell=no
+-( _lt_dummy="a/b/c"
+-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+-      = c,a/b,, \
+-    && eval 'test $(( 1 + 1 )) -eq 2 \
+-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+-  && xsi_shell=yes
+-AC_MSG_RESULT([$xsi_shell])
+-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+-
+-AC_MSG_CHECKING([whether the shell understands "+="])
+-lt_shell_append=no
+-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+-    >/dev/null 2>&1 \
+-  && lt_shell_append=yes
+-AC_MSG_RESULT([$lt_shell_append])
+-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+-
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-  lt_unset=unset
+-else
+-  lt_unset=false
+-fi
+-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+-
+-# test EBCDIC or ASCII
+-case `echo X|tr X '\101'` in
+- A) # ASCII based system
+-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+-  lt_SP2NL='tr \040 \012'
+-  lt_NL2SP='tr \015\012 \040\040'
+-  ;;
+- *) # EBCDIC based system
+-  lt_SP2NL='tr \100 \n'
+-  lt_NL2SP='tr \r\n \100\100'
+-  ;;
+-esac
+-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+-])# _LT_CHECK_SHELL_FEATURES
+-
+-
+-# _LT_PROG_XSI_SHELLFNS
+-# ---------------------
+-# Bourne and XSI compatible variants of some useful shell functions.
+-m4_defun([_LT_PROG_XSI_SHELLFNS],
+-[case $xsi_shell in
+-  yes)
+-    cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+-  case ${1} in
+-    */*) func_dirname_result="${1%/*}${2}" ;;
+-    *  ) func_dirname_result="${3}" ;;
+-  esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+-  func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-#   dirname:  Compute the dirname of FILE.  If nonempty,
+-#             add APPEND to the result, otherwise set result
+-#             to NONDIR_REPLACEMENT.
+-#             value returned in "$func_dirname_result"
+-#   basename: Compute filename of FILE.
+-#             value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+-  case ${1} in
+-    */*) func_dirname_result="${1%/*}${2}" ;;
+-    *  ) func_dirname_result="${3}" ;;
+-  esac
+-  func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+-  # positional parameters, so assign one to ordinary parameter first.
+-  func_stripname_result=${3}
+-  func_stripname_result=${func_stripname_result#"${1}"}
+-  func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+-  func_opt_split_opt=${1%%=*}
+-  func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+-  case ${1} in
+-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+-    *)    func_lo2o_result=${1} ;;
+-  esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+-  func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+-  func_arith_result=$(( $[*] ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+-  func_len_result=${#1}
+-}
+-
+-_LT_EOF
+-    ;;
+-  *) # Bourne compatible functions.
+-    cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+-  # Extract subdirectory from the argument.
+-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+-  if test "X$func_dirname_result" = "X${1}"; then
+-    func_dirname_result="${3}"
+-  else
+-    func_dirname_result="$func_dirname_result${2}"
+-  fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+-}
+-
+-dnl func_dirname_and_basename
+-dnl A portable version of this function is already defined in general.m4sh
+-dnl so there is no need for it here.
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+-  case ${2} in
+-    .*) func_stripname_result=`$ECHO "X${3}" \
+-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+-    *)  func_stripname_result=`$ECHO "X${3}" \
+-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+-  esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[[^=]]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+-  func_arith_result=`expr "$[@]"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+-  yes)
+-    cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+-  eval "$[1]+=\$[2]"
+-}
+-_LT_EOF
+-    ;;
+-  *)
+-    cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+-  eval "$[1]=\$$[1]\$[2]"
+-}
+-
+-_LT_EOF
+-    ;;
+-  esac
+-])
+-
+-# Helper functions for option handling.                    -*- Autoconf -*-
+-#
+-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+-#   Written by Gary V. Vaughan, 2004
+-#
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-
+-# serial 6 ltoptions.m4
+-
+-# This is to help aclocal find these macros, as it can't see m4_define.
+-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+-
+-
+-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+-# ------------------------------------------
+-m4_define([_LT_MANGLE_OPTION],
+-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+-
+-
+-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+-# ---------------------------------------
+-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+-# saved as a flag.
+-m4_define([_LT_SET_OPTION],
+-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+-        _LT_MANGLE_DEFUN([$1], [$2]),
+-    [m4_warning([Unknown $1 option `$2'])])[]dnl
+-])
+-
+-
+-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+-# ------------------------------------------------------------
+-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+-m4_define([_LT_IF_OPTION],
+-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+-
+-
+-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+-# -------------------------------------------------------
+-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+-# are set.
+-m4_define([_LT_UNLESS_OPTIONS],
+-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+-		      [m4_define([$0_found])])])[]dnl
+-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+-])[]dnl
+-])
+-
+-
+-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+-# ----------------------------------------
+-# OPTION-LIST is a space-separated list of Libtool options associated
+-# with MACRO-NAME.  If any OPTION has a matching handler declared with
+-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+-# the unknown option and exit.
+-m4_defun([_LT_SET_OPTIONS],
+-[# Set options
+-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+-    [_LT_SET_OPTION([$1], _LT_Option)])
+-
+-m4_if([$1],[LT_INIT],[
+-  dnl
+-  dnl Simply set some default values (i.e off) if boolean options were not
+-  dnl specified:
+-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+-  ])
+-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+-  ])
+-  dnl
+-  dnl If no reference was made to various pairs of opposing options, then
+-  dnl we run the default mode handler for the pair.  For example, if neither
+-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+-  dnl archives by default:
+-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+-  		   [_LT_ENABLE_FAST_INSTALL])
+-  ])
+-])# _LT_SET_OPTIONS
+-
+-
+-
+-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+-# -----------------------------------------
+-m4_define([_LT_MANGLE_DEFUN],
+-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+-
+-
+-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+-# -----------------------------------------------
+-m4_define([LT_OPTION_DEFINE],
+-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+-])# LT_OPTION_DEFINE
+-
+-
+-# dlopen
+-# ------
+-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+-])
+-
+-AU_DEFUN([AC_LIBTOOL_DLOPEN],
+-[_LT_SET_OPTION([LT_INIT], [dlopen])
+-AC_DIAGNOSE([obsolete],
+-[$0: Remove this warning and the call to _LT_SET_OPTION when you
+-put the `dlopen' option into LT_INIT's first parameter.])
+-])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+-
+-
+-# win32-dll
+-# ---------
+-# Declare package support for building win32 dll's.
+-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+-[enable_win32_dll=yes
+-
+-case $host in
+-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+-  AC_CHECK_TOOL(AS, as, false)
+-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+-  ;;
+-esac
+-
+-test -z "$AS" && AS=as
+-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+-
+-test -z "$DLLTOOL" && DLLTOOL=dlltool
+-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+-
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+-])# win32-dll
+-
+-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-_LT_SET_OPTION([LT_INIT], [win32-dll])
+-AC_DIAGNOSE([obsolete],
+-[$0: Remove this warning and the call to _LT_SET_OPTION when you
+-put the `win32-dll' option into LT_INIT's first parameter.])
+-])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+-
+-
+-# _LT_ENABLE_SHARED([DEFAULT])
+-# ----------------------------
+-# implement the --enable-shared flag, and supports the `shared' and
+-# `disable-shared' LT_INIT options.
+-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+-m4_define([_LT_ENABLE_SHARED],
+-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+-AC_ARG_ENABLE([shared],
+-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+-    [p=${PACKAGE-default}
+-    case $enableval in
+-    yes) enable_shared=yes ;;
+-    no) enable_shared=no ;;
+-    *)
+-      enable_shared=no
+-      # Look at the argument we got.  We use all the common list separators.
+-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+-      for pkg in $enableval; do
+-	IFS="$lt_save_ifs"
+-	if test "X$pkg" = "X$p"; then
+-	  enable_shared=yes
+-	fi
+-      done
+-      IFS="$lt_save_ifs"
+-      ;;
+-    esac],
+-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+-
+-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+-	[Whether or not to build shared libraries])
+-])# _LT_ENABLE_SHARED
+-
+-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+-
+-# Old names:
+-AC_DEFUN([AC_ENABLE_SHARED],
+-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+-])
+-
+-AC_DEFUN([AC_DISABLE_SHARED],
+-[_LT_SET_OPTION([LT_INIT], [disable-shared])
+-])
+-
+-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+-
+-
+-
+-# _LT_ENABLE_STATIC([DEFAULT])
+-# ----------------------------
+-# implement the --enable-static flag, and support the `static' and
+-# `disable-static' LT_INIT options.
+-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+-m4_define([_LT_ENABLE_STATIC],
+-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+-AC_ARG_ENABLE([static],
+-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+-    [p=${PACKAGE-default}
+-    case $enableval in
+-    yes) enable_static=yes ;;
+-    no) enable_static=no ;;
+-    *)
+-     enable_static=no
+-      # Look at the argument we got.  We use all the common list separators.
+-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+-      for pkg in $enableval; do
+-	IFS="$lt_save_ifs"
+-	if test "X$pkg" = "X$p"; then
+-	  enable_static=yes
+-	fi
+-      done
+-      IFS="$lt_save_ifs"
+-      ;;
+-    esac],
+-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+-
+-    _LT_DECL([build_old_libs], [enable_static], [0],
+-	[Whether or not to build static libraries])
+-])# _LT_ENABLE_STATIC
+-
+-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+-
+-# Old names:
+-AC_DEFUN([AC_ENABLE_STATIC],
+-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+-])
+-
+-AC_DEFUN([AC_DISABLE_STATIC],
+-[_LT_SET_OPTION([LT_INIT], [disable-static])
+-])
+-
+-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+-
+-
+-
+-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+-# ----------------------------------
+-# implement the --enable-fast-install flag, and support the `fast-install'
+-# and `disable-fast-install' LT_INIT options.
+-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+-m4_define([_LT_ENABLE_FAST_INSTALL],
+-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+-AC_ARG_ENABLE([fast-install],
+-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+-    [p=${PACKAGE-default}
+-    case $enableval in
+-    yes) enable_fast_install=yes ;;
+-    no) enable_fast_install=no ;;
+-    *)
+-      enable_fast_install=no
+-      # Look at the argument we got.  We use all the common list separators.
+-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+-      for pkg in $enableval; do
+-	IFS="$lt_save_ifs"
+-	if test "X$pkg" = "X$p"; then
+-	  enable_fast_install=yes
+-	fi
+-      done
+-      IFS="$lt_save_ifs"
+-      ;;
+-    esac],
+-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+-
+-_LT_DECL([fast_install], [enable_fast_install], [0],
+-	 [Whether or not to optimize for fast installation])dnl
+-])# _LT_ENABLE_FAST_INSTALL
+-
+-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+-
+-# Old names:
+-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+-AC_DIAGNOSE([obsolete],
+-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+-the `fast-install' option into LT_INIT's first parameter.])
+-])
+-
+-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+-AC_DIAGNOSE([obsolete],
+-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+-the `disable-fast-install' option into LT_INIT's first parameter.])
+-])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+-
+-
+-# _LT_WITH_PIC([MODE])
+-# --------------------
+-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+-# LT_INIT options.
+-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+-m4_define([_LT_WITH_PIC],
+-[AC_ARG_WITH([pic],
+-    [AS_HELP_STRING([--with-pic],
+-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+-    [pic_mode="$withval"],
+-    [pic_mode=default])
+-
+-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+-
+-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+-])# _LT_WITH_PIC
+-
+-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+-
+-# Old name:
+-AU_DEFUN([AC_LIBTOOL_PICMODE],
+-[_LT_SET_OPTION([LT_INIT], [pic-only])
+-AC_DIAGNOSE([obsolete],
+-[$0: Remove this warning and the call to _LT_SET_OPTION when you
+-put the `pic-only' option into LT_INIT's first parameter.])
+-])
+-
+-dnl aclocal-1.4 backwards compatibility:
+-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+-
+-
+-m4_define([_LTDL_MODE], [])
+-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+-		 [m4_define([_LTDL_MODE], [nonrecursive])])
+-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+-		 [m4_define([_LTDL_MODE], [recursive])])
+-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+-		 [m4_define([_LTDL_MODE], [subproject])])
+-
+-m4_define([_LTDL_TYPE], [])
+-LT_OPTION_DEFINE([LTDL_INIT], [installable],
+-		 [m4_define([_LTDL_TYPE], [installable])])
+-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+-		 [m4_define([_LTDL_TYPE], [convenience])])
+-
+-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+-#
+-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+-# Written by Gary V. Vaughan, 2004
+-#
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-
+-# serial 6 ltsugar.m4
+-
+-# This is to help aclocal find these macros, as it can't see m4_define.
+-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+-
+-
+-# lt_join(SEP, ARG1, [ARG2...])
+-# -----------------------------
+-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+-# associated separator.
+-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+-# versions in m4sugar had bugs.
+-m4_define([lt_join],
+-[m4_if([$#], [1], [],
+-       [$#], [2], [[$2]],
+-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+-m4_define([_lt_join],
+-[m4_if([$#$2], [2], [],
+-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+-
+-
+-# lt_car(LIST)
+-# lt_cdr(LIST)
+-# ------------
+-# Manipulate m4 lists.
+-# These macros are necessary as long as will still need to support
+-# Autoconf-2.59 which quotes differently.
+-m4_define([lt_car], [[$1]])
+-m4_define([lt_cdr],
+-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+-       [$#], 1, [],
+-       [m4_dquote(m4_shift($@))])])
+-m4_define([lt_unquote], $1)
+-
+-
+-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+-# ------------------------------------------
+-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+-# Note that neither SEPARATOR nor STRING are expanded; they are appended
+-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+-# than defined and empty).
+-#
+-# This macro is needed until we can rely on Autoconf 2.62, since earlier
+-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+-m4_define([lt_append],
+-[m4_define([$1],
+-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+-
+-
+-
+-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+-# ----------------------------------------------------------
+-# Produce a SEP delimited list of all paired combinations of elements of
+-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+-# has the form PREFIXmINFIXSUFFIXn.
+-# Needed until we can rely on m4_combine added in Autoconf 2.62.
+-m4_define([lt_combine],
+-[m4_if(m4_eval([$# > 3]), [1],
+-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+-[[m4_foreach([_Lt_prefix], [$2],
+-	     [m4_foreach([_Lt_suffix],
+-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+-
+-
+-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+-# -----------------------------------------------------------------------
+-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+-m4_define([lt_if_append_uniq],
+-[m4_ifdef([$1],
+-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+-		 [lt_append([$1], [$2], [$3])$4],
+-		 [$5])],
+-	  [lt_append([$1], [$2], [$3])$4])])
+-
+-
+-# lt_dict_add(DICT, KEY, VALUE)
+-# -----------------------------
+-m4_define([lt_dict_add],
+-[m4_define([$1($2)], [$3])])
+-
+-
+-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+-# --------------------------------------------
+-m4_define([lt_dict_add_subkey],
+-[m4_define([$1($2:$3)], [$4])])
+-
+-
+-# lt_dict_fetch(DICT, KEY, [SUBKEY])
+-# ----------------------------------
+-m4_define([lt_dict_fetch],
+-[m4_ifval([$3],
+-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+-
+-
+-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+-# -----------------------------------------------------------------
+-m4_define([lt_if_dict_fetch],
+-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+-	[$5],
+-    [$6])])
+-
+-
+-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+-# --------------------------------------------------------------
+-m4_define([lt_dict_filter],
+-[m4_if([$5], [], [],
+-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+-])
+-
+-# ltversion.m4 -- version numbers			-*- Autoconf -*-
+-#
+-#   Copyright (C) 2004 Free Software Foundation, Inc.
+-#   Written by Scott James Remnant, 2004
+-#
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-
+-# Generated from ltversion.in.
+-
+-# serial 3017 ltversion.m4
+-# This file is part of GNU Libtool
+-
+-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+-m4_define([LT_PACKAGE_REVISION], [1.3017])
+-
+-AC_DEFUN([LTVERSION_VERSION],
+-[macro_version='2.2.6b'
+-macro_revision='1.3017'
+-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+-_LT_DECL(, macro_revision, 0)
+-])
+-
+-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+-#
+-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+-#   Written by Scott James Remnant, 2004.
+-#
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-
+-# serial 4 lt~obsolete.m4
+-
+-# These exist entirely to fool aclocal when bootstrapping libtool.
+-#
+-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+-# which have later been changed to m4_define as they aren't part of the
+-# exported API, or moved to Autoconf or Automake where they belong.
+-#
+-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+-# using a macro with the same name in our local m4/libtool.m4 it'll
+-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+-# and doesn't know about Autoconf macros at all.)
+-#
+-# So we provide this file, which has a silly filename so it's always
+-# included after everything else.  This provides aclocal with the
+-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+-# because those macros already exist, or will be overwritten later.
+-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+-#
+-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+-# Yes, that means every name once taken will need to remain here until
+-# we give up compatibility with versions before 1.7, at which point
+-# we need to keep only those names which we still refer to.
+-
+-# This is to help aclocal find these macros, as it can't see m4_define.
+-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+-
+-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+-m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+-
+ # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+@@ -9121,3 +1155,8 @@ AC_SUBST([am__untar])
+ ]) # _AM_PROG_TAR
+ 
+ m4_include([config/autotroll.m4])
++m4_include([config/libtool.m4])
++m4_include([config/ltoptions.m4])
++m4_include([config/ltsugar.m4])
++m4_include([config/ltversion.m4])
++m4_include([config/lt~obsolete.m4])
+--- mathgl-1.11.0.1.orig/configure
++++ mathgl-1.11.0.1/configure
+@@ -8735,6 +8735,10 @@ _lt_linker_boilerplate=`cat conftest.err
+ $RM -r conftest*
+ 
+ 
++## CAVEAT EMPTOR:
++## There is no encapsulation within the following macros, do not change
++## the running order or otherwise move them around unless you know exactly
++## what you are doing...
+ if test -n "$compiler"; then
+ 
+ lt_prog_compiler_no_builtin_flag=
+@@ -8760,11 +8764,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:8763: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:8767: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:8767: \$? = $ac_status" >&5
++   echo "$as_me:8771: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+@@ -9099,11 +9103,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:9102: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:9106: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:9106: \$? = $ac_status" >&5
++   echo "$as_me:9110: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+@@ -9204,11 +9208,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:9207: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:9211: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:9211: \$? = $ac_status" >&5
++   echo "$as_me:9215: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -9259,11 +9263,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:9262: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:9266: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:9266: \$? = $ac_status" >&5
++   echo "$as_me:9270: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -11643,7 +11647,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 11646 "configure"
++#line 11650 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -11739,7 +11743,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 11742 "configure"
++#line 11746 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -13695,11 +13699,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:13698: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:13702: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:13702: \$? = $ac_status" >&5
++   echo "$as_me:13706: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+@@ -13794,11 +13798,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:13797: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:13801: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:13801: \$? = $ac_status" >&5
++   echo "$as_me:13805: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -13846,11 +13850,11 @@ else
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:13849: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:13853: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:13853: \$? = $ac_status" >&5
++   echo "$as_me:13857: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+--- mathgl-1.11.0.1.orig/widgets/Makefile.in
++++ mathgl-1.11.0.1/widgets/Makefile.in
+@@ -62,7 +62,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(sr
+ subdir = widgets
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- /dev/null
++++ mathgl-1.11.0.1/texinfo/mgl_ru.info-1
+@@ -0,0 +1,6077 @@
++This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
++
++Это документация для MathGL (версии 1.11) - библиотеки классов и
++функций для построения научной графики. Пожалуйста сообщайте о любых
++ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++
++   Copyright (C) 2009 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++INFO-DIR-SECTION MathGL documentation system
++START-INFO-DIR-ENTRY
++* MathGL: (mathgl). The library for scientific graphics.
++END-INFO-DIR-ENTRY
++
++
++File: mgl_ru.info,  Node: Top,  Next: MGL interface,  Up: (dir)
++
++Язык MGL
++************
++
++Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
++любых ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++Дополнительную информацию о MGL и MathGL можно найти на домашней
++странице проекта `http://mathgl.sourceforge.net/'.
++
++   Copyright (C) 2010 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++* Menu:
++
++* MGL interface::
++* Examples::
++* Samples::
++* Copying This Manual::
++* Index::
++
++
++File: mgl_ru.info,  Node: MGL interface,  Next: Examples,  Up: Top
++
++1 Язык MGL
++**************
++
++MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
++данных. Скрипты MGL можно использовать как независимо (программами
++UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
++вызовами библиотеки.
++
++   Язык MGL достаточно простой. Каждая строка - отдельная команда.
++Первое слово - имя команды, а все остальные ее аргументы. Команда может
++иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
++одно от другого пробелом или символом табуляции. Различий между верхним
++и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
++начинает комментарий - все символы после него игнорируются до конца
++строки. Исключением является случай, когда `#' входит в строку. Опции
++команды указываются после символа `;' (*note Command options::). Символ
++`:' начинает новую команду (подобно переводу строки) если он расположен
++не внутри скобок или строки.
++
++   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
++`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
++параметров/макроопределений подставляются в строку вместо ссылки до
++выполнением команды. Это позволяет использовать один и тот же скрипт
++при различных входных параметрах командной строки или вводить
++макроопределения по ходу исполнения команд скрипта.
++
++   Аргументы команды могут быть строками, переменными или числами.
++   * Строка - произвольный набор символов между метками `''.
++
++   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
++     начинаться с буквы и не быть длиннее 64 символов). В качестве
++     переменной можно использовать временные массивы, включающие в себя:
++        * срезы ("подмассивы") массивов данных (подобно команде *note
++          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
++          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
++          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
++          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
++          `a(m:n)'.
++
++        * произвольные комбинации столбцов данных (например,
++          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
++          командой *note idset:: или в файле данных (в строке
++          начинающейся с `##').
++
++        * произвольное выражение из существующих переменных и констант.
++          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
++          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
++
++        * массивы с элементами заданными в квадратных скобках [],
++          разделенные `,'. При этом внутри выражения не должно быть
++          пробелов! Например, `[1,2,3]' даст временный массив из 3
++          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
++          т.д. Элементами такой конструкции могут быть и массивы если
++          их размерности одинаковые, например `[v1,v2,...,vn]'.
++
++        * результат команд построения новых данных (*note Make another
++          data::), если они заключены в фигурные скобки {}. Например,
++          `{sum dat 'x'}' даст временный массив, который есть результат
++          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
++          полученный командой `sum tmp dat 'x''. При этом можно
++          использовать вложенные конструкции, например `{sum {max dat
++          'z'} 'x'}'.
++     Временные массивы не могут стоять в качестве первого аргумента
++     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
++
++   * К скалярным переменным, кроме собственно чисел, относятся:
++     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
++     :=-1', переменные с суффиксами (*note Suffixes::), переменные
++     определенные командой *note define::. Также массивы размером 1x1x1
++     считаются скалярами (например, `pi/dat.nx').
++   Перед первым использованием все переменные должны быть определены с
++помощью команд, создающих массивы (*note new::, *note var::, *note
++list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
++*note Data create:: и *note Make another data::).
++
++   Команды могут иметь несколько наборов аргументов (например, `plot
++ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
++должны быть указаны, однако часть из них могут иметь значения по
++умолчанию. Такие аргументы в описании команд будут помещены в
++квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
++этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
++...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
++с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
++''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
++
++   Все команды MGL можно разделить на несколько групп. В дальнейшем
++будет использованы следующие обозначения при описании команд: имя
++команды выделено жирным, строки заключены в одинарные кавычки ",
++переменные выделены курсивом, числа (скаляры) выделены моноширинным
++шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
++и показаны их значения по умолчанию. Подробную информацию о цвете и
++стиле линий (*note Line styles::), цветовых схемах (*note Color
++scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
++формулах (*note Textual formulas::) можно найти в соответствующих
++разделах.
++
++* Menu:
++
++
++* General concepts::
++* Graphics setup ::
++* Axis settings ::
++* Transformation matrix ::
++* Export to file ::
++* Primitives drawing ::
++* Text printing ::
++* Axis and Colorbar ::
++* Legend ::
++* 1D plotting ::
++* 2D plotting ::
++* 3D plotting ::
++* Dual plotting ::
++* Vector fields ::
++* Other plotting ::
++* Nonlinear fitting ::
++* Data create ::
++* Data filling ::
++* Rearrange data ::
++* File I/O ::
++* Make another data ::
++* Change data ::
++* Operators ::
++* Program flow ::
++* Command options ::
++* Suffixes::
++* Utilities::
++
++
++File: mgl_ru.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
++
++1.1 Основные принципы
++=====================================
++
++Возможности библиотеки MathGL довольно богаты - число только основных
++типов графиков превышает 50 видов. Кроме того, есть функции для
++обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
++старался придерживаться единого стиля в порядке аргументов функций и
++способе их "настройки". В основном все ниже сказанное относится к
++функциям рисования различных графиков.
++
++   Всего основных концепций (базисных идей) четыре:
++  1. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
++     стиль и цвет текста) задаются строками.* Это обеспечивает:
++     удобство для пользователя - короткую строку легче читать и здесь
++     тяжелее ошибиться, чем в большом списке параметров; переносимость
++     - строки выглядят одинаково на всех платформах и не надо
++     заботиться о типе и числе аргументов.
++
++  2. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
++     опять из-за удобства. В "упрощенном" варианте для построения
++     графика нужны только один-два массив(а) данных, которые
++     автоматически равнораспределяются в заданном диапазоне осей
++     координат. В "продвинутой" версии можно не только указать явно
++     диапазон построения графика, но и задать его параметрически.
++     Последнее позволяет легко строить довольно сложные кривые и
++     поверхности. В обоих вариантах функций порядок аргументов
++     стандартен: сначала идут массивы данных, потом необязательный
++     строковый параметр стиля графика, а далее - второстепенные
++     необязательные параметры для более точной настройки графика.
++
++  3. *Все элементы рисунков векторные.* Изначально библиотека MathGL
++     была ориентированна на работу с научными данными, которые по своей
++     природе векторные (линии, грани, матрицы и т.д.). Поэтому
++     векторность используется во всех рисунках! Причем иногда даже в
++     ущерб производительности (например, при выводе шрифтов). Помимо
++     всего прочего, векторность позволяет легко масштабировать рисунок
++     - измените размер картинки в 2 раза, и рисунок пропорционально
++     растянется.
++
++  4. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
++     неожиданный, подход позволяет создавать огромное количество
++     "комбинированных" графиков. Например, поверхность с наложенными
++     линиями уровня строится двумя последовательными вызовами функций
++     рисования поверхности и линий уровня (в любом порядке). И
++     совершенно не надо писать специальную функцию (как в Matlab и
++     некоторых других программах) для рисования этого графика. Примеров
++     таких графиков можно привести множество (см. раздел *note Hints::
++     и сайт программы `http://mathgl.sf.net/index.html').
++
++   Кроме основных концепций я хотел бы остановиться на нескольких, как
++оказалось, нетривиальных моментах - способе указания положения графика,
++осей координат и строковых параметров линий, поверхностей, текста.
++
++* Menu:
++
++* Coordinate axes::
++* Line styles::
++* Color scheme::
++* Font styles::
++* Textual formulas::
++
++
++File: mgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
++
++1.1.1 Оси координат
++-------------------------------
++
++Представление системы координат в MathGL состоит из двух частей.
++Вначале координаты нормируются в интервал MINxMAX (*note Axis
++settings::). Если флаг CUT установлен, то точки вне интервала
++отбрасываются, в противном случае, они проецируются на ограничивающий
++параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
++внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
++которых значение функции `CutOff'() не равно нулю. После этого формулы
++перехода в криволинейную систему координат `SetFunc()'применяются к
++каждой точке. Наконец, точка данных отображается с помощью одной из
++графических функций.
++
++   Величины MAX, MIN можно изменять вручную. Однако, после этого
++необходимо вызвать функцию `RecalcBorder()' для настройки графика.
++Более удобный и безопасный путь состоит в вызове функций `Axis(),
++SetRanges()' и др. В последнем случае функция `RecalcBorder()'
++вызывается автоматически. Размеры осей можно задавать и автоматически
++по минимальному и максимальному значениям массива данных. Для этого
++предназначены функции `XRange(), YRange(), ZRange()'. Второй не
++обязательный аргумент указывает, заменять ли новые значения диапазона
++изменения оси координат (по умолчанию) или только расширить уже
++существующий диапазон.
++
++   Точка пересечения осей координат задается переменной ORG и действует
++на последующие вызовы функций рисования осей координат и сетки. По
++умолчанию, если точка пересечения осей координат попадает вне диапазона
++осей координат, то она проецируется на границу области. Изменить такое
++поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
++ORG равно NAN, то соответствующее значение будет выбрано автоматически.
++
++   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
++ось _c_. Она используется при окрашивании поверхностей и задает границы
++изменения функции при окрашивании. При вызове `Axis()' ее границы
++автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
++изменение границ цветового интервала посредством вызова функции
++`CAxis()' или изменение границ по заданному массиву `CRange()'.
++Используйте `Colorbar()' для отображения цветовой шкалы.
++
++   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
++settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
++положительны) или их число (если отрицательны) или логарифмические
++метки (если равны нулю); второ NS задает число "подметок"; последний
++определяет начальную точку для меток (по умолчанию это точка
++пересечения осей). Функция SETTUNETICKS включает/выключает выделение
++общего множителя (большого или малого факторов в диапазоне) для меток
++осей координат. Наконец, если стандартный вид меток не устраивает
++пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
++символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
++SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
++текст использовав функцию `SetTicksVal()'.
++
++
++File: mgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
++
++1.1.2 Стиль линий
++---------------------------
++
++Стиль линии задается строкой, которая может содержать символ цвета
++(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
++ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
++`#'). Если пропущен цвет или тип пунктира, то используется значение по
++умолчанию с последним указанным цветом или значение из палитры (для
++*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
++темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
++пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
++`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
++`p'.
++
++   Символы цвета те же, что и в классе mglColor (*note mglColor
++class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
++зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
++голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
++`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
++серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
++сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
++небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
++темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
++оранжевый, `Q' - темно оранжевый (коричневый).
++
++   Тип пунктира: пробел - нет линии (для рисования только маркеров),
++`-' - сплошная линия (################), `|' - длинный пунктир
++(########________), `;' - пунктир (####____####____), `=' - короткий
++пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
++пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
++(###__#__###__#__).
++
++   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
++- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
++треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
++`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
++`#.' - точка в окружности. Если в строке присутствует символ `#', то
++используются символы с заполнением.
++
++ [image src="../png/sample5.png" ]
++
++Стили линий и маркеров.
++
++   На конце и в начале линии можно выводить специальный символ
++(стрелку), если в строке указать один из символов: `A' - стрелка
++наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
++чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
++нет стрелки (по умолчанию). При этом действует следующее правило:
++первый символ определяет стрелку на конце линии, второй символ -
++стрелку в начале линии. Например, `r-A' - красная сплошная линия со
++стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
++вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
++действуют и при построении графиков (например, *note 1D plotting::).
++
++ [image src="../png/sampled.png" ]
++
++Стили стрелок.
++
++
++File: mgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
++
++1.1.3 Цветовая схема
++---------------------------------
++
++Цветовая схема используется для определения цвета поверхностей, линий
++уровня и пр. Цветовая схема задается строкой _s_, которая содержит
++символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
++указывает на определение цвета в зависимости от положения точки в
++пространстве, а не по амплитуде данных. Символ `#' переключает
++рисование поверхности на сетчатое (для трехмерных поверхностей) или
++включает рисование сетки на поверхности. Символ `|' отключает
++интерполяцию цвета в цветовой схеме. Это может быть полезно для
++"резких" цветов, например, при рисовании матриц. Если в строке
++встречается символ `:', то он принудительно заканчивает разбор строки
++для стиля поверхности. После этого символа могут идти описание стиля
++текста или оси вращения кривой/линий уровня. Цветовая схема может
++содержать до 32 значений цвета.
++
++   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
++(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
++- обычный цвет, второй - его яркость цифрой. Цифра может быть в
++диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
++- очень темная версия цвета (почти черный), `9' - очень светлая версия
++цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
++
++ [image src="../png/colors.png" ]
++
++Цвета и их идентификаторы.
++
++   При определении цвета по _амплитуде_ (наиболее часто используется)
++окончательный цвет определяется путем линейной интерполяции массива
++цветов. Массив цветов формируется из цветов, указанных в строке
++спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
++(*note Axis settings::). Например, строка из 4 символов `bcyr'
++соответствует изменению цвета от синего (минимальное значение) через
++голубой и желтый (промежуточные значения) к красному (максимальное
++значение). Строка `kw' соответствует изменению цвета от черного
++(минимальное значение) к белому (максимальное значение). Строка из
++одного символа (например, `g') соответствует однотонному цвету (в
++данному случае зеленому).
++
++   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
++серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
++представляет обратную серую схему, когда большие значения темнее.
++Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
++схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
++рисовать двухцветные фигуры на белом или черном фоне, когда
++отрицательные значения показаны синим цветом, а положительные -
++красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
++известной схеме _jet_.
++
++ [image src="../png/color_schemes.png" ]
++
++Наиболее популярные цветовые схемы.
++
++   При определении цвета по _положению точки в пространстве_
++окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
++Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
++координаты точки, нормированные на MINxMAX. Такой тип определения цвета
++полезен, например, при построении поверхностей уровня, когда цвет дает
++представление о положении точки в пространстве.
++
++
++File: mgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
++
++1.1.4 Стиль текста
++-----------------------------
++
++Стиль текста задается строкой, которая может содержать несколько
++символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
++цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
++`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
++центру синего цвета.
++
++   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
++По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
++по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
++Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
++- подчеркнутый.
++
++   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
++команды смены стиля текста (например, \b для жирного текста): \a или
++\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
++курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
++или \underline - подчеркнутый, \w или \wire - контурный, \big -
++большего размера, @ - меньшего размера. Нижний и верхний индексы
++задаются символами `_' и `^'. При этом изменение стиля применяется
++только к следующему символу или к символам в фигурных скобках {},
++которые понимаются как единый блок. Например, сравните строки `sin
++(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
++строки с помощью команд #? или \color?, где `?' - символ цвета (*note
++Line styles::). Например, слова `Blue' и `red' будут окрашены в
++соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
++Большинство функций понимает символ новой строки `\n' и позволяет
++выводить много строчный текст. Наконец, можно использовать символы с
++произвольным UTF кодом с помощью команды `\utf0x????'. Например,
++`\utf0x3b1' даст символ \alpha.
++
++   Распознаются также большинство символов TeX и AMSTeX, команды смены
++стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
++\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
++\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
++содержит около 2000 символов. Отмечу, что первый пробел (пробел,
++табуляция и пр.) после команды игнорируется, а все остальные пробелы
++печатаются обычным образом. Например, следующие строки дают одинаковый
++результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
++
++   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
++\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
++\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
++\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
++\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
++\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
++\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
++\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
++\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
++M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
++- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
++- \Upsilon, \Xi - \Xi, Z - \Zeta.
++
++   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
++\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
++\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
++\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
++\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
++- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
++\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
++\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
++\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
++\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
++\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
++\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
++\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
++\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
++\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
++
++   Размер текста может быть задан явно (если SIZE>0) или относительно
++базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
++Значение SIZE=0 указывает, что соответствующая строка выводиться не
++будет. Базовый размер шрифта измеряется во внутренних единицах.
++Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
++позволяют задавать его в более "привычных" единицах.
++
++
++File: mgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
++
++1.1.5 Текстовые формулы
++---------------------------------------
++
++MathGL имеет быстрый парсер текстовых формул , понимающий большое число
++функций и операций. Базовые операции: `+' - сложение, `-' - вычитание,
++`*' - умножение, `/' - деление, `^' - возведение в целосичленную
++степень. Также есть логические операции: `<' - истина если if x<y, `>'
++- истина если x>y, `=' - истина если x=y, `&' - истина если x и y оба
++не равны нулю, `|' - истина если x или y не нуль. Логические операции
++имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
++
++   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
++в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
++логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
++модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
++`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
++случайное число, `pi' - число \pi=3.1415926...
++
++   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
++`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
++`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
++(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
++функции: `asinh(x)', `acosh(x)', `atanh(x)'.
++
++   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
++\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
++= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
++Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
++`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
++\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
++любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
++k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
++для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
++l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
++как решение уравнения W \exp(W) = x.
++
++   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
++dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
++`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
++\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
++\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
++E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
++:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
++\int_0^x dt \exp(-t^3) для x>=0.
++
++   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
++- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
++Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
++второго рода.
++
++   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
++E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
++F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
++\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
++интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
++
++   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
++`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
++`dc(u,m)', `nd(u,m)'.
++
++   Некоторые из функций могут быть недоступны если флаг NO_GSL был
++определен при компиляции библиотеки MathGL.
++
++   При разборе формул нет различия между верхним и нижним регистром.
++Если аргумент лежит вне области определения функции, то возвращается
++NaN.
++
++
++File: mgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
++
++1.2 Настройка графика
++=====================================
++
++Команды в этой группе влияют на вид всего рисунка. Соответственно они
++должны располагаться _перед_ вызовом функций непосредственно рисующих
++графики.
++
++* Menu:
++
++* Transparency ::
++* Lighting ::
++* Fog ::
++* Default sizes ::
++* Zooming ::
++* Cutting ::
++* Other settings ::
++
++
++File: mgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
++
++1.2.1 Прозрачность
++------------------------------
++
++Эти команды настраивают тип и степень прозрачности поверхностей.
++Главной является функция *note alpha::, которая включает/выключает
++прозрачность для всех графиков, созданных после вызова *note alpha::.
++Функция *note alphadef:: устанавливает величину alpha-канала по
++умолчанию. Прозрачность можно выключить для отдельного графика с
++помощью *note transparent::. Наконец, функция *note transptype:: задает
++тип прозрачности. См. раздел *note Transparent surface sample::, для
++примеров кода и графика.
++
++ -- Команда MGL: alpha `[val=on]'
++     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
++     прозрачность выключена. Используйте `transparent off' для
++     конкретного графика для выключения прозрачности.
++   
++ -- Команда MGL: alphadef `val'
++     Задает значение прозрачности по умолчанию для всех графиков.
++     Начальное значение 0.5.
++   
++ -- Команда MGL: transparent `val'
++     Временно включает/возвращает прозрачность графиков.
++   
++ -- Команда MGL: transptype `val'
++     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
++     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
++     (`1') - закрытые и закрывающие объекты единообразно ослабляют
++     интенсивность света (по RGB каналам). "Ламповая" прозрачность
++     (`2') - закрытые и закрывающие объекты являются источниками
++     дополнительного освещения (рекомендую установить `alphadef 0.3'
++     или меньше в этом случае). *Note Normal transparency::, *note
++     Glass-like transparency::, *note Lamp-like transparency::.
++
++
++File: mgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
++
++1.2.2 Освещение
++------------------------
++
++Эти функции настраивают освещение графика. Главная функция *note
++light:: включает/выключает освещение графиков построенных после ее
++вызова. MathGL  поддерживает до 10 независимых источников света.
++Положение, цвет, яркость каждого источника света можно задавать по
++отдельности. По умолчанию включен только первый (с порядковым номером
++`0') источник света белого цвета, расположенный сверху.
++
++ -- Команда MGL: light `[val=on]'
++     Включает/выключает освещение графика. По умолчанию освещение
++     выключено.
++
++ -- Команда MGL: light `n val'
++     Включает/выключает N-ый источник света.
++
++ -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
++     Добавляет источник света с номером N в положение {XPOS, YPOS,
++     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
++     [0,1].
++
++ -- Команда MGL: ambient `val'
++     Задает яркость рассеянного освещения. Значение должно быть в
++     диапазоне [0,1].
++
++
++File: mgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
++
++1.2.3 Туман
++----------------
++
++ -- Команда MGL: fog `val [dz=0.25]'
++     Имитирует туман на графике. Туман начинается на относительном
++     расстоянии DZ от точки обзора и его плотность растет
++     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
++     нормализованная на 1 глубина графика. Если D=`0' то туман
++     отсутствует. См. раздел *note Surface in fog sample::, для
++     примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
++
++1.2.4 Базовые размеры
++-----------------------------------
++
++Эти команды задают величины большинства параметров графика, включая
++размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
++настройки, они подействуют только на графики созданные после изменения
++настроек.
++
++ -- Команда MGL: barwidth `val'
++     Относительный размер прямоугольников в `bars, barh, boxplot'.
++     Значение по умолчанию `0.7'.
++
++ -- Команда MGL: marksize `val'
++     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
++
++ -- Команда MGL: arrowsize `val'
++     Размер стрелок для *note 1D plotting::, линий и кривых (*note
++     Primitives drawing::). Значение по умолчанию `1'.
++
++ -- Команда MGL: linewidth `val'
++     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
++     реальная толщина получается перемножением указанной ширины линии
++     на данное значение. Увеличение ширины линии актуально для больших
++     растровых рисунков. Значение по умолчанию `1'.
++
++ -- Команда MGL: ticklen `val' [`stt=1']
++     Относительная длина меток осей координат. Значение по умолчанию
++     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
++     в `sqrt(1+stt)' раз меньше.
++
++ -- Команда MGL: tickstl 'stl' ['sub'="]
++     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
++     то используется стиль по умолчанию (`k' или `w' в зависимости от
++     типа прозрачности). Если `sub=''', то используется стиль меток
++     (т.е. STL).
++
++
++File: mgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
++
++1.2.5 Масштабирование
++------------------------------------
++
++Эти команды управляют масштабированием всего рисунка (*note zoom::) или
++отдельной картинки (*note plotfactor::). Обычно эти функции
++используются для удаления пустого места вокруг графиков.
++
++ -- Команда MGL: plotfactor `val'
++     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
++     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
++     применяется только к конкретной картинке, заданной *note inplot::.
++     Используйте ноль для включения автоматического масштабирования.
++
++ -- Команда MGL: zoom `x1 y1 x2 y2'
++     Масштабирует весь рисунок. После вызова функции текущий график
++     будет очищен и в дальнейшем рисунок будет содержать только область
++     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
++     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
++     быть переписаны никакими другими функциями. Используйте `zoom 0 0
++     1 1' для перехода в масштаб по умолчанию.
++
++
++File: mgl_ru.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
++
++1.2.6 Обрезание
++------------------------
++
++Эти команды задают условия когда точка будет исключена (вырезана) из
++рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
++координат или амплитуде автоматически исключаются из рисования.
++
++ -- Команда MGL: cut `val'
++     Задает обрезание точек за пределами осей координат. Если `on' то
++     такие точки исключаются из рисования (это по умолчанию) иначе они
++     проецируются на ограничивающий прямоугольник.
++
++ -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
++     Задает границы параллелепипеда внутри которого точки не рисуются.
++     Если границы одинаковы (переменные равны), то параллелепипеда
++     считается пустым. См. раздел *note CutMinMax sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: cut 'cond'
++     Задает условие обрезания по формуле COND. Это условие исключает
++     точки из рисования если результат вычисления формулы не равен
++     нулю. Установите аргумент `''' для выключения условия обрезания.
++     См. раздел *note CutOff sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
++
++1.2.7 Прочие настройки
++-------------------------------------
++
++ -- Команда MGL: font 'fnt' [`val=6']
++     Задает стиль и размер шрифта (*note Text printing::). Вначале
++     используется `rC' - прямой шрифт с выравниванием по центру. По
++     умолчанию размер подписей оси координат в 1.4 раза больше.
++
++ -- Команда MGL: rotatetext `val'
++     Включает/выключает вращение меток и подписей осей координат вдоль
++     оси. Начальное значение `on'.
++
++ -- Команда MGL: palette 'colors'
++     Задает палитру как последовательность цветов. Значение по
++     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
++     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
++     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
++     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
++     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
++     используется в 1D графиках (*note 1D plotting::) для кривых с
++     неопределенным стилем линии.
++
++ -- Команда MGL: meshnum `num'
++     Задает ориентировочное число линий в *note mesh::, *note fall::,
++     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
++     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
++     линии, стрелки, ячейки.
++
++ -- Команда MGL: axialdir 'dir'
++     Задает ось вращения для *note axial::, *note torus::. По умолчанию
++     это 'z'.
++
++
++File: mgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
++
++1.3 Параметры осей координат
++==================================================
++
++Этот большой набор команд определяет вид осей и меток координат. Перед
++построением для каждой точки выполняются 3 преобразования: сначала
++определяется возможность рисования точки (*note Cutting::), далее
++применяются формулы перехода к криволинейным координатам и наконец
++точка отображается.
++
++ -- Команда MGL: axis `x1 y1 x2 y2'
++ -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
++ -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
++     Задает диапазон изменения координат. Если минимальное и
++     максимальное значение координаты равны, то они игнорируются по
++     данному направлению. Также устанавливает размер цветовой шкалы,
++     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
++     1].
++
++ -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
++     Задает формулы перехода к криволинейным координатам. Каждая строка
++     является математическим выражением, зависящим от старых координат
++     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
++     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
++     Для удаления формул соответствующий параметр должен быть пустым
++     `'''. Использование формул преобразования слегка замедляет
++     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
++     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
++     *Note Textual formulas::.
++
++ -- Команда MGL: axis `how'
++     Устанавливает одну из предопределенных систем криволинейных
++     координат в зависимости от параметра HOW: `0' - декартова система
++     (нет преобразования координат, наиболее быстрая); `1' - полярные
++     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
++     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
++     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
++     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
++     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
++     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
++     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
++     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
++     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
++     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
++     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
++     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
++     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
++     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
++     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
++     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
++
++ -- Команда MGL: caxis `z1 z2'
++     Задает масштаб цветовой шкалы (c-координаты). Эти значения
++     используются для определения цвета поверхностей и прочих 2D и 3D
++     графиков. Начальный диапазон равен [-1, 1].
++
++ -- Команда MGL: origin `x0 y0 [z0=nan]'
++     Задает центр пересечения осей координат. Если одно из значений
++     равно `nan', то выбрается оптимальное положение осей координат по
++     этому направлению.
++
++ -- Команда MGL: ternary `val'
++     Задает рисование треугольных (Ternary) осей координат. Это
++     специальный тип графика для 3 зависимых координат (компонент) A,
++     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
++     координаты A=x и B=y поскольку их достаточно для построения всех
++     графиков. При этом третья координата z является независимым
++     параметром для построения линий уровня, поверхностей и т.д. См.
++     раздел *note Ternary plot sample::, для примеров кода и графика.
++
++ -- Команда MGL: xrange dat [`add=off fact=0']
++ -- Команда MGL: yrange dat [`add=off fact=0']
++ -- Команда MGL: zrange dat [`add=off fact=0']
++ -- Команда MGL: crange dat [`add=off fact=0']
++     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
++     максимальное значение массива DAT. Параметр ADD указывает
++     добавлять новый диапазон к существующему или заменять его.
++     Параметр FACT дополнительно расширяет диапазон на величину
++     (MAX-MIN)*FACT.
++
++ -- Команда MGL: xrange `x1 x2'
++ -- Команда MGL: yrange `x1 x2'
++ -- Команда MGL: zrange `x1 x2'
++ -- Команда MGL: crange `x1 x2'
++     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
++     axis::.
++
++ -- Команда MGL: xtick `val [sub=0 org=nan]'
++ -- Команда MGL: ytick `val [sub=0 org=nan]'
++ -- Команда MGL: ztick `val [sub=0 org=nan]'
++ -- Команда MGL: ctick `val'
++     Задает шаг меток осей VAL, число подметок NS и начальное положение
++     меток ORG. Переменная VAL задает шаг меток (если положительна) или
++     их число на оси (если отрицательна). Нулевое значение задает
++     логарифмические метки. Если ORG=`NAN', то используется значение из
++     *note origin::.
++
++ -- Команда MGL: xtick 'templ'
++ -- Команда MGL: ytick 'templ'
++ -- Команда MGL: ztick 'templ'
++ -- Команда MGL: ctick 'templ'
++     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
++     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
++     используется шаблон по умолчанию (в простейшем случае `%.2g').
++     Установка шаблона выключает автоматическое улучшение вида меток.
++
++ -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
++ -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
++ -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
++     Задает явное положение VAL и подписи LBL для меток вдоль оси.
++     Метки могут содержать и символы TeX.
++
++ -- Команда MGL: adjust ['dir'='xyzc']
++     Автоматически задает шаг меток осей, число подметок и начальное
++     положение меток для осей координат DIR в виде наиболее удобном для
++     человека.
++
++
++File: mgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
++
++1.4 Матрица преобразования
++===============================================
++
++Эти команды контролируют где и как график будет расположен. Существует
++определенный порядок вызова этих функций для лучшего вида графика.
++Вначале должны вызываться команды *note subplot:: или *note inplot::
++для указания местоположения вывода. После них - команды вращения *note
++rotate:: и сжатия *note aspect::. И наконец любые другие функции для
++рисования графика. Вместо вращения графика можно вызвать команды *note
++columnplot:: для расположения графиков в столбец одного над другим или
++*note stickplot:: для расположения в линейку.
++
++ -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
++     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
++     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
++     и сжатие графика) и должна вызываться первой для создания
++     "подграфика". С эстетической точки зрения не рекомендуется
++     вызывать эту функцию с различными (или не кратными) размерами
++     сетки. Ячейка может быть дополнительно сдвинута относительно
++     своего обычного положения на относительный размер DX, DY.
++
++ -- Команда MGL: subplot `nx ny m' 'style'
++     Аналогично предыдущему, но место для осей/colorbar резервируется
++     только если строка STYLE содержит: `L' или `<' - с левого края,
++     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
++     или `_' - с нижнего края.
++
++ -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
++     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
++     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
++     график в произвольную область рисунка. Если параметр REL=`on', то
++     используется позиция относительно текщего *note subplot:: (или
++     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
++     трансформации (повороты и сжатие графика) и должна вызываться
++     первой для создания "подграфика".
++
++ -- Команда MGL: columnplot `num ind [d=0]'
++     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
++     Положение столбца выбирается относительно последнего вызова *note
++     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
++     дополнительный зазор между строк. См. раздел *note ColumnPlot
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: stickplot `num ind tet phi'
++     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
++     При этом сам брусок повернут на углы TET, PHI. Положение
++     выбирается относительно последнего вызова *note subplot:: (или
++     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: rotate `tetz tetx [tety=0]'
++     Вращает систему координат относительно осей {x, z, y}
++     последовательно на углы TETX, TETZ, TETY.
++
++ -- Команда MGL: rotate `tet x y z'
++     Вращает систему координат относительно вектора {X, Y, Z} на угол
++     TET.
++
++ -- Команда MGL: aspect `ax ay [az=1]'
++     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
++     лучшего вида следует вызывать после функции *note rotate::.
++
++ -- Команда MGL: perspective `val'
++     Добавляет (включает) перспективу для графика. Параметр val ~
++     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
++
++
++File: mgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
++
++1.5 Экспорт в файл
++==============================
++
++ -- Команда MGL: write 'fname' [`solid=off']
++     Экспортирует текущий кадр в файл 'fname' (тип определяется по
++     расширению). Параметр SOLID задает вывод картинки на текущем фоне
++     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
++     имя `frame####.jpg', где `####' - текущий номер кадра.
++
++ -- Команда MGL: setsize `w h'
++     Изменяет размер картинки в пикселях. Функция должна вызываться
++     *перед* любыми функциями построения потому что полностью очищает
++     содержимое рисунка. В некоторых программах исполнение этой команды
++     может запрещено.
++
++
++File: mgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
++
++1.6 Рисование примитивов
++===========================================
++
++Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
++капель, конусов, и т.д.
++
++ -- Команда MGL: clf
++     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
++
++ -- Команда MGL: ball `x y' ['col'='r']
++ -- Команда MGL: ball `x y z' ['col'='r']
++     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
++
++ -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
++ -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
++     Рисует геодезическую линию (декартовых координатах - прямую) из
++     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
++     рисуется даже если часть ее лежит вне диапазона осей координат.
++
++ -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
++ -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
++          ['stl'="]
++     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
++     стиль линии STL. Касательные в точках пропорциональны
++     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
++     лежит вне диапазона осей координат.
++
++ -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
++ -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
++ -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
++     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
++     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
++     соответствующего направления. При этом цвет может быть один для
++     всей грани, или различным для разных вершин если указаны все 4
++     цвета (полезно для градиента цвета, например `wwrr'). Параметры
++     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
++     рисуют четырехугольник). Грань будет нарисована даже если часть ее
++     лежит вне диапазона осей координат.
++
++ -- Команда MGL: sphere `x0 y0 r' ['col'='r']
++ -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
++     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
++
++ -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
++ -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
++     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
++     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
++     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
++     определяет относительную ширину капли (аналог "эллиптичности" для
++     сферы). См. раздел *note Drops sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
++          `edge=off']
++     Рисует трубу (или усеченный конус если EDGE=`off') между точками
++     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
++     полагается R2=R1. Цвет конуса задается строкой STL.
++
++ -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
++ -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
++     Рисует закрашенный прямоугольник (грань) с противоположными
++     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
++     цвет может быть один для всей грани, или различным для разных
++     вершин если указаны все 4 цвета (полезно для градиента цвета,
++     например `wwrr'). Грань будет нарисована даже если часть ее лежит
++     вне диапазона осей координат.
++
++
++File: mgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
++
++1.7 Вывод текста
++===========================
++
++Команды для вывода текста позволяют вывести строку текста в
++произвольном месте рисунка, в произвольном направлении и вдоль
++произвольной кривой. Можно использовать произвольное начертание шрифта
++и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
++определяет размер текста: размер шрифта если положителен или
++относительный размер (=-SIZE*FONTSIZE) если отрицателен.
++
++   Параметры шрифта задаются строкой, которая может содержать символы
++стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
++содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
++символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
++`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
++используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
++умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
++`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
++умолчанию используются параметры, определенные командой *note font::.
++
++   Если строка содержит символы `aA', то текст выводится в абсолютных
++координатах (полагаются в диапазоне [0,1]). При этом используются
++координаты относительно рисунка (если указано `A') или относительно
++последнего *note subplot::/*note inplot:: (если указано `a').
++
++ -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
++ -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
++     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
++
++ -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
++ -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
++     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
++     шрифтом FNT и размером SIZE.
++
++ -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
++ -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
++ -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
++     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
++     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
++     текста под кривой (по умолчанию), или `T' для вывода текста над
++     кривой. Если массив XDAT не указан, то используется массив со
++     значениями равно распределенными вдоль оси x. Если массив ZDAT не
++     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: title 'text' ['fnt'=" `size=-2']
++     Выводит строку TEXT как заголовок (сверху рисунка). Может
++     использоваться в любом месте (даже внутри *note subplot::).
++
++ -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
++ -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
++     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
++     размером SIZE.
++
++
++File: mgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
++
++1.8 Оси и Colorbar
++======================
++
++Эти команды рисуют объекты для "измерения" типа осей координат,
++цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
++и подписи по осям координат. См. также *note Axis settings::.
++
++ -- Команда MGL: axis ['dir'='xyz' `adjust=off']
++     Рисует оси координат и метки на них (*note Axis settings::) в
++     направлениях, указанных строкой DIR. Если строка содержит символ
++     `_', то подписи меток отображаться не будут. Шрифт подписей
++     определяется командой *note font::. Метки будут "подогнаны" если
++     ADJUST=`on' (с помощью вызова `adjust 'dir'').
++
++ -- Команда MGL: colorbar ['sch'=" `pos=0']
++     Рисует полосу соответствия цвета и числовых значений (colorbar)
++     для цветовой схемы SCH (используется текущая для `sch=''') с краю
++     от графика. Параметр POS задает местоположение: `0' - справа (по
++     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
++     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
++     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
++     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
++     абсолютные координаты (относительно рисунка). См. раздел *note
++     Dens sample::, для примеров кода и графика.
++
++ -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
++     Аналогично предыдущему, но для цветовой схемы без сглаживания с
++     заданными значениями VDAT. См. раздел *note ContD sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: colorbar 'sch' `pos x y w h'
++     Аналогично первому, но в произвольном месте графика {X, Y}
++     (полагаются в диапазоне [0,1]). Параметры W, H задают
++     относительную ширину и высоту colorbar.
++
++ -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
++     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
++     такой же как у меток осей координат. Стиль линий задается
++     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
++
++ -- Команда MGL: box ['stl'='k' `ticks=on']
++     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
++     рисуются метки в соответствии с текущими настройками осей
++     координат *note axis::.
++
++ -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
++     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
++     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
++     центру оси, при POS>0 - около максимальных значений, при POS<0 -
++     около минимальных значений. Параметр SIZE задает размер шрифта (по
++     умолчанию в 1.4 раза больше чем у меток). *Note Text printing::.
++
++
++File: mgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
++
++1.9 Легенда
++==================
++
++Эти команды обеспечивают рисование легенды графика (полезно для *note
++1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
++линии и маркеров, другая с текстом описания (с включенным разбором
++TeX-их команд), накапливаемые во внутренние массивы с помощью команды
++*note addlegend:: или опции *note legend::. Положение легенды можно
++задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
++размер шрифта. Параметр LLEN задает относительную ширину примера линии.
++Ели стиль линии пустой, то соответствующий текст печатается без
++отступа. Если строка FONT содержит символ `A', то координаты легенды
++считаются относительно картинки (а не текущего subplot). См. раздел
++*note Legend sample::, для примеров кода и графика.
++
++ -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
++     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
++     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
++     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
++     правом углу (по умолчанию).
++
++ -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
++     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
++     Положение легенды задается параметрами X, Y, которые полагаются
++     нормированными в диапазоне [0,1].
++
++ -- Команда MGL: addlegend 'text' 'stl'
++     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
++     во внутренний массив записей легенды. Максимальное число записей
++     100.
++
++ -- Команда MGL: clearlegend
++     Очищает внутренний массив записей легенды.
++
++ -- Команда MGL: legendbox `val'
++     Включает/выключает рисование прямоугольника вокруг легенды. По
++     умолчанию (=`on') прямоугольник рисуется.
++
++ -- Команда MGL: legendmarks `val'
++     Задает число маркеров в легенде. По умолчанию используется 1
++     маркер.
++
++
++File: mgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
++
++1.10 1D графики
++======================
++
++Эти команды строят графики для одномерных (1D) массивов. Одномерными
++считаются массивы, зависящие только от одного параметра (индекса)
++подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
++5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
++(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
++*note barh::) и вертикальные линии (*note stem::). Все эти типы
++графиков имеют похожий интерфейс. Есть версии для рисования в
++пространстве и на плоскости. В последнем случае имеется возможность
++использования только одного массива. Стиль линии и маркеров указывается
++строковой переменной. Если она равна `'''. Кроме того, есть еще
++несколько типов графиков для одномерных массивов, имеющих другой
++интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
++(*note chart::), размер ошибки (*note error::), маркеры переменного
++размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
++1D plot sample::, для примеров кода и графика.
++
++   График рисуется для каждой строки если один из массивов матрица.
++Размер по 1-ой координате *должен быть одинаков* для всех массивов
++`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
++массив со значениями равно распределенными вдоль оси x. Если массив
++ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
++и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
++рисуется сплошная линия с текущим цветом из палитры.
++
++ -- Команда MGL: plot ydat ['stl'=" `zval=nan']
++ -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: plot xdat ydat zdat ['stl'="]
++     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
++     *note area::, *note step::, *note stem::, *note tube::, *note
++     mark::, *note error::, *note belt::, *note tens::. См. раздел
++     *note Plot sample::, для примеров кода и графика.
++
++ -- Команда MGL: radar adat ['stl'=" `r=-1']
++     Рисует radar chart, представляющий собой ломанную с вершинами на
++     радиальных линиях (типа ломанной в полярных координатах). График
++     рисуется для каждой строки если один из массивов матрица. Параметр
++     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
++     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
++     `#', то также рисуется "сетка" (радиальные линии и круг для R).
++     См. также *note plot::. См. раздел *note Radar sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
++ -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
++ -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
++     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
++     определяемым массивом C[i] (типа графика натяжений). См. также
++     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: area ydat ['stl'=" `zval=nan']
++ -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: area xdat ydat zdat ['stl'="]
++     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
++     закрашивает ее вниз до плоскости осей координат. Можно
++     использовать градиентное закрашивание если число указанных цветов
++     в STL равно удвоенному числу кривых для построения. Если строка
++     содержит символ `a', то линии рисуются одна поверх другой (с
++     суммированием) - того же эффекта можно достичь вызовом `cumsum
++     ydat 'y'' перед построением графика. См. также *note plot::, *note
++     bars::, *note stem::, *note region::. См. раздел *note Area
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
++ -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
++     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
++     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
++     в противном случае также будет закращена область y2<y<y1. Можно
++     использовать градиентное закрашивание если число указанных цветов
++     STL равно удвоенному числу кривых для построения. См. также *note
++     area::, *note bars::, *note stem::. См. раздел *note Region
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: stem ydat ['stl'=" `zval=nan']
++ -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: stem xdat ydat zdat ['stl'="]
++     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
++     плоскости осей координат. См. также *note area::, *note bars::,
++     *note plot::, *note mark::. См. раздел *note Stem sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: bars ydat ['stl'=" `zval=nan']
++ -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: bars xdat ydat zdat ['stl'="]
++     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
++     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
++     содержит символ `a', то линии рисуются одна поверх другой. Если
++     строка содержит символ `f', то рисуется график типа waterfall для
++     определения кумулятивного эффекта последовательности положительных
++     и отрицательных значений. Можно использовать разные цвета для
++     положительных и отрицательных значений если число указанных цветов
++     равно удвоенному числу кривых для построения. См. также *note
++     barh::, *note area::, *note stem::, *note chart::. См. раздел
++     *note Bars sample::, для примеров кода и графика.
++
++ -- Команда MGL: barh xdat ['stl'=" `zval=nan']
++ -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
++     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
++     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
++     используется массив со значениями равно распределенными вдоль оси
++     y. Если строка STL содержит символ `a', то линии рисуются одна
++     поверх другой. Если строка содержит символ `f', то рисуется график
++     типа waterfall для определения кумулятивного эффекта
++     последовательности положительных и отрицательных значений. Можно
++     использовать разные цвета для положительных и отрицательных
++     значений если число указанных цветов равно удвоенному числу кривых
++     для построения. См. также *note bars::. См. раздел *note Barh
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: chart adat ['col'="]
++     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
++     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
++     меняется из цветов указанных в COL или в палитре (если `col=''').
++     Пробел в цветах соответствует прозрачному "цвету", т.е.
++     соответствующая полоса не рисуется. Ширина полосы пропорциональна
++     значению элемента в ADAT. График строится только для массивов не
++     содержащих отрицательных значений. Если строка COL содержит `#',
++     то рисуется также черная граница полос. График выглядит лучше в 3d
++     (после вращения системы координат) и/или в полярной системе
++     координат (становится Pie chart). См. раздел *note Chart sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: step ydat ['stl'=" `zval=nan']
++ -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: step xdat ydat zdat ['stl'="]
++     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
++     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
++     См. раздел *note Step sample::, для примеров кода и графика.
++
++ -- Команда MGL: torus zdat ['stl'="]
++ -- Команда MGL: torus rdat zdat ['stl'="]
++     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
++     относительно оси *note axialdir::. Если массив RDAT не указан, то
++     используется массив со значениями равно распределенными вдоль оси
++     x. См. также *note plot::, *note axial::. См. раздел *note Torus
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
++ -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
++     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
++     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
++     *note Tube sample::, для примеров кода и графика.
++
++ -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
++     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
++     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
++     можно использовать функцию `plot' с невидимой линией (со стилем
++     содержащим ` '). См. также *note plot::, *note textmark::, *note
++     stem::, *note error::. См. раздел *note Mark sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
++     Рисует текст TXT как маркер с размером пропорциональным
++     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
++     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
++     plot::, *note mark::, *note stem::. См. раздел *note TextMark
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
++ -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
++ -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
++     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
++     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
++     отображения ошибки эксперимента, вычислений и пр. См. также *note
++     plot::. См. раздел *note Error sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
++ -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
++     Рисует boxplot (называемый также как box-and-whisker diagram или
++     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
++     график, компактно изображающий распределение вероятностей
++     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
++     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
++     также *note plot::, *note error::, *note bars::. См. раздел *note
++     BoxPlot sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
++
++1.11 2D графики
++======================
++
++Эти команды строят графики для двумерных (2D) массивов. Двумерными
++считаются массивы, зависящие только от двух параметров (индексов)
++подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
++типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
++поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
++поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
++(*note belt::), график плотности (*note dens::), линии уровня (*note
++cont::), линии уровня с заполнением (*note contf::) и результат их
++вращения (*note axial::). В функциях *note cont::, *note contf:: и
++*note axial:: значения уровней можно задавать автоматически и вручную.
++Можно также нарисовать сетку (*note grid::) по массиву данных для
++улучшения вида графика плотности или линий уровня. Каждый тип графика
++имеет похожий интерфейс. Есть версия для рисования одного массива с
++автоматическими координатами и версия для параметрически заданной
++поверхности. См. раздел *note 1D plot sample::, для примеров кода и
++графика.
++
++   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
++цветовая схема используется по умолчанию. Младшие размерности массивов
++XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
++ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
++xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
++матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
++используются массивы со значениями равно распределенными вдоль осей x,
++y. График строится для каждого z среза данных.
++
++ -- Команда MGL: surf zdat ['sch'="]
++ -- Команда MGL: surf xdat ydat zdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
++     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
++     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
++     *note Surf sample::, для примеров кода и графика.
++
++ -- Команда MGL: mesh zdat ['sch'="]
++ -- Команда MGL: mesh xdat ydat zdat ['sch'="]
++     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
++     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: fall zdat ['sch'="]
++ -- Команда MGL: fall xdat ydat zdat ['sch'="]
++     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
++     кривых, сдвинутых вглубь друг относительно друга. Если SCH
++     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
++     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
++     tens::, *note meshnum::. См. раздел *note Fall sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: belt zdat ['sch'="]
++ -- Команда MGL: belt xdat ydat zdat ['sch'="]
++     Рисует ленточки для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
++     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
++     См. также *note fall::, *note surf::, *note plot::, *note
++     meshnum::. См. раздел *note Belt sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: boxs zdat ['sch'="]
++ -- Команда MGL: boxs xdat ydat zdat ['sch'="]
++     Рисует вертикальные ящики для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
++     dens::, *note tile::, *note step::. См. раздел *note Boxs
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: tile zdat ['sch'="]
++ -- Команда MGL: tile xdat ydat zdat ['sch'="]
++     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
++     обобщение *note step::. См. также *note surf::, *note boxs::,
++     *note step::, *note tiles::. См. раздел *note Tile sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: dens zdat ['sch'=" `zval=nan']
++ -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует график плотности для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
++     `#', то рисуется сетка. См. также *note surf::, *note cont::,
++     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
++     *note Dens sample::, для примеров кода и графика.
++
++ -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует линии уровня для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
++     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
++     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
++     значения VDAT[k] будут выведены вдоль контуров над (или под)
++     кривой. См. также *note dens::, *note contf::, *note contd::,
++     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует закрашенные линии (контуры) уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
++     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
++     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
++     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
++     раздел *note ContF sample::, для примеров кода и графика.
++
++ -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует закрашенные линии (контуры) уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
++     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
++     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
++     контуров: цвет k-го контура определяется символом
++     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
++     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: axial vdat zdat ['sch'="]
++ -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
++     Рисует поверхность вращения линии уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
++     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
++     рисуется сетчатая поверхность. Если строка содержит символы `x',
++     `y' или `z', то ось вращения устанавливается в указанное
++     направление (по умолчанию вдоль оси *note axialdir::). См. также
++     *note cont::, *note contf::, *note torus::, *note surf3::. См.
++     раздел *note Axial sample::, для примеров кода и графика.
++
++ -- Команда MGL: axial zdat ['sch'=" `num=3']
++ -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
++     Рисует линии градиента скалярного поля PDAT заданного
++     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
++     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
++     рисуются только с границ интервала при NUM<0. См. также *note
++     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
++     См. раздел *note Grad sample::, для примеров кода и графика.
++
++ -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
++ -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует плоскую сету для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
++     dens::, *note cont::, *note contf::.
++
++
++File: mgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
++
++1.12 3D графики
++======================
++
++Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
++считаются массивы, зависящие от трех параметров (индексов) подобно
++матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
++типов 3D графиков: поверхность постоянного уровня (*note surf3::),
++график плотности на срезе (DENS3), линии уровня на срезе (*note
++cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
++объемной прозрачности типа облака (*note cloud::). В функциях *note
++cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
++автоматически и вручную. Можно также нарисовать на срезе сетку (*note
++grid3::) по массиву данных для улучшения вида графика плотности или
++линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
++для рисования одного массива с автоматическими координатами и версия
++для параметрически заданного массива. См. раздел *note 3D plot
++sample::, для примеров кода и графика.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
++векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
++указаны, то используются массивы со значениями равно распределенными
++вдоль осей x, y, z.
++
++ -- Команда MGL: surf3 adat `val' ['sch'="]
++ -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
++     поверхность. См. также *note cloud::, *note dens3::, *note
++     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3 adat ['sch'=" `num=5']
++ -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
++     Рисует график плотности для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
++     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
++     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
++     *note contf3::, *note dens::, *note grid3::. См. раздел *note
++     Dens3 sample::, для примеров кода и графика.
++
++ -- Команда MGL: densa adat ['sch'="]
++ -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
++     Рисует графики плотности на всех центральных срезах 3d данных.
++
++ -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
++          'sch'="]
++     Рисует линии уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
++     для значений из массива V на срезе SVAL в направлении DIR={`x',
++     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
++     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
++     контуров над (или под) кривой. См. также *note dens3::, *note
++     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
++ -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
++          `num=7']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: conta adat ['sch'=" `num=7']
++ -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
++     Рисует линии уровня на всех центральных срезах 3d данных.
++
++ -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
++          'sch'="]
++     Рисует закрашенные линии (контуры) уровня для 3d массива,
++     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
++     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
++     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
++     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
++     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
++ -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
++          `num=7']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contfa adat ['sch'=" `num=7']
++ -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
++     Рисует закрашенные линии (контуры) уровня на всех центральных
++     срезах 3d данных.
++
++ -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
++     Рисует сетку для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
++     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
++     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
++
++ -- Команда MGL: grida adat ['sch'="]
++ -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
++     Рисует сетку на всех центральных срезах 3d данных.
++
++ -- Команда MGL: cloud adat ['sch'="]
++ -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
++     Рисует облачный график для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
++     из кубиков с цветом и прозрачностью пропорциональной значениям
++     ADAT. Результат похож на облако - малые значения прозрачны, а
++     большие нет. Число кубиков зависит от *note meshnum::. Параметр
++     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
++     См. раздел *note Cloud sample::, для примеров кода и графика.
++
++ -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
++     Рисует поверхность уровня для 3d массива ADAT при постоянном
++     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
++     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
++     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
++     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
++     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
++     нормированное в каждом сечении поле. Размеры массивов по 1-му
++     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
++     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
++     быть одинаковы. См. также *note surf3::.
++
++
++File: mgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
++
++1.13 Парные графики
++================================
++
++Эти команды строят графики для двух связанных массивов. Есть несколько
++основных типов 3D графиков: поверхность и поверхность уровня с окраской
++по второму массиву (*note surfc::, *note surf3c::), поверхность и
++поверхность уровня с прозрачностью по второму массиву (*note surfa::,
++*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
++точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
++командах *note surf3a:: и *note surf3c:: значения уровней можно
++задавать автоматически и вручную. Каждый тип графика имеет похожий
++интерфейс. Есть версия для рисования одного массива с автоматическими
++координатами и версия для параметрически заданного массива.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
++векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
++указаны, то используются массивы со значениями равно распределенными
++вдоль осей x, y, z.
++
++ -- Команда MGL: surfc zdat cdat ['sch'="]
++ -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
++     содержит `#', то на поверхности рисуется сетка. См. также *note
++     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3c adat cdat `val' ['sch'="]
++ -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
++     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
++     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
++     *note Surf3C sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
++ -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: surfa zdat cdat ['sch'="]
++ -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
++     содержит `#', то на поверхности рисуется сетка. См. также *note
++     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3a adat cdat `val' ['sch'="]
++ -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
++     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
++     поверхность. См. также *note surf3::, *note surfa::, *note
++     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
++ -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: tiles zdat rdat ['sch'="]
++ -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
++     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
++     задается массивов RDAT. Это создает эффект "прозрачности" при
++     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
++     раздел *note TileS sample::, для примеров кода и графика.
++
++ -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
++ -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
++     Визуализирует точечное отображение для матриц {UDAT, VDAT }
++     параметрически зависящих от координат XDAT, YDAT. Исходное
++     положение ячейки задает ее цвет. Высота пропорциональна якобиану
++     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
++     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
++     узлах матриц (полезно для "запутанного" отображения). См. раздел
++     *note Map sample::, для примеров кода и графика.
++
++ -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
++ -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
++     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
++     размером DN точек. Параметр DN - любое четное число. Например в 1D
++     случае, результатом будет график плотности от массива
++     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
++     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
++     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
++     для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
++
++1.14 Векторные поля
++================================
++
++Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
++типов графиков: просто векторное поле (*note vect::), вектора вдоль
++траектории (*note traj::), векторное поле каплями (*note dew::), нити
++тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
++имеет похожий интерфейс. Есть версия для рисования одного массива с
++автоматическими координатами и версия для параметрически заданного
++массива.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Все размеры массивов AX и AY
++должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
++быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
++AX). График строится для каждого z среза AX, AY для 2D случаев.
++
++ -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
++ -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
++     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
++     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
++     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
++     Параметр LEN задает фактор длины векторов (если не нуль) или
++     выбирать длину пропорционально расстоянию между точками кривой
++     (если LEN=0). См. также *note vect::. См. раздел *note Traj
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
++ -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
++     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
++     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
++     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
++     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
++     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
++     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
++     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
++     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
++     раздел *note Vect sample::, для примеров кода и графика.
++
++ -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
++ -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
++     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vectc udat vdat wdat ['sch'="]
++ -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
++     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vectl udat vdat wdat ['sch'="]
++ -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
++     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
++     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
++     требует много памяти и процессорного времени для своего создания!
++     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
++     определяется *note meshnum::. См. также *note vect::. См. раздел
++     *note Dew sample::, для примеров кода и графика.
++
++ -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
++     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
++     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
++     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
++     и изнутри сетки, в противном случае только с краев. Цвет нитей
++     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
++     нормальному току (типа стока). Холодные цвета соответствуют
++     обратному току (типа источника). См. также *note pipe::, *note
++     vect::. См. раздел *note Flow sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
++ -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++     См. раздел *note Flow 3D sample::, для примеров кода и графика.
++
++ -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
++     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
++     VDAT}, параметрически зависящего от координат XDAT, YDAT на
++     плоскости при z = ZVAL. Цвет нити пропорционален
++     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
++     (типа стока). Холодные цвета соответствуют обратному току (типа
++     источника).
++
++ -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
++ -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++
++ -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
++ -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
++          zval=nan']
++     Рисует трубки тока для векторного поля {UDAT, VDAT},
++     параметрически зависящего от координат XDAT, YDAT на плоскости при
++     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
++     стартовать и изнутри сетки, в противном случае только с краев.
++     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
++     цвета соответствуют нормальному току (типа стока). Холодные цвета
++     соответствуют обратному току (типа источника). Параметр R0 задает
++     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
++     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
++     Pipe sample::, для примеров кода и графика.
++
++ -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
++ -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
++          num=3']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
++
++1.15 Прочие графики
++================================
++
++Это команды, не относящиеся к какой-то специальной категории. Сюда
++входят функции построения графиков по текстовым формулам (*note
++fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
++triplot::), произвольных точек в пространстве (*note dots::) и
++реконструкции по ним поверхности (*note crust::), графики плотности и
++линии уровня на плоскостях, перпендикулярных осям x, y или z
++(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
++интерфейс. Есть версия для рисования одного массива с автоматическими
++координатами и версия для параметрически заданного массива. Строка SCH
++задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
++используется по умолчанию.
++
++ -- Команда MGL: densx dat ['sch'=" `val=nan']
++ -- Команда MGL: densy dat ['sch'=" `val=nan']
++ -- Команда MGL: densz dat ['sch'=" `val=nan']
++     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
++     массив, то выполняется интерполяция к заданному срезу VAL. Функции
++     полезны для создания проекций 3D массивов на оси координат. См.
++     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
++     projection sample::, для примеров кода и графика.
++
++ -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
++     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
++     массив, то выполняется интерполяция к заданному срезу VAL. Функции
++     полезны для создания проекций 3D массивов на оси координат. См.
++     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
++     projection sample::, для примеров кода и графика.
++
++ -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
++     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
++     DAT - 3d массив, то выполняется интерполяция к заданному срезу
++     VAL. Функции полезны для создания проекций 3D массивов на оси
++     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
++
++ -- Команда MGL: dots xdat ydat zdat ['sch'="]
++ -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
++     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
++     точек. См. также *note crust::, *note mark::, *note plot::. См.
++     раздел *note Dots sample::, для примеров кода и графика.
++
++ -- Команда MGL: crust xdat ydat zdat ['sch'="]
++     Реконструирует и рисует поверхность по произвольно расположенным
++     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
++     рисуется сетчатая поверхность. См. также *note dots::, *note
++     triplot::. См. раздел *note Crust sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
++ -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
++ -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
++     Рисует поверхность из треугольников. Вершины треугольников
++     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
++     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
++     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
++     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
++     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
++     crust::, *note quadplot::, *note tricont::.
++
++ -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
++          `zval=nan']
++ -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
++     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
++     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
++     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
++     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
++     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
++     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
++     *note cont::.
++
++ -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
++ -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
++ -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
++     Рисует поверхность из четырехугольников. Вершины треугольников
++     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
++     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
++     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
++     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
++     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
++
++ -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
++     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
++     диапазоне x-оси координат. Параметр NUM задает минимальное число
++     точек по координате для графика. См. также *note plot::.
++
++ -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
++     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
++     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
++     минимальное число точек по координате для графика. См. также *note
++     plot::.
++
++ -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
++     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
++     x-,y-осей координат. Параметр NUM задает минимальное число точек
++     по координатам для графика. См. также *note surf::.
++
++ -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
++     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
++     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
++     задает минимальное число точек по координатам для графика. См.
++     также *note surf::.
++
++
++File: mgl_ru.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
++
++1.16 Nonlinear fitting
++======================
++
++Эти команды подбирают параметры функций для наилучшей аппроксимации
++данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
++a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
++одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
++или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
++зависеть от параметров. Список параметров задается строкой VAR
++(например, `abcd'). Обычно пользователь должен предоставить начальные
++значения параметров в переменной INI. Однако, при его отсутствии
++используются нулевые значения.
++
++   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
++заполняют массив FIT по формуле `f' с найденными коэффициентами. При
++этом, координаты `x,y,z' равно распределены в вдоль осей координат.
++Число точек в FIT выбирается максимальным из размера массива FIT и 100.
++Формулу с найденными коэффициентами можно вывести с помощью команды
++*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
++графика.
++
++   Размерность массивов должны быть не меньше, чем число указанных
++массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
++осуществляться только вдоль указанных направлений (например, вдоль x и
++y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
++используется массив со значениями равно распределенными вдоль оси x.
++
++ -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
++     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
++     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
++     весовыми коэффициентами SDAT[i,j,k].
++
++ -- Команда MGL: fit adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
++     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
++     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
++     весовыми коэффициентами равными 1.
++
++ -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
++     Печатает последнюю подобранную формулу с найденными коэффициентами
++     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
++     другие параметры такие же как в *note Text printing::.
++
++
++File: mgl_ru.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
++
++1.17 Создание данных
++==================================
++
++ -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
++     Создает/пересоздает массив с именем DAT данных указанного размера
++     и заполняет его нулями. Ничего не делает при NX, NY, NZ
++     отрицательных или равных нулю.
++
++ -- Команда MGL: var dat `num v1 [v2=nan]'
++     Создает одномерный массив с именем DAT размером `num' и заполняет
++     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
++     используется V2=V1.
++
++ -- Команда MGL: list dat `v1 ...'
++     Создает массив с именем DAT и заполняет его числовыми значениями
++     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
++     создания 2d-массивов требуется указать разделитель строк данных
++     `|'. Размер массива будет [максимальное число чисел в строке *
++     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
++     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
++
++ -- Команда MGL: list dat d1 ...
++     Создает массив с именем DAT и заполняет его числами из массивов
++     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
++     2d массивы). Младшие размерности всех массивов в аргументах должны
++     быть равны размерности D1. Отмечу, что максимальное число
++     аргументов 1000.
++
++ -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
++ -- Команда MGL: copy dat `val'
++     Создает массив с именем DAT и копирует в него данные из массива
++     DAT2. При этом, если указан параметр EQ, то данные будут изменены
++     по формуле аналогично команде *note fill:: (для `on_axis=on') или
++     *note modify:: (для `on_axis=off').
++
++ -- Команда MGL: idset dat 'ids'
++     Устанавливает символьные обозначения для колонок данных. Строка
++     должна содержать символы 'a'...'z' один на колонку (без пробелов).
++
++ -- Команда MGL: info dat [`detail=off']
++     Выводит информацию о массиве (размер, максимальное/минимальное
++     значение, моменты и пр.). При `detail=off' показывается только
++     краткая информация.
++
++ -- Команда MGL: info 'text'
++     Выводит текст TEXT как информацию (предупреждение).
++
++
++File: mgl_ru.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
++
++1.18 Заполнение данных
++======================================
++
++ -- Команда MGL: fill dat v1 v2 ['dir'='x']
++     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
++     направлении DIR={`x',`y',`z'}.
++
++ -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
++     Заполняет значениями вычисленными по формуле EQ. Формула
++     представляет собой произвольное выражение, зависящее от переменных
++     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
++     меняющимися в диапазоне осей координат (в отличие от *note
++     modify::). Переменная `u' - значения исходного массива, переменные
++     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
++     опущены.
++
++ -- Команда MGL: modify dat 'eq' [`dim=0']
++ -- Команда MGL: modify dat 'eq' vdat [wdat=0]
++     Заполняет значениями вычисленными по формуле EQ. Формула
++     представляет собой произвольное выражение, зависящее от переменных
++     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
++     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
++     Переменная `u' - значения исходного массива, переменные `v', `w' -
++     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
++     указан DIM>0, то изменяются только слои >=DIM.
++
++ -- MGL command: put dat `val [i=: j=: k=:]'
++     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
++     J, K равные `:' задают значениия VAL для всего диапазона
++     соответствующего направления(ий). Например, `put dat val : 0 :'
++     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
++
++ -- MGL command: put dat vdat [`i=: j=: k=:']
++     Копирует значения из массива VDAT в диапазон значений массива DAT.
++     Индексы I, J, K равные `:' задают диапазон изменения значений в
++     соответствующих направление(ях). Младшие размерности массива VDAT
++     должны быть больше выбранного диапазона массива DAT. Например,
++     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
++     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
++     vdat.nx>=dat.nx выполнено.
++
++
++File: mgl_ru.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
++
++1.19 Изменение размеров данных
++=====================================================
++
++ -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
++     Изменяет размерность данных без изменения самого массива данных,
++     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
++     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
++     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
++
++ -- Команда MGL: extend dat `n1 [n2=0]'
++     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
++     после (для N1>0) или перед (для N1<0) существующими данными. Можно
++     добавить сразу 2 размерности для 1d массива, используя второй
++     параметр N2. Данные в новые срезы будут скопированы из
++     существующих. Например, для N1>0 новый массив будет a_ij^new =
++     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
++     будет a_ij^new = a_j^old, где i=0...|N1|.
++
++ -- Команда MGL: transpose dat ['dim'='yxz']
++     Транспонирует (меняет порядок размерностей) массив данных. Новый
++     порядок размерностей задается строкой DIM.
++
++ -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
++     Уменьшает размер данных путем удаления элементов с индексами не
++     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
++     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
++     нет (т.е. out[i]=a[j*r]).
++
++ -- Команда MGL: crop dat `n1 n2' 'dir'
++     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
++     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
++
++ -- Команда MGL: delete dat
++     Удаляет массив DAT и освобождает использованную память. Может быть
++     полезно для больших неиспользуемых массивов.
++
++ -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
++     Удаляет NUM срезов вдоль направления DIR с позиции POS.
++
++ -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
++     Вставляет NUM срезов вдоль направления DIR с позиции POS и
++     заполняет их нулями.
++
++
++File: mgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
++
++1.20 Чтение/сохранение данных
++===================================================
++
++ -- Команда MGL: read dat 'fname'
++     Читает данные из текстового файла с разделителями символом
++     пробела/табуляции с автоматическим определением размера массива.
++     Двойной перевод строки начинает новый срез данных (по направлению
++     z).
++
++ -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
++     Читает данные из текстового файла с заданными размерами. Ничего не
++     делается если параметры MX, MY или MZ равны нулю или отрицательны.
++
++ -- Команда MGL: readmat dat 'fname' [`dim=2']
++     Читает данные из текстового файла с размерами, указанными в первых
++     DIM числах файла. При этом переменная DIM задает размерность (1d,
++     2d, 3d) данных.
++
++ -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
++     Объединяет данные из нескольких текстовых файлов. Имена файлов
++     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
++     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
++     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
++     (при SLICE=`on').
++
++ -- Команда MGL: readall dat 'templ' `[slice=off]'
++     Объединяет данные из нескольких текстовых файлов, чьи имена
++     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
++     загружаются один за другим в один и тот же срез данных (при
++     SLICE=`off') или срез-за-срезом (при SLICE=`on').
++
++ -- Команда MGL: save dat 'fname'
++     Сохраняет массив данных в текстовый файл.
++
++ -- Команда MGL: readhdf dat 'fname' 'dname'
++     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
++
++ -- Команда MGL: savehdf dat 'fname' 'dname'
++     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
++
++ -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
++     Читает данные из растрового файла. RGB значения пикселов
++     преобразуются в число в диапазоне [V1, V2] используя цветовую
++     схему SCH (*note Color scheme::).
++
++ -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
++     Сохраняет данные в растровый файл. Числовые значения,
++     нормированные в диапазон [V1, V2], преобразуются в RGB значения
++     пикселов, используя цветовую схему SCH (*note Color scheme::).
++     Если V1>=V2, то значения V1, V2 определяются автоматически как
++     минимальное и максимальное значение данных.
++
++
++File: mgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
++
++1.21 Создание новых данных
++=============================================
++
++ -- Команда MGL: combine res adat bdat
++     Возвращает в массиве данных RES прямое произведение массивов
++     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
++
++ -- Команда MGL: evaluate res dat idat [`norm=on']
++ -- Команда MGL: evaluate res dat idat jdat [`norm=on']
++ -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
++     Возвращает массив данных RES, полученный в результате интерполяции
++     исходного массива в точках других массивов (например,
++     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
++     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
++     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
++     [0,nx], [0,ny], [0,nz] соответственно.
++
++ -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
++ -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
++     Возвращает распределение (гистограмму) RES из NUM точек от
++     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
++     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
++     задает число дополнительных точек интерполяции (для сглаживания
++     получившейся гистограммы).
++
++ -- Команда MGL: hist res xdat adat
++ -- Команда MGL: hist res xdat ydat adat
++ -- Команда MGL: hist res xdat ydat zdat adat
++     Возвращает распределение (гистограмму) RES от значений массива
++     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
++     диапазоне осей координат. Массив ADAT играет роль веса точки.
++     Число точек в результате RES - максимум из размера RES и 100.
++
++ -- Команда MGL: momentum res dat 'how' ['dir'='z']
++     Возвращает в массиве данных RES момент (1d массив) данных DAT
++     вдоль направления DIR. Строка HOW определяет тип момента. Момент
++     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
++     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
++     массива в диапазоне [0,1].
++
++ -- Команда MGL: sum res dat 'dir'
++     Возвращает в массиве данных RES результат суммирования DAT вдоль
++     направления(ий) DIR.
++
++ -- Команда MGL: max res dat 'dir'
++     Возвращает в массиве данных RES максимальное значение DAT вдоль
++     направления(ий) DIR.  Gets array which is the maximal data values
++     in given direction or direction(s).
++
++ -- Команда MGL: min res dat 'dir'
++     Возвращает в массиве данных RES минимальное значение DAT вдоль
++     направления(ий) DIR.
++
++ -- Команда MGL: resize res dat `mx [my=1 mz=1]'
++     Возвращает массив данных RES размером MX, MY, MZ со значениями
++     полученными интерполяцией значений массива DAT.
++
++ -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
++     Возвращает в RES подмассив массива данных DAT с фиксированными
++     значениями индексов с положительными значениями. Например,
++     `subdata a b : 2' выделяет третью строку (индексы начинаются с
++     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
++     3' выделяет 4-ый срез и т.д.
++
++ -- Команда MGL: trace res dat
++     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
++     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
++     возвращается сам массив данных DAT. Размеры массива данных должен
++     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
++
++ -- Команда MGL: transform dat 'type' real imag
++     Выполняет интегральное преобразование комплексных данных REAL,
++     IMAG в выбранном направлении и возвращает модуль результата в RES.
++     Порядок и тип преобразований задается строкой TYPE: первый символ
++     для x-направления, второй для y-направления, третий для
++     z-направления. Возможные символы: `f' - прямое преобразование
++     Фурье, `i' - обратное преобразование Фурье, `s' - синус
++     преобразование, `c' - косинус преобразование, `h' - преобразование
++     Ханкеля, `n' или ` ' - нет преобразования.
++
++ -- Команда MGL: transforma dat 'type' ampl phase
++     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
++     комплексных чисел.
++
++ -- Команда MGL: stfad res real imag `dn' ['dir'='x']
++     Выполняет оконное преобразование Фурье длиной DN для комплексных
++     данных REAL, IMAG и возвращает модуль результата в RES. Например,
++     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
++     будет равен res[i,j,k]=|\sum_d^dn
++     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
++
++ -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
++     Решает уравнение в частных производных du/dz =
++     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
++     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
++     начальное распределение поля. Координаты в уравнении и в решении
++     полагаются в диапазоне осей координат. Замечу, что внутри этот
++     диапазон увеличивается в 3/2 раза для уменьшения отражения от
++     границ расчетного интервала. Параметр DZ задает шаг по
++     эволюционной координате z. В данный момент использован упрощенный
++     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
++     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
++     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
++     `x*q'->x*d/dy). Переменная `u' используется для обозначения
++     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
++     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
++     Также можно указать мнимую часть для поглощения (типа `ham =
++     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
++     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
++     кода и графика.
++
++ -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
++     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
++     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
++     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
++     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
++     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
++     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
++     шаг и максимальное время интегрирования. Результат RES - массив
++     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
++     Beam tracing sample::, для примеров кода и графика.
++
++ -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
++          yy=0]
++     Решает уравнение в частных производных du/dt =
++     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
++     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
++     Параметры INI_RE, INI_IM задают начальное распределение поля.
++     Параметр RAY задает опорный луч для сопровождающей системы
++     координат. Можно использовать луч найденный с помощью `ray'.
++     Опорный луч должен быть достаточно гладкий, чтобы система
++     координат была однозначной и для исключения ошибок интегрирования.
++     Если массивы XX и YY указаны, то в них записываются декартовы
++     координаты для каждой точки найденного решения. См. также *note
++     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: jacobian res xdat ydat [zdat=0]
++     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
++     координаты {i,j,k} полагаются нормированными в интервал [0,1].
++     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
++     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
++     должны быть одинаковы. Данные должны быть трехмерными если указаны
++     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
++     массива {XDAT,YDAT}.
++
++
++File: mgl_ru.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
++
++1.22 Изменение данных
++====================================
++
++Эти команды изменяют данные вдоль заданного направления(ий) типа
++например дифференцирования, интегрирования и т.д. Направление
++указывается строкой DIR, которая может содержать символы `x', `y' и/или
++`z', вдоль которых изменения будут применены.
++
++ -- Команда MGL: cumsum dat 'dir'
++     Суммирует с накоплением в выбранном направлении(ях).
++   
++ -- Команда MGL: integrate dat 'dir'
++     Выполняет интегрирование (подобно суммированию с накоплением) в
++     выбранном направлении(ях).
++   
++ -- Команда MGL: diff dat 'dir'
++     Выполняет дифференцирование в выбранном направлении(ях).
++
++ -- Команда MGL: diff dat xdat ydat [zdat=0]
++     Выполняет дифференцирование данных DAT, параметрически зависящих
++     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
++     ZDAT может быть опущен, что соответствует 2D случаю. Используются
++     следующие формулы (2D случай): da/dx =
++     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
++     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
++     Похожие формулы используются и в 3D случае. Порядок аргументов
++     можно менять - например, если данные a(i,j) зависят от координат
++     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
++     a x y', а обычная производная по `y' будет равна `diff a y x'.
++
++ -- Команда MGL: diff2 dat 'dir'
++     Выполняет двойное дифференцирование (как в операторе Лапласа) в
++     выбранном направлении(ях).
++
++ -- Команда MGL: sinfft dat 'dir'
++     Выполняет синус преобразование в выбранном направлении(ях). Синус
++     преобразование есть \sum a_i \sin(k i).
++   
++ -- Команда MGL: cosfft dat 'dir'
++     Выполняет косинус преобразование в выбранном направлении(ях).
++     Синус преобразование есть \sum a_i \cos(k i).
++   
++ -- Команда MGL: hankel dat 'dir'
++     Выполняет преобразование Ханкеля в выбранном направлении(ях).
++     Преобразование Ханкеля есть \sum a_i J_0(k i).
++
++ -- Команда MGL: swap dat 'dir'
++     Меняет местами левую и правую части данных в выбранном
++     направлении(ях). Полезно для отображения результата FFT.
++   
++ -- Команда MGL: roll dat 'dir' num
++     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
++     Соответствует замене индекса на I->(I+NUM)%N.
++
++ -- Команда MGL: mirror dat 'dir'
++     Отражает данные в выбранном направлении(ях). Соответствует замене
++     индекса на I->N-I.
++
++ -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
++     Удаляет скачки данных (например, скачки фазы после обратных
++     тригонометрических функций) с периодом DA в выбранном
++     направлении(ях).
++
++ -- Команда MGL: smooth data `type' ['dir'='xyz']
++     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
++     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
++     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
++     квадратичное усреднение по 5 точкам.
++
++ -- Команда MGL: envelop dat ['dir'='x']
++     Находит огибающую данных в выбранном направлении. Только одно
++     направление может быть выбрано за раз.
++
++ -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
++     Нормирует данные срез-за-срезом в выбранном направлении DIR в
++     интервал [V1,V2]. Если SYM=`on', то используется симметричный
++     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
++     максимальное значение k-го среза ограничено величиной \sqrt{\sum
++     a_ij(k)/\sum a_ij(0)}.
++
++ -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
++     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
++     используется симметричный интервал [-max(|v1|,|v2|),
++     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
++
++
++File: mgl_ru.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
++
++1.23 Операторы
++=======================
++
++ -- Команда MGL: multo dat dat2
++     Поэлементно умножает массив DAT на DAT2.
++
++ -- Команда MGL: multo dat `val'
++     Умножает каждый элемент на число.
++
++ -- Команда MGL: divto dat dat2
++     Поэлементно делит массив DAT на DAT2.
++
++ -- Команда MGL: divto dat `val'
++     Делит каждый элемент на число.
++
++ -- Команда MGL: addto dat dat2
++     Поэлементно прибавляет DAT2 к массиву DAT.
++
++ -- Команда MGL: addto dat `val'
++     Прибавляет число к каждому элементу.
++
++ -- Команда MGL: subto dat dat2
++     Поэлементно вычитает DAT2 из массива DAT.
++
++ -- Команда MGL: subto dat `val'
++     Вычитает число из каждого элемента.
++
++
++File: mgl_ru.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
++
++1.24 Программирование
++=====================================
++
++Эти команды управляют порядком выполнения других команд (условия,
++циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
++
++ -- Команда MGL: chdir 'path'
++     Переходит в папку PATH.
++
++ -- Команда MGL: define $N smth
++     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
++     используется как есть (с символами `'' если присутствуют).
++     Выполняется только подстановка других макроопределений $0...$9,
++     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
++
++ -- Команда MGL: define name smth
++     Определяет константу (скаляр) с именем `name' и числовым значением
++     `smth'. Позднее она может быть использована как обычное число.
++   
++ -- Команда MGL: defchr $N smth
++     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
++     Здесь N это цифра (0...9) или буква (a...z).
++   
++ -- Команда MGL: defnum $N smth
++     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
++     N это цифра (0...9) или буква (a...z).
++   
++ -- Команда MGL: defpal $N smth
++     Задает N-ый аргумент скрипта равным символу палитры с индексом,
++     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
++
++ -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
++     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
++     скрипта, если функция не была найдена). Опциональные аргументы
++     передаются в подпрограмму. См. также *note func::.
++   
++ -- Команда MGL: func 'fname' [narg=0]
++     Определяет подпрограмму с именем FNAME и задает число требуемых
++     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
++     ... $9. Отмечу, что выполнение основной программы должно быть
++     остановлено до начала определений подпрограмм. См. также *note
++     stop::,  *note return::.
++   
++ -- Команда MGL: return
++     Возвращается из подпрограммы.
++
++ -- Команда MGL: if dat 'cond'
++     Начинает блок команд, выполняемый если каждый элемент DAT
++     удовлетворяет условию COND.
++
++ -- Команда MGL: if `val'
++     Начинает блок команд, выполняемый если `val' не ноль.
++   
++ -- Команда MGL: elseif dat 'cond'
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
++     условию COND.
++
++ -- Команда MGL: elseif `val'
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен и `val' не ноль.
++   
++ -- Команда MGL: else
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен.
++   
++ -- Команда MGL: endif
++     Заканчивает определение блока `if/elseif/else'.
++
++ -- Команда MGL: for $N `v1 v2 [dv=1]'
++     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
++     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
++     буква (a...z).
++
++ -- Команда MGL: for $N dat
++     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
++     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
++     буква (a...z).
++   
++ -- Команда MGL: next
++     Заканчивает блок цикла `for'.
++
++ -- Команда MGL: once `val'
++     Определяет код (между `once on' и `once off') который будет
++     выполнен только один раз. Полезно для работы с большими данными в
++     программах типа UDAV.
++   
++ -- Команда MGL: stop
++     Останавливает выполнение скрипта.
++
++
++File: mgl_ru.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
++
++1.25 Опции команд
++============================
++
++Опции команд позволяют легко настроить вид отдельного графика не меняя
++глобальных настроек для все рисунка. Опции указываются после команды.
++Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
++что запоминают текущие настройки рисунка, применяют собственные
++настройки, выполняют команду и возвращают глобальные настройки обратно.
++Поэтому использование опций для команд обработки данных или настройки
++графика бесполезно.
++
++   Наиболее часто используемые опции - `xrange, yrange, zrange',
++устанавливающие границы изменения осей координат (и тем самым
++автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
++построит кривую с x-координатой равно распределенной в интервале 0.1
++... 0.9, а не вдоль текущей оси x.
++
++   Полный список опций: 
++
++ -- Опция MGL: alpha `val'
++ -- Опция MGL: alphadef `val'
++     Задает величину прозрачности поверхности. Значение должно быть в
++     диапазоне [0, 1]. См. также *note alphadef::
++   
++ -- Опция MGL: ambient `val'
++     Задает яркость фонового освещения. Значение должно быть в
++     диапазоне [0, 1]. См. также *note ambient::
++   
++ -- Опция MGL: crange `val1 val2'
++     Задает границы цветовой шкалы. См. также *note crange::
++   
++ -- Опция MGL: xrange `val1 val2'
++     Задает границы изменения координаты x. См. также *note xrange::
++   
++ -- Опция MGL: yrange `val1 val2'
++     Задает границы изменения координаты y. См. также *note yrange::
++   
++ -- Опция MGL: zrange `val1 val2'
++     Задает границы изменения координаты z. См. также *note zrange::
++   
++ -- Опция MGL: cut `val'
++     Задает обрезание точек за пределами осей координат. См. также
++     *note cut::
++   
++ -- Опция MGL: fontsize `val'
++     Задает размер текста. См. также *note font::
++   
++ -- Опция MGL: marksize `val'
++     Задает размер маркеров. См. также *note marksize::
++   
++ -- Опция MGL: meshnum `val'
++     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
++     *note meshnum::
++   
++ -- Опция MGL: legend 'txt'
++     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
++     линии и маркера аргумента последней вызванной команды построения
++     *note 1D plotting::. См. также *note legend::
++
++
++File: mgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
++
++1.26 Суффиксы переменных
++==========================================
++
++Суффиксы позволяют быстро получить числовую характеристику (размер,
++максимальное или минимальное значение, сумму элементов и т.д.) массива
++данных и использовать ее как число (скаляр) в аргументах. Суффиксы
++начинаются с точки `.' сразу после (без пробелов) имени переменной и
++временного массива. Например, `a.nx' даст размер массива A по оси х,
++`b(1).max' даст максимальное значение второй строки массива B,
++`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
++C и т.д.
++
++   Полный список суффиксов:
++*nx, ny, nz*
++     Размер массива в направлении x, y, z соответственно.
++
++*max*
++     Максимальное значение массива.
++
++*min*
++     Минимальное значение массива.
++
++*sum*
++     Сумма элементов массива.
++
++*a*
++     Первый элемент массива (элемент с индексами 0,0,0).
++
++*fst*
++     Первое не нулевое значение массива.
++
++*lst*
++     Последнее не нулевое значение массива.
++
++*mx, my, mz*
++     Положение максимума в направлении x, y, z соответственно.
++
++*ax, ay, az, aa*
++     Положение центра масс в направлении x, y, z соответственно или
++     среднее значение массива.
++
++*wx, wy, wz, wa*
++     Ширина в направлении x, y, z соответственно или дисперсия
++     элементов массива.
++
++*sx, sy, sz, sa*
++     Асимметрия в направлении x, y, z соответственно или элементов
++     массива.
++
++*kx, ky, kz, ka*
++     Эксцесс в направлении x, y, z соответственно или элементов массива.
++
++
++File: mgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
++
++1.27 Утилиты для MGL
++==============================
++
++MathGL содержит несколько программ для работы со скриптами MGL. Есть
++утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
++(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
++результат выполнения скрипта MGL и позволяет вращать и настраивать
++график. Также можно транслировать MGL скрипт в C++ файл с помощью
++программы `mgl2cpp'.
++
++   Все эти программы имеют схожий набор аргументов. Первым идет имя
++скрипта, а вторым идет имя выходного файлы (может быть опущено),
++последние аргументы - опции скрипта и программы. К опциям относятся
++параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
++скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
++его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
++Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
++будет использовать UTF-8 в скрипте.
++
++   Также можно создавать анимированные изображения GIF или набор JPEG
++файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
++в скрипте надо указать параметры анимации для каждого кадра (строками с
++коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
++комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
++подставлены в качестве параметра `$0' при последовательном вызове
++скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
++''' в конце скрипта.
++
++
++File: mgl_ru.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
++
++2 MathGL examples
++*****************
++
++This chapter contain information about basic and advanced MathGL, hints
++and samples for all types of graphics. I recommend you read first 2
++sections one after another and at least look on "Hints" section. Also I
++recommend you to look at *note General concepts::. Sample code for some
++of these examples can be found in `http://mathgl.sf.net/pictures.html'
++and in *note Samples::.
++
++* Menu:
++
++* Basic usage::
++* Advanced usage::
++* Data handling::
++* Data plotting::
++* Hints::
++
++
++File: mgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
++
++2.1 Basic usage
++===============
++
++MGL script can be used by several manners. Each has positive and
++negative sides:
++   * _The using of MGL in UDAV._
++
++     Positive side is the possibility to view the plot at once and to
++     modify it, rotate, zoom or switch on transparency or lighting) by
++     hand or by mouse. Negative sides are: the need of X-terminal.
++
++   * _Direct writing to file in bitmap or vector format without
++     creation of graphical window._
++
++     Positive aspects are: batch processing of similar data set, for
++     example, a set of resulting data files for different calculation
++     parameters), running from the console program, including the
++     cluster calculation), fast and automated drawing, saving pictures
++     for further analysis, or demonstration). Negative sides are: the
++     usage of the external program for picture viewing. Also, the data
++     plotting is non-visual. So, you have to imagine the picture, view
++     angles, lighting and so on) before the plotting. I recommend to
++     use graphical window for determining the optimal parameters of
++     plotting on the base of some typical data set. And later use these
++     parameters for batch processing in console program.
++
++     In this case you can use a set of programs: `mgl2png', `mgl2gif',
++     `mgl2eps', `mgl2svg' or `mglview' for viewing.
++
++   The simplest script is
++box         # draw bounding box
++axis        # draw axis
++fplot 'x^3' # draw some function
++
++   Just type it in UDAV and press F5. Also you can save it in text file
++`test.mgl' and type in the console `mgl2png test.mgl' what produce file
++`test.mgl.png' with resulting picture.
++
++
++File: mgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
++
++2.2 Advanced usage
++==================
++
++Now I show several non-obvious features of MGL: several subplots in a
++single picture, curvilinear coordinates, text printing and so on.
++Generally you may miss this section at first reading, but I don't
++recommend it.
++
++* Menu:
++
++* Subplots::
++* Axis and grids::
++* Curvilinear coordinates::
++* Text printing example::
++
++
++File: mgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
++
++2.2.1 Subplots
++--------------
++
++Let me demonstrate possibilities of axes transformation. MathGL has the
++following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
++Transformation matrix::). The order of their calling is strictly
++determined. First, one changes the position of axes in image area,
++functions `SubPlot' and `InPlot'). After that one may rotate the plot,
++function `Rotate'). Finally, one may change aspects of axes, function
++`Aspect'). The following code illustrates the aforesaid it:
++subplot 2 2 0:box
++text -1 1.1 'Just box' 'L'
++inplot 0.2 0.5 0.7 1:box
++text 0 1.2 'Inplot example'
++
++subplot 2 2 1
++rotate 60 40:aspect 1 1 1
++box:text 1 1 1.5 'rotate only' 'R'
++
++subplot 2 2 2
++rotate 60 40:aspect 1 1 2
++box:text 0 0 2 'aspect and rotate'
++
++subplot 2 2 3
++rotate 60 40:aspect 1 2 2
++box:text 0 0 1.5 'Aspect in other direction'
++ Here I used function `text' for printing the text in arbitrary
++position of picture, *note Text printing::). Text coordinates and size
++are connected with axes. However, text coordinates may be everywhere,
++including the outside the bounding box. I shall show its features later
++in *Note Text printing example::.
++
++   Note that several commands can be placed in a string if they are
++separated by `:' symbol.
++
++ [image src="../png/sample1.png" ]
++
++Example of several subplots on the single picture.
++
++
++File: mgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
++
++2.2.2 Axis and grids
++--------------------
++
++MathGL library can draw not only the bounding box but also the axes,
++grids, labels and so on. The limits of axes and their origin (the point
++of intersection) are determined by function `axis'. Also you can use
++`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
++axis are specified by functions `xtick, ytick, ztick, ttick'. First
++argument the direction for each change will be applied. Second argument
++gives the step between ticks (if positive) or gives the number of ticks
++on the axis (if negative) or set to use logarithmic ticks (if zero).
++Third argument gives numbers of sub-ticks between ticks (default is
++zero). Last argument define the initial ticks position.
++
++   Function `Axis' draws axes. Its textual string shows in which
++directions the axis or axes will be drawn (by default `'xyz'', function
++draws axes in all directions). Function `Grid' draws grid
++perpendicularly to specified directions. Example of axes and grid
++drawing is:
++subplot 2 2 0
++xtick 0.4 3     # sets tick step to 0.5
++ytick 0.4 3     # and draws 3 subticks
++box             # should be after the ticks change
++axis 'xy': grid
++text 0 1.3 1 'axis and grid'
++
++xtick -5: ytick -5  # restore back
++subplot 2 2 1:rotate 60 40
++origin 0 0 0
++axis
++xlabel 'x' 1
++ylabel 'y' 1
++zlabel 'z' 1
++text 0 0 1.5 'axis and labels'
++
++subplot 2 2 2:rotate 60 40
++xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
++origin -1 -1 -1
++axis:grid
++text 0 0 1.5 'shift origin and add grid'
++text 0 0 1.2 '(note, too many ticks)'
++
++subplot 2 2 3:rotate 60 40
++xtick -6: ytick -6  # decrease the number of ticks
++axis 'yz'
++ylabel 'y axis'
++zlabel 'z axis'
++text 0 0 1.5 'remove x axis, and'
++text 0 0 1.2 'decrease number of ticks'
++
++   This example shows the importance of the correct choosing of the
++number of ticks on axis. If tick step is too small then its text may
++overlap and becomes unreadable. This code has the example of `Label'
++function. It draws label for axis in specified direction. The text
++position on axis is specified by third argument of `Label' function. If
++it is positive then then text is drawn near the axis maximum, if
++negative then the same takes place near the minimum of axis, if zero -
++then at the center of axis.
++
++ [image src="../png/sample2.png" ]
++
++Example of setting up axis range and axis ticks.
++
++
++File: mgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
++
++2.2.3 Curvilinear coordinates
++-----------------------------
++
++Now let use curvilinear coordinates. In difference from other systems
++of plot creation, MathGL uses textual formulas for connection of the
++old (data) and new (output) coordinates. This allows one to plot in
++arbitrary coordinates. The following code plots the line Y=0, Z=0 in
++Cartesian, polar, parabolic and spiral coordinates:
++new x 50: new y 50: new z 50
++fill y 0.5 0.5: fill x -1 1 # creates data arrays
++origin -1 1 -1
++
++subplot 2 2 0:rotate 60 40
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'cartesian'
++
++subplot 2 2 1:rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'cylindrical'
++
++subplot 2 2 2:rotate 60 40
++axis '2*y*x' 'y*y - x*x' ''
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'parabolic'
++
++subplot 2 2 3:rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'spiral'
++
++ [image src="../png/sample3.png" ]
++
++Example of curvilinear coordinates
++
++
++File: mgl_ru.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
++
++2.2.4 Text printing example
++---------------------------
++
++MathGL prints text by vector font. There are functions for manual
++specifying of text position (like `Puts') and for its automatic
++selection (like `Label', `legend' and so on). MathGL prints text always
++in specified position even if it lies outside the bounding box. The
++default size of font is specified by command FONTSIZE. However, the
++actual size of output string depends on position of axes (depends on
++functions `SubPlot', `InPlot'). The switching of the font style
++(italic, bold, wire and so on) can be done for the whole string (by
++function parameter) or inside the string. By default MathGL parses
++TeX-like commands for symbols and indexes (see *note Font styles::).
++Example of MathGL font drawing is:
++text 0 1 'Text can be in ASCII and in Unicode'
++text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
++text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
++text 0 -0.2 'Easy to \a{overline} or \u{underline}'
++text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
++text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
++
++ [image src="../png/sample4.png" ]
++
++Example of text printing with different font effects
++
++   Another example demonstrate the features of TeX formula parsing.
++text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
++
++ [image src="../png/samplee.png" ]
++
++Example of TeX formula parsing
++
++
++File: mgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
++
++2.3 Data handling
++=================
++
++* Menu:
++
++* Array creation::
++* Data changing::
++
++
++File: mgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
++
++2.3.1 Array creation
++--------------------
++
++One can put numbers into the data instance by several ways. Let us do
++it for sinus function:
++   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
++
++   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
++
++   * next way is to fill the data by textual formula with the help of
++     `modify' function new a 6
++     modify a 'x^2'
++
++   * or one may fill the array in some interval and modify it later new a 6
++     fill a 0 1
++     modify a 'u^2'
++
++   * or fill the array using current axis range new a 6
++     fill a '(x+1)^2/4'
++
++   * finally it can be loaded from file new s 6: modify s 'x^2'
++     save s 'sqr.dat'    # create file first
++     read a 'sqr.dat'    # load it
++
++   * at this one can read only part of data new s 6: modify s 'x^2'
++     save s 'sqr.dat'    # create file first
++     read a 'sqr.dat' 5  # load it
++
++   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
++data filling by `list' command
++list a 11 12 13 | 21 22 23 | 31 32 33
++ or by inline arrays
++copy a [[11,12,13],[21,22,23],[31,32,33]]
++ Also data can be filled by formula
++new z 30 40
++fill z 'sin(pi*x)*cos(pi*y)'
++ or loaded from file.
++
++   The only non-obvious thing here is using multidimensional arrays in
++C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
++this arrays element `dat[i]' can address the memory in arbitrary place
++you should use the proper function to convert such arrays to `mglData'
++object. For C++ this is functions like `mglData::Set(float **dat, int
++N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
++const float **dat, int N1, int N2'. At this, you should keep in mind
++that `nx=N2' and `ny=N1' after conversion.
++
++
++File: mgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
++
++2.3.2 Data changing
++-------------------
++
++MathGL has functions for data processing: differentiating, integrating,
++smoothing and so on. Let us consider some examples. The simplest ones
++are integration and differentiation. The direction in which operation
++will be performed is specified by textual string, which may contain
++symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
++differentiate data along `x' direction; the call of `integrate a 'xy''
++perform the double integration of data along `x' and `y' directions;
++the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
++so on. Example of this operations on 2d array a=x*y is presented in
++code:
++new a 30 40: modify a 'x*y'
++axis 0 0 0 1 1 1
++subplot 2 2 0:rotate 60 40
++surf a: box
++text 0.7 1 1.2 'a(x,y)'
++subplot 2 2 1:rotate 60 40
++diff a 'x': surf a: box
++text 0.7 1 1.2 'da/dx'
++subplot 2 2 2:rotate 60 40
++integrate a 'xy': surf a: box
++text 0.7 1 1.2 '\int da/dx dxdy'
++subplot 2 2 3:rotate 60 40
++diff2 a 'y': surf a: box
++text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
++
++ [image src="../png/sample6.png" ]
++
++Example of data differentiation and integration
++
++   Data smoothing (function `Smooth') is more interesting and
++important. This function has 2 main arguments: type of smoothing and
++its direction. Now 4 methods are supported: `0' does nothing for
++delta=0 or approaches data to zero with the step delta, `1' linear
++averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
++averaging by 5 points. Let me demonstrate it for 1d case:
++new y0 30
++modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
++copy y1 y0: smooth y1 1
++copy y2 y0: smooth y2 2
++copy y3 y0: smooth y3 3
++
++plot y0 'k': addlegend 'none' 'k'
++plot y1 'r': addlegend 'line 3' 'r'
++plot y2 'g': addlegend 'line 5' 'g'
++plot y3 'b': addlegend 'quad 5' 'b'
++legend: box
++
++ [image src="../png/sample7.png" ]
++
++Example of data smoothing
++
++   Finally one can create new data arrays on base of the existing one:
++extract slice, row or column of data (`SubData'), summarize along some
++of direction(s) (`Sum'), find distribution of data elements (`Hist').
++Note, that all these functions are not thread-safe because they use
++static internal variable for output array. In particular, the using of
++several of them in arguments of the same function will lead to
++unpredictable result.
++
++
++File: mgl_ru.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
++
++2.4 Data plotting
++=================
++
++Let me now show how to plot the data. MathGL generally has 2 types of
++plotting functions. Simple variant requires a single data array for
++plotting, other data (coordinates) are considered uniformly distributed
++in interval MIN*MAX. Second variant requires data arrays for all
++coordinates. It allows one to plot rather complex multivalent curves
++and surfaces (in case of parametric dependencies). Argument setting to
++default values allows one to plot data in standard form. Manual
++arguments setting gives possibility for fine tuning of colors,
++positions and view of graphics. Note, that the call of drawing function
++adds something to picture but does not clear the previous plots (as it
++does in Matlab). Another difference from Matlab is that all setup (like
++transparency, lightning, axis borders and so on) must be specified
++*before* plotting functions.
++
++* Menu:
++
++* Plots for 1D data::
++* Plots for 2D data::
++* Plots for 3D data::
++* Surface transparency::
++
++
++File: mgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
++
++2.4.1 Plots for 1D data
++-----------------------
++
++Term "1D data" means that data depend on single index (parameter) like
++curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
++generally different types of data representations: simple line plot,
++line plot with filling under it, stairs plot, bar plot and vertical
++lines (*note 1D plotting::). Each type of plotting has similar
++interface. There are 3D version and two 2D versions. One of last
++requires single array. The parameters of line and marks (*note Line
++styles::) are specified by the string argument. If the string parameter
++is `NULL' then solid line with color from palette is used.
++
++   Below I shall show the features of 1D plotting on base of `plot'
++function (*note 1D plotting::). Let us start from sinus plot:
++new y0 50: modify y0 'sin(pi*(2*x-1))'
++subplot 2 2 0
++plot y0: box
++ Style of line is not specified in `plot' function. So MathGL uses the
++solid line with first color of palette (this is blue). Next subplot
++shows array Y1 with 2 rows:
++subplot 2 2 1
++new y1 50 2
++modify y1 'sin(pi*2*x-pi)'
++modify y1 'cos(pi*2*x-pi)/2' 1
++plot y1: box
++ As previously I did not specify the style of lines. As a result,
++MathGL again uses solid line with next colors in palette (there are
++green and red). Now let us plot a circle on the same subplot. The
++circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
++color of the circle (dark yellow, `Y') and put marks `+' at point
++position:
++new x 50: modify x 'cos(pi*2*x-pi)'
++plot x y0 'Y+'
++ Note that solid line is used because I did not specify the type of
++line. The same picture can be achieved by `Plot2' function. Let us draw
++ellipse by orange dash line:
++plot y1(:,0) y(:,1) 'q|'
++
++   Drawing in 3D space is mostly the same. Let us draw spiral with
++default line style. Now its color is 4-th color from palette (this is
++cyan):
++subplot 2 2 2:rotate 60 40
++new z 50: modify z '2*x-1'
++plot x y0 z 'g':box
++ Function `Plot3' does 3D curve plot but for single array. Use it to
++put circle marks on the previous plot:
++new y2 10 3
++modify y2 'cos(pi*(2*x-1-y))'
++modify y2 '2*x-1' 2
++plot y2(:,0) y2(:,1) y2(:,2) 'bo '
++ Note that line style is empty ` ' here. Usage of other 1D plotting
++functions looks similar:
++subplot 2 2 3:rotate 60 40
++bars x y0 z 'r':box
++
++ [image src="../png/sample8.png" ]
++
++Example of 1D data plot
++
++
++File: mgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
++
++2.4.2 Plots for 2D data
++-----------------------
++
++Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
++same simpler as 1D one. The difference is that the string parameter
++specifies not by line style but by the color scheme of the plot (*note
++Color scheme::). Here I draw attention on 4 most interesting color
++schemes. There is gray scheme where color is changed from black to
++white (string `kw') or from white to black (string `wk'). Another
++scheme is useful for accentuation of negative (by blue color) and
++positive (by red color) regions on plot (string `'BbwrR''). Last one is
++the popular "jet" scheme (string `'BbcyrR'').
++
++   Now I shall show the example of a surface drawing. At first let us
++switch lightning on
++light on
++ and draw the surface, considering coordinates x,y to be uniformly
++distributed in interval MIN*MAX
++new a0 50 40
++modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++subplot 2 2 0:rotate 60 40
++surf a0: box
++ Color scheme was not specified. So previous color scheme is used. In
++this case it is default color scheme ("jet") for the first plot. Next
++example is a sphere. The sphere is parametrically specified surface:
++new x 50 40: new y 50 40: new z 50 40
++modify x '0.8*sin(2*pi*x)*sin(pi*y)'
++modify y '0.8*cos(2*pi*x)*sin(pi*y)'
++modify z '0.8*cos(pi*y)'
++subplot 2 2 1:rotate 60 40
++surf x y z 'bbwrr': box
++ I set color scheme to `'BbwrR'' that corresponds to red top and blue
++bottom of the sphere.
++
++   Surfaces will be plotted for each of slice of the data if NZ>1. Next
++example draws surfaces for data arrays with NZ=3:
++new a1 50 40 3
++modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
++subplot 2 2 2:rotate 60 40
++alpha on
++surf a1: box
++ Note, that it may entail a confusion. However, if one will use density
++plot then the picture will look better:
++subplot 2 2 3: rotate 60 40
++dens a1: box
++ Note, that the previous color scheme is used in last plots because
++there are no direct specification of the one.
++
++ [image src="../png/sample9.png" ]
++
++Example of surface plot for 2D data
++
++   Drawing of other 2D plots is analogous. The only peculiarity is the
++usage of flag `#'. By default this flag switches on the drawing of a
++grid on plot (`grid' or `mesh' for plots in plain or in volume).
++However, for isosurfaces (including surfaces of rotation `axial') this
++flag switches the  face drawing off. Figure becomes wired. The
++following code gives example of flag `#' using (compare with normal
++function drawing as in its description):
++alpha on: light on: light 0 0 0 1
++new a 30 20
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++subplot 2 2 0: rotate 40 60
++surf a 'bbcyrr#': box
++subplot 2 2 1: rotate 40 60
++dens a 'bbcyrr#': box
++subplot 2 2 2: rotate 40 60
++cont a 'bbcyrr#': box
++subplot 2 2 3: rotate 40 60
++axial a 'bbcyrr#': box
++
++ [image src="../png/samplea.png" ]
++
++Example of 2D data plot with color scheme contained `#' symbol
++
++
++File: mgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
++
++2.4.3 Plots for 3D data
++-----------------------
++
++Drawing procedures for 3D plot looks similarly to 1D and 2D plots
++described above. There are 3 general types of 3D plots (*note 3D
++plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
++(iii) cloud-like plots. Plots on slice are clear enough - one specifies
++a slice (as its index or as coordinate value) and MathGL draws contour
++lines or density plot on slice plane. Isosurface gives more
++information. Isosurface is 3D analogue of the contour line `cont'. It
++shows the region where data array values exceed specified isosurface
++level. Plot becomes more informative if one adds transparency,
++lightning or sets color scheme depending on coordinates. Generalization
++of isosurface is the cloud-like plot. For this plot the darker color
++and less transparent regions correspond to higher values of data.
++Contrary, the regions with low values are transparent. For plotting of
++the phase of fields (or beams or pulses) one can use isosurface which
++transparency depends on the other data array (see function `surf3a').
++As example of 3D data plots let us draw the Gaussian beam diffraction
++in space. Beam propagates along X axis:
++alpha on: light on
++light 0 0 0 1
++new a 30 30 30: new b 30 30 30
++modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
++modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
++caxis 0 1
++
++subplot 2 2 0: rotate 40 60
++surf3 a 'wgk': box
++subplot 2 2 1: rotate 40 60
++densa a: box: axis
++subplot 2 2 2: rotate 40 60
++cloud a: box
++subplot 2 2 3: rotate 40 60
++surf3a b a 'q': box
++
++ [image src="../png/sampleb.png" ]
++
++Example of Gaussian beam diffraction (3D data)
++
++
++File: mgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
++
++2.4.4 Surface transparency
++--------------------------
++
++MathGL library has advanced features for setting and handling the
++surface transparency. The simplest way to add transparency is the using
++of function `Alpha'. As a result, all further surfaces (and
++isosurfaces, density plots and so on) become transparent. However,
++their  look can be additionally improved.
++
++   First, the selected surface will be non-transparent if one sets the
++flag `transparent' before the surface drawing and sets it off after the
++drawing.
++
++   Second, the value of transparency can be different from surface to
++surface. To do it just change the value of `alphadef' before the
++drawing of the selected surface. If its value is close to 0 then the
++surface becomes more and more transparent. Contrary, if its value is
++close to 1 then the surface becomes practically non-transparent. This
++is some analogue of `transparent on'.
++
++   Third feature is the changing of the way how the light goes through
++overlapped surfaces. The variable `transptype' defines it. By default
++the usual transparency is used (`transptype 0') - surfaces below is
++less visible than the upper ones. A "glass-like" transparency
++(`transptype 1') has a different look when the surface just decreases
++the background light (the surfaces are commutable in this case).
++
++   A "neon-like" transparency (`transptype 2') has more interesting
++look. In this case a surface is the light source (like a lamp on the
++dark background) and just adds some intensity to the color. At this,
++the library sets automatically the black color for the background and
++changes the default line color to white.
++
++   As example I shall show the variant of plot from *note Plots for 2D
++data:: (grid drawing is disabled) for different types of transparency.
++ [image src="../png/type0.png" ]
++
++Example of `TranspType=0'.
++
++ [image src="../png/type1.png" ]
++
++Example of `TranspType=1'.
++
++ [image src="../png/type2.png" ]
++
++Example of `TranspType=2'.
++
++
++File: mgl_ru.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
++
++2.5 Hints
++=========
++
++In this section I have included some small hints and advices for the
++improving of the quality of plots and for the demonstration of some
++non-trivial features of MathGL library. In contrast to previous
++examples I showed mostly the idea but not the whole drawing function.
++More examples with the source code can be find at
++`http://mathgl.sf.net/' or in section *note Samples::.
++
++* Menu:
++
++* ``Compound'' graphics::
++* Two axes in one plot::
++* Titles for the plot::
++* Changing of the color range::
++* Management of a point cutting::
++* Vector field visualization::
++* Several light sources::
++* CutMin and CutMax features::
++* Mapping visualization::
++* Log-scaled plot::
++* Nonlinear fitting hints::
++* PDE solving hints::
++* Stereo image::
++
++
++File: mgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
++
++2.5.1 "Compound" graphics
++-------------------------
++
++As I noted above, MathGL functions (except the special one, like `clf')
++do  not erase the previous plotting but just add the new one. It allows
++one to draw "compound" plots easily. For example, popular Matlab
++command `surfc' can be emulated in MathGL by 2 calls:
++surf a
++cont a 0 7 -1   # draw contours at z = -1
++ Here A is 2-dimensional data for the plotting, `-1' is the value of
++z-coordinate at which the contour should be plotted (at the bottom in
++this example). Analogously, one can draw density plot instead of
++contour lines and so on.
++
++   Another nice plot is contour lines plotted directly on the surface:
++light on        # switch on light for the surface
++surf a 'bbcyrr' # select 'jet' colormap for the surface
++cont a 'y'      # and yellow color for contours
++ The possible difficulties arise in black&white case, when the color of
++the surface can be close to the color of a contour line. In that case I
++may suggest the following code:
++light on        # switch on light for the surface
++surf a 'kw'     # select 'gray' colormap for the surface
++caxis -1 0      # first draw for darker surface colors
++conta 'w'       # white contours
++caxis 0 1       # now draw for brighter surface colors
++cont a 'k'      # black contours
++ The idea is to divide the color range on 2 parts (dark and bright) and
++to select the contrasting color for contour lines for each of part.
++
++   Similarly, one can plot flow thread over density plot of vector
++field amplitude (this is another amusing plot from Matlab) and so on.
++The list of compound graphics can be prolonged but I hope that the
++general idea is clear.
++
++
++File: mgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
++
++2.5.2 Two axes in one plot
++--------------------------
++
++Developing the previous hint one can make a plot with 2 or more axes.
++The idea is that the change of settings does not influence on the
++already drawn graphics. So, for 2-axes plot let us set the first axis
++and draw everything concerning it. Then let us setup the second axis
++and draw things for the second axis. The corresponding code is (*note
++2-axes sample::):
++# set up first axis
++axis -1 -1 1 1: origin -1 -1
++axis:fplot 'sin(pi*x)'      # draw something in first axis
++# set up second axis
++axis 0 0 1 1: origin 1 1
++axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
++ Note, that the first and the second axes look better if being placed
++in different corners. In the code presented above the first axis is
++placed in the left-bottom corner, and the second one is placed in the
++right-top corner.
++
++
++File: mgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
++
++2.5.3 Titles for the plot
++-------------------------
++
++The printing of nice titles for the plot is not so trivial task in
++general case. The problem is that the rotation and aspect change lead
++to different looks for titles of different subplots. So, the resulting
++look is not so good as it could be. The solution is simple - to print
++titles exactly after `subplot' call and before any rotation, aspect
++change and so on! Analogously, the title for the whole picture looks
++better if it is printed first (before any `subplot' calls).
++Alternatively you can use function `title' for plotting title for the
++picture at any time.
++
++
++File: mgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
++
++2.5.4 Changing of the color range
++---------------------------------
++
++By default (for the user comfort), the color range is set equal to
++z-range of the plot. However, there are different ranges. So, one can
++obtain amusing plot by the change of color range manually. For example,
++there are plots with one-color bottom (or top) or practically bi-color
++picture and so on.
++
++   For example, compare 2 surfaces:
++subplot 2 1 0
++surf a          # usual coloring range
++subplot 2 1 1
++caxis 0 1
++surf a          # bottom of the surface have one-colour filling
++
++
++File: mgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
++
++2.5.5 Management of a point cutting
++-----------------------------------
++
++Sometimes an experimental or numerical surface has outstanding points.
++Visualization of such surface will lead to the hole(s) in place of such
++points. The standard method of "fighting" - to change data values - is
++not always good and is not so convenient. MathGL library has another
++method - to set variable `cut off'. As a consequence, all outstanding
++points will be projected on the bounding box.
++
++   Such method is good not only for outstanding points but also for the
++case when one need to plane the bottom or the top of the plot. Exactly
++such case is demonstrated in the code:
++new a 20 30     # create some data
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++# set lower border above the data minimal value
++axis -1 -1 0 1 1 1:rotate 40 60
++cut off         # set off cutting flag
++surf a          # and draw the surface
++ It is an interesting result, is not it?
++
++
++File: mgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
++
++2.5.6 Vector field visualization
++--------------------------------
++
++Vector field visualization (especially in 3d case `vect3' or `vectc')
++may look tangly - there are too many overlapping lines. I may suggest 2
++ways to solve this problem. The first one is to change `meshnum' for
++decreasing the number of hachures. The second way is to use the flow
++thread chart `Flow'. Unfortunately, I don't know any other methods to
++visualize 3d vector field. If you know any, e-mail me and I shall add
++it to MatGL.
++
++
++File: mgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
++
++2.5.7 Several light sources
++---------------------------
++
++In contrast to the most of other programs, MathGL supports several (up
++to 10) light sources. Moreover, the color each of them can be
++different: white (this is usual), yellow, red, cyan, green and so on.
++The use of several light sources may be interesting for the
++highlighting of some peculiarities of the plot or just to make an
++amusing picture. Note, each light source can be switched on/off
++individually (*note Several light sample::).
++
++
++File: mgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
++
++2.5.8 CutMin and CutMax features
++--------------------------------
++
++MathGL library has a feature for cutting of points in some region
++CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
++graphics. Moreover, this cutting may help to show an internal structure
++of an object (like `isocaps' plot in Matlab). For example, let us use
++the standard 3D data array and show its interior (*note CutMinMax
++sample::).
++
++new c 61 51 40      # create the data
++new v 10: fill v -0.5 1
++modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
++cut 0 -1 -1 1 0 1.1
++rotate 40 60:       surf3 c -0.5 'bbcyrr'
++contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
++contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
++
++   One can also exclude points from arbitrary area in space. This area
++defined by textual formula `cut' (*note Cutting::). The algorithm is
++the same as shown for "rectangular cutting".
++
++
++File: mgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
++
++2.5.9 Mapping visualization
++---------------------------
++
++Sometime ago I worked with mapping and have a question about its
++visualization. Let me remember you that mapping is some transformation
++rule for one set of number to another one. The 1d mapping is just an
++ordinary function - it takes a number and transforms it to another one.
++The 2d mapping (which I used) is a pair of functions which take 2
++numbers and transform them to another 2 ones. Except general plots
++(like `surfc', `surfa') there is a special plot - Arnold diagram. It
++shows the area which is the result of mapping of some initial area
++(usually square).
++
++   I tried to make such plot in `map'. It shows the set of points or
++set of faces, which final position is the result of mapping. At this,
++the color gives information about their initial position and the height
++describes Jacobian value of the transformation. Unfortunately, it looks
++good only for the simplest mapping but for the real multivalent
++quasi-chaotic mapping it produces a confusion. So, use it if you like
++:).
++
++
++File: mgl_ru.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
++
++2.5.10 Log-scaled plot
++----------------------
++
++Log-scaled plot can be drawn by 2 steps. First, one should change the
++scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
++y-axis will be log-scaled). Second, one should set logarithmic scale
++for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
++should check (or change) the axis ranges and origin so that their
++values to be positive. For example of log-log plot *note Log-log
++sample::.
++
++
++File: mgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
++
++2.5.11 Nonlinear fitting hints
++------------------------------
++
++Nonlinear fitting is rather simple. All that you need is the data to
++fit, the approximation formula and the list of coefficients to fit
++(better with its initial guess values). Let me demonstrate it on the
++following simple example (*note Fitting sample::). First, let us use
++sin function with some random noise:
++new rnd 100: new idl 50 # data to be fitted and ideal data
++modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
++modify idl '0.3+sin(4*pi*x)'
++ and plot it to see that data we will fit
++axis -1 -2 1 2
++plot rnd '. ':plot idl 'b'
++box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
++
++   The next step is the fitting itself. For that let me specify an
++initial values INI for coefficients `abc' and do the fitting for
++approximation formula `a+b*sin(c*x)'
++new res     # The data for found formula
++fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
++ Now display it
++plot res 'r'
++text -1 -1.3 'fitted:' 'L:r' -1
++putsfit 0 -1.8 'y = ' 'C:r' -1
++
++   NOTE! the fitting results may have strong dependence on initial
++values for coefficients due to algorithm features. The problem is that
++in general case there are several local 'optimums' for coefficients and
++the program returns only first found one! There are no guaranties that
++it will be the best. Try for example to set `ini = [0, 0, 0]' in the
++code above.
++
++
++File: mgl_ru.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
++
++2.5.12 PDE solving hints
++------------------------
++
++Solving of Partial Differential Equations (PDE, including beam tracing)
++and ray tracing (or finding particle trajectory) are more or less
++common task. So, MathGL have several functions for that. There are
++`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
++in 2D case. Note, that these functions take "Hamiltonian" or equations
++as string values. And I don't plan now to allow one to use user-defined
++functions. There are 2 reasons: the complexity of corresponding
++interface; and the basic nature of used methods which are good for
++samples but may not good for serious scientific calculations.
++
++   The ray tracing can be done by `ray' function. Really ray tracing
++equation is Hamiltonian equation for 3D space. So, the function can be
++also used for finding a particle trajectory (i.e. solve Hamiltonian
++ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
++First of all, it is Hamiltonian which defined the media (or the
++equation) you are planning to use. The Hamiltonian is defined by string
++which may depend on coordinates `x', `y', `z', time `t' (for particle
++dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
++define the initial conditions for coordinates and momentums at `t'=0
++and set the integrations step (default is 0.1) and its duration
++(default is 10). The Runge-Kutta method of 4-th order is used for
++integration.
++new re 128:new im 128
++ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
++plot r(0) r(1)
++ This example calculate the reflection from linear layer (media with
++Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
++The resulting array have 7 columns which contain data for
++{x,y,z,p,q,v,t}.
++
++   The solution of PDE is a bit more complicated. As previous you have
++to specify the equation as pseudo-differential operator \hat H(x,
++\nabla) which is called sometime as "Hamiltonian" (for example, in beam
++tracing). As previously, it is defined by string which may depend on
++coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
++`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
++coordinate is `z' in all cases. So that, the equation look like du/dz =
++ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
++`u'=|u| allows one to solve nonlinear problems too. For example, for
++nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
++you may specify imaginary part for wave absorption, like `ham = 'p^2 +
++i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
++Hre+i*Him).
++
++   Next step is specifing the initial conditions at `z'=`Min.z'. The
++function need 2 arrays for real and for imaginary part. Note, that
++coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
++the data arrays should have corresponding scales. Finally, you may set
++the integration step and paramter k0=k_0. Also keep in mind, that
++internally the 2 times large box is used (for suppressing numerical
++reflection from boundaries) and the equation should well defined even
++in this extended range.
++
++   Final comment is concerning the possible form of pseudo-differential
++operator H. At this moment, simplified form of operator H is supported
++- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
++2D case this operator is effectively H = f(p,z) + g(x,z,u). However
++commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
++
++   So, for example let solve the equation for beam deflected from
++linear layer and absorbed later. The operator will have the form
++`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
++\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
++typical equation for Electron Cyclotron (EC) absorption in magnetized
++plasmas. For initial conditions let me select the beam with plane phase
++front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
++PDE sample::):
++new re 128: new im 128
++fill re 'exp(-48*(x+0.7)^2)'
++pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
++transpose a 'yxz'
++caxis 0 1
++dens a 'wyrRk'
++
++   The last example is example of beam tracing. Beam tracing equation
++is special kind of PDE equation written in coordinates accompanied to a
++ray. Generally this is the same parameters and limitation as for PDE
++solving but the coordinates are defined by the ray and by parameter of
++grid width W in direction transverse the ray. So, you don't need to
++specify the range of coordinates. *BUT* there is limitation. The
++accompanied coordinates are well defined only for smooth enough rays,
++i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
++|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
++grid width: K>>w. So, you may receive incorrect results if this
++condition will be broken.
++
++   You may use following code for obtaining the same solution as in
++previous example:
++new re 128: new im 128
++define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
++ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
++# now start beam tracing
++fill re 'exp(-48*x^2)'
++new xx: new yy
++qo2d a $1 re im r 1 30 xx yy
++caxis 0 1
++dens xx yy a 'wyrRk'
++
++
++File: mgl_ru.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
++
++2.5.13 Stereo image
++-------------------
++
++One can easily create stereo image in MathGL. Stereo image can be
++produced by making two subplots with slightly different rotation
++angles. The corresponding code looks like this (*note Stereo image
++sample::):
++subplot 2 1 0   # left image
++rotate 40 60+3
++# draw something here
++subplot 2 1 1   # right image
++rotate 40 60-3
++# draw the same here
++
++
++File: mgl_ru.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
++
++3 Примеры использования MathGL
++**************************************************
++
++Эта глава содержит множество примеров кода для всех типов графиков,
++наиболее важных возможностей библиотеки и советов. Аналогичные примеры
++(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
++
++* Menu:
++
++* 1D plotting samples::
++* 2D plotting samples::
++* 3D plotting samples::
++* Dual plotting samples::
++* Basic features::
++* Additional features::
++* Advanced features::
++
++
++File: mgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
++
++3.1 Примеры 1D графиков
++======================================
++
++* Menu:
++
++* Plot sample::
++* Radar sample::
++* Tens sample::
++* Area sample::
++* Area gradient sample::
++* Bars sample::
++* Bars 2 colors sample::
++* Bars above sample::
++* Bars fall sample::
++* Barh sample::
++* Step sample::
++* Stem sample::
++* Region sample::
++* Region gradient sample::
++* Error sample::
++* BoxPlot sample::
++* Mark sample::
++* TextMark sample::
++* Tube sample::
++* Text sample::
++* Torus sample::
++* Chart sample::
++* Pie chart sample::
++* Ring chart sample::
++
++
++File: mgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
++
++3.1.1 Plot - пример использования
++----------------------------------------------------
++
++ [image src="../png/plot.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++plot y
++
++
++File: mgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
++
++3.1.2 Radar - пример использования
++-----------------------------------------------------
++
++ [image src="../png/radar.png" ]
++
++new y 10 3
++modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
++radar y '#'
++
++
++File: mgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
++
++3.1.3 Tens - пример использования
++----------------------------------------------------
++
++ [image src="../png/tens.png" ]
++
++new y 50
++new c 50
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify c 'sin(2*pi*x)'
++box
++tens y c
++
++
++File: mgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
++
++3.1.4 Area - пример использования
++----------------------------------------------------
++
++ [image src="../png/area.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++area y
++
++
++File: mgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
++
++3.1.5 Area с градиентной заливкой - пример использования
++-----------------------------------------------------------------------------------------------
++
++ [image src="../png/area_2.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++area y 'cbgGyr'
++
++
++File: mgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
++
++3.1.6 Bars - пример использования
++----------------------------------------------------
++
++ [image src="../png/bars.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y
++
++
++File: mgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
++
++3.1.7 Bars (2 цвета) - пример использования
++-------------------------------------------------------------------
++
++ [image src="../png/bars_2.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'cbgGyr'
++
++
++File: mgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
++
++3.1.8 Bars (один над другим) - пример использования
++-----------------------------------------------------------------------------------
++
++ [image src="../png/bars_a.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'a'
++
++
++File: mgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
++
++3.1.9 Bars "водопад" - пример использования
++---------------------------------------------------------------------
++
++ [image src="../png/bars_f.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'f'
++
++
++File: mgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
++
++3.1.10 Barh - пример использования
++-----------------------------------------------------
++
++ [image src="../png/barh.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++barh y
++
++
++File: mgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
++
++3.1.11 Step - пример использования
++-----------------------------------------------------
++
++ [image src="../png/step.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++step y
++
++
++File: mgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
++
++3.1.12 Stem - пример использования
++-----------------------------------------------------
++
++ [image src="../png/stem.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++stem y 'o'
++
++
++File: mgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
++
++3.1.13 Region - пример использования
++-------------------------------------------------------
++
++ [image src="../png/region.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++box
++region y1 y2 'r'
++plot y1 'k2'
++plot y2 'k2'
++
++
++File: mgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
++
++3.1.14 Region с градиентной заливкой - пример использования
++--------------------------------------------------------------------------------------------------
++
++ [image src="../png/region_2.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++box
++region y1 y2 'yr'
++plot y1 'k2'
++plot y2 'k2'
++
++
++File: mgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
++
++3.1.15 Error - пример использования
++------------------------------------------------------
++
++ [image src="../png/error.png" ]
++
++new y 50
++new x0 10
++new y0 10
++new ex 10
++new ey 10
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify x0 '2*x-1 + 0.1*rnd-0.05'
++modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
++modify ey '0.2'
++modify ex '0.1'
++box
++plot y
++error x0 y0 ex ey 'ko'
++
++
++File: mgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
++
++3.1.16 BoxPlot - пример использования
++--------------------------------------------------------
++
++ [image src="../png/boxplot.png" ]
++
++new a 10 7
++modify a '(2*rnd-1)^3/2'
++box
++boxplot a
++plot a ' ko'
++
++
++File: mgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
++
++3.1.17 Mark - пример использования
++-----------------------------------------------------
++
++ [image src="../png/mark.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++new y1 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++box
++mark y y1 'bs'
++
++
++File: mgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
++
++3.1.18 TextMark - пример использования
++---------------------------------------------------------
++
++ [image src="../png/textmark.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++new y1 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++box
++textmark y y1 '\gamma'
++
++
++File: mgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
++
++3.1.19 Tube - пример использования
++-----------------------------------------------------
++
++ [image src="../png/tube.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++rotate 40 60
++light on
++box
++tube y 0.05
++
++
++File: mgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
++
++3.1.20 Text - пример использования
++-----------------------------------------------------
++
++ [image src="../png/text.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++plot y(:,0)
++text y 'This is very long string drawn along a curve' ':k'
++text y 'Another string drawn above a curve' 'T:r'
++
++
++File: mgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
++
++3.1.21 Torus - пример использования
++------------------------------------------------------
++
++ [image src="../png/torus.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++modify y2 '0.3*sin(2*pi*x)'
++rotate 40 60
++light on
++box
++torus y1 y2 'pz'
++
++
++File: mgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
++
++3.1.22 Chart - пример использования
++------------------------------------------------------
++
++ [image src="../png/chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++box
++chart ch
++
++
++File: mgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
++
++3.1.23 Pie chart - пример использования
++----------------------------------------------------------
++
++ [image src="../png/pie_chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
++box
++chart ch 'bgr cmy#'
++
++
++File: mgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
++
++3.1.24 Ring chart - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/ring_chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
++box
++chart ch 'bgr cmy#'
++
++
++File: mgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
++
++3.2 Примеры 2D графиков
++======================================
++
++* Menu:
++
++* Surf sample::
++* Transparent surface sample::
++* Surface in fog sample::
++* Sharp colors sample::
++* Mesh sample::
++* Fall sample::
++* Belt sample::
++* Tile sample::
++* Boxs sample::
++* Dens sample::
++* Cont sample::
++* ContF sample::
++* ContD sample::
++* Axial sample::
++* Grad sample::
++
++
++File: mgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
++
++3.2.1 Surf - пример использования
++----------------------------------------------------
++
++ [image src="../png/surf.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
++
++3.2.2 Transparent surface - пример использования
++-------------------------------------------------------------------
++
++ [image src="../png/surf_alpha.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
++
++3.2.3 Surface in fog - пример использования
++--------------------------------------------------------------
++
++ [image src="../png/surf_fog.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++fog 1
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
++
++3.2.4 Sharp colors - пример использования
++------------------------------------------------------------
++
++ [image src="../png/surf_sl.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a 'BbcyrR|'
++
++
++File: mgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
++
++3.2.5 Mesh - пример использования
++----------------------------------------------------
++
++ [image src="../png/mesh.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++mesh a
++
++
++File: mgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
++
++3.2.6 Fall - пример использования
++----------------------------------------------------
++
++ [image src="../png/fall.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++fall a
++
++
++File: mgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
++
++3.2.7 Belt - пример использования
++----------------------------------------------------
++
++ [image src="../png/belt.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++belt a
++
++
++File: mgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
++
++3.2.8 Tile - пример использования
++----------------------------------------------------
++
++ [image src="../png/tile.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++tile a
++
++
++File: mgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
++
++3.2.9 Boxs - пример использования
++----------------------------------------------------
++
++ [image src="../png/boxs.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++origin 0 0 0
++box
++boxs a
++
++
++File: mgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
++
++3.2.10 Dens - пример использования
++-----------------------------------------------------
++
++ [image src="../png/dens.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++dens a
++colorbar
++
++
++File: mgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
++
++3.2.11 Cont - пример использования
++-----------------------------------------------------
++
++ [image src="../png/cont.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++cont a
++
++
++File: mgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
++
++3.2.12 ContF - пример использования
++------------------------------------------------------
++
++ [image src="../png/contf.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++contf a
++
++
++File: mgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
++
++3.2.13 ContD - пример использования
++------------------------------------------------------
++
++ [image src="../png/contd.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++var v 9 -1 1
++box
++contd v a
++colorbar v
++
++
++File: mgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
++
++3.2.14 Axial - пример использования
++------------------------------------------------------
++
++ [image src="../png/axial.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++axial a
++
++
++File: mgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
++
++3.2.15 Grad - пример использования
++-----------------------------------------------------
++
++ [image src="../png/grad.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box:alpha on:dens a
++grad a
++
++
++File: mgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
++
++3.3 Примеры 3D графиков
++======================================
++
++* Menu:
++
++* Surf3 sample::
++* Cloud sample::
++* CloudP sample::
++* Dens3 sample::
++* Cont3 sample::
++* ContF3 sample::
++* Cont projection sample::
++* Dens projection sample::
++* CutMinMax sample::
++* Isocaps sample::
++* CutOff sample::
++
++
++File: mgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
++
++3.3.1 Surf3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surf3.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
++
++3.3.2 Cloud - пример использования
++-----------------------------------------------------
++
++ [image src="../png/cloud.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++alpha on
++box
++cloud a 'wyrRk'
++
++
++File: mgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
++
++3.3.3 CloudP - пример использования
++------------------------------------------------------
++
++ [image src="../png/cloudp.png" ]
++
++Not available.
++
++
++File: mgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
++
++3.3.4 Dens3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/densa.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++alpha on
++origin 0 0 0
++box
++densa a
++axis
++
++
++File: mgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
++
++3.3.5 Cont3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/conta.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++conta a
++
++
++File: mgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
++
++3.3.6 ContF3 - пример использования
++------------------------------------------------------
++
++ [image src="../png/contfa.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++box
++contfa a
++
++
++File: mgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
++
++3.3.7 Cont projection - пример использования
++---------------------------------------------------------------
++
++ [image src="../png/cont_xyz.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++sum s a 'x'
++contx s '' -1
++sum s a 'y'
++conty s '' 1
++sum s a 'z'
++contz s '' -1
++
++
++File: mgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
++
++3.3.8 Dens projection - пример использования
++---------------------------------------------------------------
++
++ [image src="../png/dens_xyz.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++sum s a 'x'
++densx s '' -1
++sum s a 'y'
++densy s '' 1
++sum s a 'z'
++densz s '' -1
++
++
++File: mgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
++
++3.3.9 CutMinMax - пример использования
++---------------------------------------------------------
++
++ [image src="../png/cutminmax.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++cut 0 -1 -1 1 0 1
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
++
++3.3.10 "Isocaps" - пример использования
++----------------------------------------------------------
++
++ [image src="../png/cutminmax2.png" ]
++
++new a 61 51 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++cut 0 -1 -1 1 0 1.1
++box
++surf3 a -1
++contf3 a 'x' -1
++contf3 a 'y' -1
++contf3 a 'z' 0
++contf3 a 'z' 39
++
++
++File: mgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
++
++3.3.11 CutOff - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3_cutoff.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
++
++3.4 Примеры парных/векторных графиков
++===================================================================
++
++* Menu:
++
++* SurfC sample::
++* SurfA sample::
++* TileS sample::
++* Map sample::
++* Traj sample::
++* Vect sample::
++* VectL sample::
++* VectC sample::
++* Flow sample::
++* Pipe sample::
++* Dew sample::
++* Surf3C sample::
++* Surf3A sample::
++* Vect 3D sample::
++* VectL 3D sample::
++* VectC 3D sample::
++* Flow 3D sample::
++* Pipe 3D sample::
++* Crust sample::
++* Dots sample::
++
++
++File: mgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
++
++3.4.1 SurfC - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surfc.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surfc a b
++
++
++File: mgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
++
++3.4.2 SurfA - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surfa.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++surfa a b
++
++
++File: mgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
++
++3.4.3 TileS - пример использования
++-----------------------------------------------------
++
++ [image src="../png/tiles.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++tile a b
++
++
++File: mgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
++
++3.4.4 Map - пример использования
++---------------------------------------------------
++
++ [image src="../png/map.png" ]
++
++new a 50 40
++new b 50 40
++text 0 0 '\to'
++zrange -2 2
++subplot 2 1 0
++text 0 1.1 '\{x, y\}' '' -2
++box
++fill a 'x'
++fill b 'y'
++map a b 'brgk' 0 0
++subplot 2 1 1
++text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
++box
++fill a '(x^3+y^3)/2'
++fill b '(x-y)/2'
++map a b 'brgk' 0 0
++
++
++File: mgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
++
++3.4.5 Traj - пример использования
++----------------------------------------------------
++
++ [image src="../png/traj.png" ]
++
++new y 50 3
++new x 50
++new y1 50
++new y2 50
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++fill x -1 1
++modify y1 '0.5+0.3*cos(2*pi*x)'
++modify y2 '0.3*sin(2*pi*x)'
++box
++plot x y
++traj x y y1 y2
++
++
++File: mgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
++
++3.4.6 Vect - пример использования
++----------------------------------------------------
++
++ [image src="../png/vect.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vect a b
++
++
++File: mgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
++
++3.4.7 VectL - пример использования
++-----------------------------------------------------
++
++ [image src="../png/vectl.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vectl a b
++
++
++File: mgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
++
++3.4.8 VectC - пример использования
++-----------------------------------------------------
++
++ [image src="../png/vectc.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vectc a b
++
++
++File: mgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
++
++3.4.9 Flow - пример использования
++----------------------------------------------------
++
++ [image src="../png/flow.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++flow a b
++
++
++File: mgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
++
++3.4.10 Pipe - пример использования
++-----------------------------------------------------
++
++ [image src="../png/pipe.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++light on
++box
++pipe a b
++
++
++File: mgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
++
++3.4.11 Dew - пример использования
++----------------------------------------------------
++
++ [image src="../png/dew.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++light on
++dew a b
++
++
++File: mgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
++
++3.4.12 Surf3C - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3c.png" ]
++
++new a 60 50 40
++new b 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++modify b '1-2*tanh(4*(x+y-1)^2)'
++rotate 40 60
++light on
++alpha on
++box
++surf3c a b
++
++
++File: mgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
++
++3.4.13 Surf3A - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3a.png" ]
++
++new a 60 50 40
++new b 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++modify b '1-2*tanh(4*(x+y-1)^2)'
++rotate 40 60
++light on
++alpha on
++box
++surf3a a b
++
++
++File: mgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
++
++3.4.14 Vect 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/vect3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vect ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
++
++3.4.15 VectL 3D - пример использования
++---------------------------------------------------------
++
++ [image src="../png/vectl3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vectl ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
++
++3.4.16 VectC 3D - пример использования
++---------------------------------------------------------
++
++ [image src="../png/vectc3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vectc ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
++
++3.4.17 Flow 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/flow3.png" ]
++
++new ex 30 30 30
++new ey 30 30 30
++new ez 30 30 30
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++flow ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
++
++3.4.18 Pipe 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/pipe3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++light on
++box
++pipe ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
++
++3.4.19 Crust - пример использования
++------------------------------------------------------
++
++ [image src="../png/crust.png" ]
++
++read a 'hotdogs.pts'
++norm a -1 1 on
++rotate 40 60
++light on
++box
++crust a 'p'
++
++
++File: mgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
++
++3.4.20 Dots - пример использования
++-----------------------------------------------------
++
++ [image src="../png/dots.png" ]
++
++read a 'hotdogs.pts'
++norm a -1 1 on
++rotate 40 60
++box
++dots a 'p'
++
++
++File: mgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
++
++3.5 Базовые возможности
++=========================================
++
++* Menu:
++
++* 1D plot sample::
++* 2D plot sample::
++* 3D plot sample::
++* Line styles sample::
++* Arrow styles sample::
++* Text styles sample::
++* TeX parsing sample::
++* Font faces sample::
++* Colors sample::
++* Color schemes sample::
++* Normal transparency::
++* Glass-like transparency::
++* Lamp-like transparency::
++
++
++File: mgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
++
++3.5.1 Пример графиков 1D данных
++---------------------------------------------------
++
++ [image src="../png/sample8.png" ]
++
++new y0 50: modify y0 'sin(pi*(2*x-1))'
++subplot 2 2 0
++plot y0: box
++
++subplot 2 2 1
++new y1 50 2
++modify y1 'sin(pi*2*x-pi)'
++modify y1 'cos(pi*2*x-pi)/2' 1
++plot y1: box
++
++new x 50: modify x 'cos(pi*2*x-pi)'
++plot x y0 'Y+'
++plot y1(:,0) y(:,1) 'q|'
++
++subplot 2 2 2:rotate 60 40
++new z 50:   modify z '2*x-1'
++plot x y0 z 'g':box
++new y2 10 3
++modify y2 'cos(pi*(2*x-1-y))'
++modify y2 '2*x-1' 2
++plot y2(:,0) y2(:,1) y2(:,2) 'bo '
++
++subplot 2 2 3:rotate 60 40
++bars x y0 z 'r':box
++
++
++File: mgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
++
++3.5.2 Пример графиков 2D данных
++---------------------------------------------------
++
++ [image src="../png/sample9.png" ]
++
++light on
++
++new a0 50 40
++modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++subplot 2 2 0:rotate 60 40
++surf a0: box
++
++new x 50 40: new y 50 40: new z 50 40
++modify x '0.8*sin(2*pi*x)*sin(pi*y)'
++modify y '0.8*cos(2*pi*x)*sin(pi*y)'
++modify z '0.8*cos(pi*y)'
++subplot 2 2 1:rotate 60 40
++surf x y z 'bbwrr': box
++
++new a1 50 40 3
++modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
++subplot 2 2 2:rotate 60 40
++alpha on
++surf a1: box
++
++subplot 2 2 3: rotate 60 40
++dens a1: box
++
++
++File: mgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
++
++3.5.3 Пример графиков 3D данных
++---------------------------------------------------
++
++ [image src="../png/sampleb.png" ]
++
++alpha on: light on
++light 0 0 0 1
++new a 30 30 30: new b 30 30 30
++modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
++modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
++caxis 0 1
++
++subplot 2 2 0: rotate 40 60
++surf3 a 'wgk': box
++subplot 2 2 1: rotate 40 60
++densa a: box: axis
++subplot 2 2 2: rotate 40 60
++cloud a: box
++subplot 2 2 3: rotate 40 60
++surf3a b a 'q': box
++
++
++File: mgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
++
++3.5.4 Пример стилей линий и маркеров
++--------------------------------------------------------------
++
++ [image src="../png/sample5.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
++
++3.5.5 Пример стилей стрелок
++----------------------------------------------
++
++ [image src="../png/sampled.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
++
++3.5.6 Пример стилей текста
++--------------------------------------------
++
++ [image src="../png/sample4.png" ]
++
++text 0 1 'Text can be in ASCII and in Unicode'
++text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
++text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
++text 0 -0.2 'Easy to \a{overline} or \u{underline}'
++text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
++text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
++
++
++File: mgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
++
++3.5.7 Пример TeX формулы
++-------------------------------------
++
++ [image src="../png/samplee.png" ]
++
++text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
++
++
++File: mgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
++
++3.5.8 Примеры начертаний шрифта
++------------------------------------------------------
++
++ [image src="../png/fonts.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
++
++3.5.9 Примеры цветов
++---------------------------------
++
++ [image src="../png/colors.png" ]
++
++#LENUQ
++facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
++facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
++facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
++facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
++facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
++#lenuq
++facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
++facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
++facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
++facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
++facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
++#CMYkP
++facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
++facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
++facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
++facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
++facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
++#lenuq
++facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
++facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
++facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
++facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
++facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
++#BGRHW
++facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
++facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
++facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
++facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
++facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
++#bgrhw
++facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
++facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
++facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
++facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
++facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
++#brighted
++facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
++facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
++facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
++facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
++facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
++
++
++File: mgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
++
++3.5.10 Примеры цветовых схем
++-----------------------------------------------
++
++ [image src="../png/color_schemes.png" ]
++
++new a 256 2: fill a 'x'
++subplot 2 10 0 0.2:dens a 'kw'
++text -1.4 -0.3 'kw' '' -8
++subplot 2 10 1 0.2:dens a 'wk'
++text -1.4 -0.3 'wk' '' -8
++subplot 2 10 2 0.2:dens a 'kHCcw'
++text -1.4 -0.3 'kHCcw' '' -8
++subplot 2 10 3 0.2:dens a 'kBbcw'
++text -1.4 -0.3 'kBbcw' '' -8
++subplot 2 10 4 0.2:dens a 'kRryw'
++text -1.4 -0.3 'kRryw' '' -8
++subplot 2 10 5 0.2:dens a 'kGgew'
++text -1.4 -0.3 'kGgew' '' -8
++subplot 2 10 6 0.2:dens a 'BbwrR'
++text -1.4 -0.3 'BbwrR' '' -8
++subplot 2 10 7 0.2:dens a 'BbwgG'
++text -1.4 -0.3 'BbwgG' '' -8
++subplot 2 10 8 0.2:dens a 'GgwmM'
++text -1.4 -0.3 'GgwmM' '' -8
++subplot 2 10 9 0.2:dens a 'UuwqR'
++text -1.4 -0.3 'UuwqR' '' -8
++subplot 2 10 10 0.2:dens a 'QqwcC'
++text -1.4 -0.3 'QqwcC' '' -8
++subplot 2 10 11 0.2:dens a 'CcwyY'
++text -1.4 -0.3 'CcwyY' '' -8
++subplot 2 10 12 0.2:dens a 'bcwyr'
++text -1.4 -0.3 'bcwyr' '' -8
++subplot 2 10 13 0.2:dens a 'bwr'
++text -1.4 -0.3 'bwr' '' -8
++subplot 2 10 14 0.2:dens a 'BbcyrR'
++text -1.4 -0.3 'BbcyrR' '' -8
++subplot 2 10 15 0.2:dens a 'UbcyqR'
++text -1.4 -0.3 'UbcyqR' '' -8
++subplot 2 10 16 0.2:dens a 'BbcwyrR'
++text -1.4 -0.3 'BbcwyrR' '' -8
++subplot 2 10 17 0.2:dens a 'bcyr'
++text -1.4 -0.3 'bcyr' '' -8
++subplot 2 10 18 0.2:dens a 'BbcyrR|'
++text -1.4 -0.3 'BbcyrR|' '' -8
++subplot 2 10 19 0.2:dens a 'bgr'
++text -1.4 -0.3 'bgr' '' -8
++
++
++File: mgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
++
++3.5.11 Обычная прозрачность
++----------------------------------------------
++
++ [image src="../png/type0.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 0: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
++
++3.5.12 "Стеклянная" прозрачность
++------------------------------------------------------
++
++ [image src="../png/type1.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 1: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
++
++3.5.13 "Ламповая" прозрачность
++--------------------------------------------------
++
++ [image src="../png/type2.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 2: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
++
++3.6 Дополнительные возможности
++=======================================================
++
++* Menu:
++
++* Legend sample::
++* Adding mesh sample::
++* Surf & Cont sample::
++* Flow & Dens sample::
++* Several light sample::
++* Mirrored surface sample::
++* Cont with labels sample::
++* Ternary plot sample::
++* Coloring by coordinates sample::
++* Drops sample::
++* Molecules drawing sample::
++
++
++File: mgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
++
++3.6.1 Legend - пример использования
++------------------------------------------------------
++
++ [image src="../png/legend.png" ]
++
++new f 50 3
++modify f 'sin(2*pi*x*x)'
++modify f 'sin(2*pi*x)' 1
++modify f 'sin(2*pi*sqrt(x))' 2
++axis 0 -1 1 1
++box
++plot f
++axis
++addlegend 'sin(\pi {x^2})' 'b'
++addlegend 'sin(\pi x)' 'g*'
++addlegend 'sin(\pi \sqrt{\a x})' 'r+'
++legend
++
++
++File: mgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
++
++3.6.2 Добавляем сетку
++-----------------------------------
++
++ [image src="../png/samplea.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++alpha on
++light on
++subplot 2 2 0
++rotate 40 60
++surf a 'BbcyrR#'
++box
++subplot 2 2 1
++rotate 40 60
++dens a 'BbcyrR#'
++box
++subplot 2 2 2
++rotate 40 60
++cont a 'BbcyrR#'
++box
++subplot 2 2 3
++rotate 40 60
++axial a 'BbcyrR#'
++box
++
++
++File: mgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
++
++3.6.3 Surf & Cont - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/surf_cont_y.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a
++cont a 'y'
++
++
++File: mgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
++
++3.6.4 Flow & Dens - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/flow_dens.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++copy d a
++modify d 'sqrt(v^2+w^2)' a b
++box
++flow a b 'br'
++dens d 'BbcyrR'
++
++
++File: mgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
++
++3.6.5 Несколько источников света
++--------------------------------------------------------
++
++ [image src="../png/several_light.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++light 1 0 1 0 'c'
++light 2 1 0 0 'y'
++light 3 0 -1 0 'm'
++box
++surf a 'h'
++
++
++File: mgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
++
++3.6.6 Отражение поверхности
++-----------------------------------------------
++
++ [image src="../png/mirror.png" ]
++
++new a 30 40
++modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
++rotate 40 60
++light on
++surf a 'r'; yrange 0 1
++surf a 'b'; yrange 0 -1
++box
++ or
++new a 30 40
++var x 30 -1 1
++var y1 40 0 1
++var y2 40 0 -1
++modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
++rotate 40 60
++light on
++surf x y1 a 'r'
++surf x y2 a 'b'
++box
++
++
++File: mgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
++
++3.6.7 Cont и подписи - пример использования
++----------------------------------------------------------------------
++
++ [image src="../png/contt.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++cont a 'BbcyrRt'
++
++
++File: mgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
++
++3.6.8 Ternary plot - пример использования
++------------------------------------------------------------
++
++ [image src="../png/ternary.png" ]
++
++new rx 10
++new ry 10
++new x 50
++new y 50
++new a 20 30
++modify a '4*x*y'
++modify x '0.25*(1+cos(2*pi*x))'
++modify y '0.25*(1+sin(2*pi*x))'
++modify rx 'rnd'
++modify ry 'rnd*(1-v)' rx
++text -0.8 1.3 'Ternary plot (x+y+t=1)'
++ternary on
++plot x y 'r2'
++plot rx ry 'q^ '
++cont a
++line 0.5 0 0 0.75 'g2'
++axis
++grid 'xyz' 'B;'
++xlabel 'x comp.'
++ylabel 'y comp.'
++tlabel 't comp.'
++
++
++File: mgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
++
++3.6.9 Окрашивание по положению грани
++---------------------------------------------------------------
++
++ [image src="../png/surf3_rgbd.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++surf3 a 'bgrd'
++
++
++File: mgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
++
++3.6.10 Drops - пример использования
++------------------------------------------------------
++
++ [image src="../png/drops.png" ]
++
++light on
++text -1 1.2 'sh=0'
++drop -1 0 0 1 0.5 'r' 0
++text -0.33 1.2 'sh=0.33'
++drop -0.33 0 0 1 0.5 'r' 0.33
++text 0.33 1.2 'sh=0.67'
++drop 0.33 0 0 1 0.5 'r' 0.67
++text 1 1.2 'sh=1'
++drop 1 0 0 1 0.5 'r' 1
++ball -1 0 1 'k'
++ball -0.33 0 1 'k'
++ball 0.33 0 1 'k'
++ball 1 0 1 'k'
++line -1 0 1 1 0 1 'b'
++new h 100
++modify h '0.25*(1+x)^2'
++plot h 'k|'
++text -1 0.6 'h\sim(1+sh)^2' 'rL'
++
++
++File: mgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
++
++3.6.11 Рисование молекул
++----------------------------------------
++
++ [image src="../png/molecule.png" ]
++
++alpha on
++light on
++subplot 2 2 0
++text 0 1.2 'Methane, CH_4' '' -3
++rotate 60 120
++sphere 0 0 0 0.25 'k'
++drop 0 0 0 0 0 1 0.35 'h' 1 2
++sphere 0 0 0.7 0.25 'g'
++drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
++sphere -0.66 0 -0.23 0.25 'g'
++drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
++sphere 0.33 0.57 -0.23 0.25 'g'
++drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
++sphere 0.33 -0.57 -0.23 0.25 'g'
++subplot 2 2 1
++text 0 1.2 'Water, H{_2}O' '' -3
++rotate 60 100
++sphere 0 0 0 0.25 'r'
++drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
++sphere 0.3 0.5 0 0.25 'g'
++drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
++sphere 0.3 -0.5 0 0.25 'g'
++subplot 2 2 2
++text 0 1.2 'Oxygen, O_2' '' -3
++rotate 60 120
++drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
++sphere 0 0.5 0 0.25 'r'
++drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
++sphere 0 -0.5 0 0.25 'r'
++subplot 2 2 3
++text 0 1.2 0 'Ammonia, NH_3' '' -3
++rotate 60 120
++sphere 0 0 0 0.25 'b'
++drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
++sphere 0.33 0.57 0 0.25 'g'
++drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
++sphere 0.33 -0.57 0 0.25 'g'
++drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
++sphere -0.65 0 0 0.25 'g'
++
++
++File: mgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
++
++3.7 "Продвинутые" возможности
++===================================================
++
++* Menu:
++
++* Curvelinear coorinates sample::
++* 2-axes sample::
++* Semi-log sample::
++* Log-log sample::
++* Fitting sample::
++* Envelop sample::
++* Sew sample::
++* STFA sample::
++* PDE sample::
++* Beam tracing sample::
++* Parser sample::
++* Manual ticks sample::
++* ColumnPlot sample::
++* StickPlot sample::
++* Stereo image sample::
++
++
++File: mgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
++
++3.7.1 Криволинейные координаты
++-----------------------------------------------------
++
++ [image src="../png/sample3.png" ]
++
++origin -1 1 -1
++subplot 2 2 0
++rotate 60 40
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Cartesian'
++subplot 2 2 1
++rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Cylindrical'
++subplot 2 2 2
++rotate 60 40
++axis '2*y*x' 'y*y - x*x' ''
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Parabolic'
++subplot 2 2 3
++rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Spiral'
++axis '' '' '' # set to default Cartesian
++
++
++File: mgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
++
++3.7.2 Несколько осей на одном графике
++----------------------------------------------------------------
++
++ [image src="../png/2_axis.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++axis -1 -1 -1 1 1 1
++origin -1 -1 -1
++axis
++ylabel 'axis 1' 0
++plot y1 'b'
++axis 0 0 0 1 1 1
++origin 1 1 1
++axis
++ylabel 'axis 2' 0
++stem y2 'r'
++
++
++File: mgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
++
++3.7.3 Semi-log - пример использования
++--------------------------------------------------------
++
++ [image src="../png/semilog.png" ]
++
++new x 2000
++new y 2000
++modify x '0.01/(x+10^(-5))'
++modify y 'sin(1/v)' x
++xrange 0.01 1000
++origin 0.01 -1 0
++xtick 0
++axis 'lg(x)' '' ''
++plot x y 'b2'
++axis
++grid 'xy' 'g'
++xlabel 'x' 0
++ylabel 'y = sin 1/x' 0
++box
++
++
++File: mgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
++
++3.7.4 Log-log - пример использования
++-------------------------------------------------------
++
++ [image src="../png/loglog.png" ]
++
++new x 100
++new y 100
++modify x 'pow(10,6*x-3)'
++modify y 'sqrt(1+v^2)' x
++axis 0.001 0.1 1000 1000
++xtick 0
++ytick 0
++axis 'lg(x)' 'lg(y)' ''
++plot x y 'b2'
++axis
++grid 'xy' 'g;'
++xlabel 'x' 0
++ylabel 'y=\sqrt{1+x^2}' 0
++box
++
++
++File: mgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
++
++3.7.5 Fitting - пример использования
++-------------------------------------------------------
++
++ [image src="../png/fit.png" ]
++
++new rnd 100
++fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
++new in 100
++fill in '0.3+sin(2*pi*x)'
++yrange -2 2
++plot rnd '. '
++box
++list ini 1 1 3
++fit res rnd 'a+b*sin(c*x)' 'abc' ini
++plot res 'r'
++plot in 'b'
++text -1 -1.3 'fitted:' 'L:r' -1
++putsfit 0 -1.8 'y = ' 'C:r'
++text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
++
++
++File: mgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
++
++3.7.6 Envelop - пример использования
++-------------------------------------------------------
++
++ [image src="../png/envelop.png" ]
++
++new a 1000
++fill a 'exp(-8*x^2)*sin(10*pi*x)'
++plot a 'b'
++envelop a
++plot a 'r'
++axis
++
++
++File: mgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
++
++3.7.7 Sew - пример использования
++---------------------------------------------------
++
++ [image src="../png/sew.png" ]
++
++new a 100 100
++modify a 'mod((y^2-(1-x)^2)/2,0.1)'
++rotate 40 60
++light on
++alpha on
++surf a 'b'
++sew a 'xy' 0.1
++surf a 'r'
++box
++
++
++File: mgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
++
++3.7.8 STFA - пример использования
++----------------------------------------------------
++
++ [image src="../png/stfa.png" ]
++
++new a 2000
++new b 2000
++fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
++        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
++subplot 1 2 0
++plot a
++axis
++xlabel '\i t'
++subplot 1 2 1
++stfa a b 64 ''
++axis
++ylabel '\omega' 0
++xlabel '\i t'
++
++
++File: mgl_ru.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
++
++3.7.9 PDE - пример использования
++---------------------------------------------------
++
++ [image src="../png/pde.png" ]
++
++axis
++xlabel '\i x'
++ylabel '\i z'
++new re 128
++new im 128
++fill re 'exp(-48*(x+0.7)^2)'
++pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
++transpose a
++crange 0 1
++dens a 'wyrRk'
++fplot '-x' 'k|'
++text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
++title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
++
++
++File: mgl_ru.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
++
++3.7.10 Beam tracing - пример использования
++-------------------------------------------------------------
++
++ [image src="../png/qo2d.png" ]
++
++define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
++ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
++plot r(0) r(1) 'k'
++axis
++xlabel '\i x'
++ylabel '\i z'
++new re 128
++new im 128
++new xx
++new yy
++fill re 'exp(-48*x^2)'
++qo2d a $1 re im r 1 30 xx yy
++crange 0 1
++dens xx yy a 'wyrRk'
++fplot '-x' 'k|'
++text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
++text 0.5 -0.05 'central ray' 'L' -1
++title 'Beam and ray tracing' 'C' -1.5
++
++
++File: mgl_ru.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
++
++3.7.11 Parser - пример использования
++-------------------------------------------------------
++
++
++File: mgl_ru.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
++
++3.7.12 Особые метки по осям
++--------------------------------------------
++
++ [image src="../png/tval.png" ]
++
++axis -pi 0 pi 2
++xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
++axis
++grid
++fplot '2*cos(x^2)^2' 'r2' nan 300
++
++
++File: mgl_ru.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
++
++3.7.13 ColumnPlot - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/column.png" ]
++
++for $1 0 3
++columnplot 4 $1
++box
++text -0.5 0.5 'Plot $1 of 4'
++fplot 'sin(pi*x+pi*$1/2)'
++next
++
++
++File: mgl_ru.info,  Node: StickPlot sample,  Prev: ColumnPlot sample,  Up: Advanced features
++
++3.7.14 StickPlot - пример использования
++----------------------------------------------------------
++
++ [image src="../png/stick.png" ]
++
++ranges -1 1 -1 1 0 1:light on
++stickplot 3 0 40 30 : axis 'xyz_'
++fsurf 'exp(-10*y^2-6*x^2)'
++text 0.2 0 1.2 'z=0' '' -2
++stickplot 3 1 40 30 : axis 'xy_'
++fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
++text 0.2 0 1.2 'z=1' '' -2
++stickplot 3 2 40 30 : axis 'xy_'
++fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
++text 0.2 0 1.2 'z=2' '' -2
++xlabel '\tau' 0 : ylabel '\rho'
++
++
++File: mgl_ru.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
++
++3.7.15 Пример стерео изображения
++-------------------------------------------------------
++
++ [image src="../png/stereo.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++light on
++subplot 2 1 0
++rotate 40 60+3
++box:surf a
++subplot 2 1 1
++rotate 40 60-3
++box:surf a
++
++
++
++Local Variables:
++coding: utf-8
++End:
+--- mathgl-1.11.0.1.orig/texinfo/Makefile.in
++++ mathgl-1.11.0.1/texinfo/Makefile.in
+@@ -39,7 +39,11 @@ DIST_COMMON = $(mathgl_en_TEXINFOS) $(ma
+ 	$(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- /dev/null
++++ mathgl-1.11.0.1/texinfo/mgl_ru.info-2
+@@ -0,0 +1,889 @@
++This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
++
++Это документация для MathGL (версии 1.11) - библиотеки классов и
++функций для построения научной графики. Пожалуйста сообщайте о любых
++ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++
++   Copyright (C) 2009 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++INFO-DIR-SECTION MathGL documentation system
++START-INFO-DIR-ENTRY
++* MathGL: (mathgl). The library for scientific graphics.
++END-INFO-DIR-ENTRY
++
++
++File: mgl_ru.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
++
++Appendix A GNU Free Documentation License
++*****************************************
++
++                      Version 1.2, November 2002
++
++     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
++     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
++
++     Everyone is permitted to copy and distribute verbatim copies
++     of this license document, but changing it is not allowed.
++
++  0. PREAMBLE
++
++     The purpose of this License is to make a manual, textbook, or other
++     functional and useful document "free" in the sense of freedom: to
++     assure everyone the effective freedom to copy and redistribute it,
++     with or without modifying it, either commercially or
++     noncommercially.  Secondarily, this License preserves for the
++     author and publisher a way to get credit for their work, while not
++     being considered responsible for modifications made by others.
++
++     This License is a kind of "copyleft", which means that derivative
++     works of the document must themselves be free in the same sense.
++     It complements the GNU General Public License, which is a copyleft
++     license designed for free software.
++
++     We have designed this License in order to use it for manuals for
++     free software, because free software needs free documentation: a
++     free program should come with manuals providing the same freedoms
++     that the software does.  But this License is not limited to
++     software manuals; it can be used for any textual work, regardless
++     of subject matter or whether it is published as a printed book.
++     We recommend this License principally for works whose purpose is
++     instruction or reference.
++
++  1. APPLICABILITY AND DEFINITIONS
++
++     This License applies to any manual or other work, in any medium,
++     that contains a notice placed by the copyright holder saying it
++     can be distributed under the terms of this License.  Such a notice
++     grants a world-wide, royalty-free license, unlimited in duration,
++     to use that work under the conditions stated herein.  The
++     "Document", below, refers to any such manual or work.  Any member
++     of the public is a licensee, and is addressed as "you".  You
++     accept the license if you copy, modify or distribute the work in a
++     way requiring permission under copyright law.
++
++     A "Modified Version" of the Document means any work containing the
++     Document or a portion of it, either copied verbatim, or with
++     modifications and/or translated into another language.
++
++     A "Secondary Section" is a named appendix or a front-matter section
++     of the Document that deals exclusively with the relationship of the
++     publishers or authors of the Document to the Document's overall
++     subject (or to related matters) and contains nothing that could
++     fall directly within that overall subject.  (Thus, if the Document
++     is in part a textbook of mathematics, a Secondary Section may not
++     explain any mathematics.)  The relationship could be a matter of
++     historical connection with the subject or with related matters, or
++     of legal, commercial, philosophical, ethical or political position
++     regarding them.
++
++     The "Invariant Sections" are certain Secondary Sections whose
++     titles are designated, as being those of Invariant Sections, in
++     the notice that says that the Document is released under this
++     License.  If a section does not fit the above definition of
++     Secondary then it is not allowed to be designated as Invariant.
++     The Document may contain zero Invariant Sections.  If the Document
++     does not identify any Invariant Sections then there are none.
++
++     The "Cover Texts" are certain short passages of text that are
++     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
++     that says that the Document is released under this License.  A
++     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
++     be at most 25 words.
++
++     A "Transparent" copy of the Document means a machine-readable copy,
++     represented in a format whose specification is available to the
++     general public, that is suitable for revising the document
++     straightforwardly with generic text editors or (for images
++     composed of pixels) generic paint programs or (for drawings) some
++     widely available drawing editor, and that is suitable for input to
++     text formatters or for automatic translation to a variety of
++     formats suitable for input to text formatters.  A copy made in an
++     otherwise Transparent file format whose markup, or absence of
++     markup, has been arranged to thwart or discourage subsequent
++     modification by readers is not Transparent.  An image format is
++     not Transparent if used for any substantial amount of text.  A
++     copy that is not "Transparent" is called "Opaque".
++
++     Examples of suitable formats for Transparent copies include plain
++     ASCII without markup, Texinfo input format, LaTeX input format,
++     SGML or XML using a publicly available DTD, and
++     standard-conforming simple HTML, PostScript or PDF designed for
++     human modification.  Examples of transparent image formats include
++     PNG, XCF and JPG.  Opaque formats include proprietary formats that
++     can be read and edited only by proprietary word processors, SGML or
++     XML for which the DTD and/or processing tools are not generally
++     available, and the machine-generated HTML, PostScript or PDF
++     produced by some word processors for output purposes only.
++
++     The "Title Page" means, for a printed book, the title page itself,
++     plus such following pages as are needed to hold, legibly, the
++     material this License requires to appear in the title page.  For
++     works in formats which do not have any title page as such, "Title
++     Page" means the text near the most prominent appearance of the
++     work's title, preceding the beginning of the body of the text.
++
++     A section "Entitled XYZ" means a named subunit of the Document
++     whose title either is precisely XYZ or contains XYZ in parentheses
++     following text that translates XYZ in another language.  (Here XYZ
++     stands for a specific section name mentioned below, such as
++     "Acknowledgements", "Dedications", "Endorsements", or "History".)
++     To "Preserve the Title" of such a section when you modify the
++     Document means that it remains a section "Entitled XYZ" according
++     to this definition.
++
++     The Document may include Warranty Disclaimers next to the notice
++     which states that this License applies to the Document.  These
++     Warranty Disclaimers are considered to be included by reference in
++     this License, but only as regards disclaiming warranties: any other
++     implication that these Warranty Disclaimers may have is void and
++     has no effect on the meaning of this License.
++
++  2. VERBATIM COPYING
++
++     You may copy and distribute the Document in any medium, either
++     commercially or noncommercially, provided that this License, the
++     copyright notices, and the license notice saying this License
++     applies to the Document are reproduced in all copies, and that you
++     add no other conditions whatsoever to those of this License.  You
++     may not use technical measures to obstruct or control the reading
++     or further copying of the copies you make or distribute.  However,
++     you may accept compensation in exchange for copies.  If you
++     distribute a large enough number of copies you must also follow
++     the conditions in section 3.
++
++     You may also lend copies, under the same conditions stated above,
++     and you may publicly display copies.
++
++  3. COPYING IN QUANTITY
++
++     If you publish printed copies (or copies in media that commonly
++     have printed covers) of the Document, numbering more than 100, and
++     the Document's license notice requires Cover Texts, you must
++     enclose the copies in covers that carry, clearly and legibly, all
++     these Cover Texts: Front-Cover Texts on the front cover, and
++     Back-Cover Texts on the back cover.  Both covers must also clearly
++     and legibly identify you as the publisher of these copies.  The
++     front cover must present the full title with all words of the
++     title equally prominent and visible.  You may add other material
++     on the covers in addition.  Copying with changes limited to the
++     covers, as long as they preserve the title of the Document and
++     satisfy these conditions, can be treated as verbatim copying in
++     other respects.
++
++     If the required texts for either cover are too voluminous to fit
++     legibly, you should put the first ones listed (as many as fit
++     reasonably) on the actual cover, and continue the rest onto
++     adjacent pages.
++
++     If you publish or distribute Opaque copies of the Document
++     numbering more than 100, you must either include a
++     machine-readable Transparent copy along with each Opaque copy, or
++     state in or with each Opaque copy a computer-network location from
++     which the general network-using public has access to download
++     using public-standard network protocols a complete Transparent
++     copy of the Document, free of added material.  If you use the
++     latter option, you must take reasonably prudent steps, when you
++     begin distribution of Opaque copies in quantity, to ensure that
++     this Transparent copy will remain thus accessible at the stated
++     location until at least one year after the last time you
++     distribute an Opaque copy (directly or through your agents or
++     retailers) of that edition to the public.
++
++     It is requested, but not required, that you contact the authors of
++     the Document well before redistributing any large number of
++     copies, to give them a chance to provide you with an updated
++     version of the Document.
++
++  4. MODIFICATIONS
++
++     You may copy and distribute a Modified Version of the Document
++     under the conditions of sections 2 and 3 above, provided that you
++     release the Modified Version under precisely this License, with
++     the Modified Version filling the role of the Document, thus
++     licensing distribution and modification of the Modified Version to
++     whoever possesses a copy of it.  In addition, you must do these
++     things in the Modified Version:
++
++       A. Use in the Title Page (and on the covers, if any) a title
++          distinct from that of the Document, and from those of
++          previous versions (which should, if there were any, be listed
++          in the History section of the Document).  You may use the
++          same title as a previous version if the original publisher of
++          that version gives permission.
++
++       B. List on the Title Page, as authors, one or more persons or
++          entities responsible for authorship of the modifications in
++          the Modified Version, together with at least five of the
++          principal authors of the Document (all of its principal
++          authors, if it has fewer than five), unless they release you
++          from this requirement.
++
++       C. State on the Title page the name of the publisher of the
++          Modified Version, as the publisher.
++
++       D. Preserve all the copyright notices of the Document.
++
++       E. Add an appropriate copyright notice for your modifications
++          adjacent to the other copyright notices.
++
++       F. Include, immediately after the copyright notices, a license
++          notice giving the public permission to use the Modified
++          Version under the terms of this License, in the form shown in
++          the Addendum below.
++
++       G. Preserve in that license notice the full lists of Invariant
++          Sections and required Cover Texts given in the Document's
++          license notice.
++
++       H. Include an unaltered copy of this License.
++
++       I. Preserve the section Entitled "History", Preserve its Title,
++          and add to it an item stating at least the title, year, new
++          authors, and publisher of the Modified Version as given on
++          the Title Page.  If there is no section Entitled "History" in
++          the Document, create one stating the title, year, authors,
++          and publisher of the Document as given on its Title Page,
++          then add an item describing the Modified Version as stated in
++          the previous sentence.
++
++       J. Preserve the network location, if any, given in the Document
++          for public access to a Transparent copy of the Document, and
++          likewise the network locations given in the Document for
++          previous versions it was based on.  These may be placed in
++          the "History" section.  You may omit a network location for a
++          work that was published at least four years before the
++          Document itself, or if the original publisher of the version
++          it refers to gives permission.
++
++       K. For any section Entitled "Acknowledgements" or "Dedications",
++          Preserve the Title of the section, and preserve in the
++          section all the substance and tone of each of the contributor
++          acknowledgements and/or dedications given therein.
++
++       L. Preserve all the Invariant Sections of the Document,
++          unaltered in their text and in their titles.  Section numbers
++          or the equivalent are not considered part of the section
++          titles.
++
++       M. Delete any section Entitled "Endorsements".  Such a section
++          may not be included in the Modified Version.
++
++       N. Do not retitle any existing section to be Entitled
++          "Endorsements" or to conflict in title with any Invariant
++          Section.
++
++       O. Preserve any Warranty Disclaimers.
++
++     If the Modified Version includes new front-matter sections or
++     appendices that qualify as Secondary Sections and contain no
++     material copied from the Document, you may at your option
++     designate some or all of these sections as invariant.  To do this,
++     add their titles to the list of Invariant Sections in the Modified
++     Version's license notice.  These titles must be distinct from any
++     other section titles.
++
++     You may add a section Entitled "Endorsements", provided it contains
++     nothing but endorsements of your Modified Version by various
++     parties--for example, statements of peer review or that the text
++     has been approved by an organization as the authoritative
++     definition of a standard.
++
++     You may add a passage of up to five words as a Front-Cover Text,
++     and a passage of up to 25 words as a Back-Cover Text, to the end
++     of the list of Cover Texts in the Modified Version.  Only one
++     passage of Front-Cover Text and one of Back-Cover Text may be
++     added by (or through arrangements made by) any one entity.  If the
++     Document already includes a cover text for the same cover,
++     previously added by you or by arrangement made by the same entity
++     you are acting on behalf of, you may not add another; but you may
++     replace the old one, on explicit permission from the previous
++     publisher that added the old one.
++
++     The author(s) and publisher(s) of the Document do not by this
++     License give permission to use their names for publicity for or to
++     assert or imply endorsement of any Modified Version.
++
++  5. COMBINING DOCUMENTS
++
++     You may combine the Document with other documents released under
++     this License, under the terms defined in section 4 above for
++     modified versions, provided that you include in the combination
++     all of the Invariant Sections of all of the original documents,
++     unmodified, and list them all as Invariant Sections of your
++     combined work in its license notice, and that you preserve all
++     their Warranty Disclaimers.
++
++     The combined work need only contain one copy of this License, and
++     multiple identical Invariant Sections may be replaced with a single
++     copy.  If there are multiple Invariant Sections with the same name
++     but different contents, make the title of each such section unique
++     by adding at the end of it, in parentheses, the name of the
++     original author or publisher of that section if known, or else a
++     unique number.  Make the same adjustment to the section titles in
++     the list of Invariant Sections in the license notice of the
++     combined work.
++
++     In the combination, you must combine any sections Entitled
++     "History" in the various original documents, forming one section
++     Entitled "History"; likewise combine any sections Entitled
++     "Acknowledgements", and any sections Entitled "Dedications".  You
++     must delete all sections Entitled "Endorsements."
++
++  6. COLLECTIONS OF DOCUMENTS
++
++     You may make a collection consisting of the Document and other
++     documents released under this License, and replace the individual
++     copies of this License in the various documents with a single copy
++     that is included in the collection, provided that you follow the
++     rules of this License for verbatim copying of each of the
++     documents in all other respects.
++
++     You may extract a single document from such a collection, and
++     distribute it individually under this License, provided you insert
++     a copy of this License into the extracted document, and follow
++     this License in all other respects regarding verbatim copying of
++     that document.
++
++  7. AGGREGATION WITH INDEPENDENT WORKS
++
++     A compilation of the Document or its derivatives with other
++     separate and independent documents or works, in or on a volume of
++     a storage or distribution medium, is called an "aggregate" if the
++     copyright resulting from the compilation is not used to limit the
++     legal rights of the compilation's users beyond what the individual
++     works permit.  When the Document is included in an aggregate, this
++     License does not apply to the other works in the aggregate which
++     are not themselves derivative works of the Document.
++
++     If the Cover Text requirement of section 3 is applicable to these
++     copies of the Document, then if the Document is less than one half
++     of the entire aggregate, the Document's Cover Texts may be placed
++     on covers that bracket the Document within the aggregate, or the
++     electronic equivalent of covers if the Document is in electronic
++     form.  Otherwise they must appear on printed covers that bracket
++     the whole aggregate.
++
++  8. TRANSLATION
++
++     Translation is considered a kind of modification, so you may
++     distribute translations of the Document under the terms of section
++     4.  Replacing Invariant Sections with translations requires special
++     permission from their copyright holders, but you may include
++     translations of some or all Invariant Sections in addition to the
++     original versions of these Invariant Sections.  You may include a
++     translation of this License, and all the license notices in the
++     Document, and any Warranty Disclaimers, provided that you also
++     include the original English version of this License and the
++     original versions of those notices and disclaimers.  In case of a
++     disagreement between the translation and the original version of
++     this License or a notice or disclaimer, the original version will
++     prevail.
++
++     If a section in the Document is Entitled "Acknowledgements",
++     "Dedications", or "History", the requirement (section 4) to
++     Preserve its Title (section 1) will typically require changing the
++     actual title.
++
++  9. TERMINATION
++
++     You may not copy, modify, sublicense, or distribute the Document
++     except as expressly provided for under this License.  Any other
++     attempt to copy, modify, sublicense or distribute the Document is
++     void, and will automatically terminate your rights under this
++     License.  However, parties who have received copies, or rights,
++     from you under this License will not have their licenses
++     terminated so long as such parties remain in full compliance.
++
++ 10. FUTURE REVISIONS OF THIS LICENSE
++
++     The Free Software Foundation may publish new, revised versions of
++     the GNU Free Documentation License from time to time.  Such new
++     versions will be similar in spirit to the present version, but may
++     differ in detail to address new problems or concerns.  See
++     `http://www.gnu.org/copyleft/'.
++
++     Each version of the License is given a distinguishing version
++     number.  If the Document specifies that a particular numbered
++     version of this License "or any later version" applies to it, you
++     have the option of following the terms and conditions either of
++     that specified version or of any later version that has been
++     published (not as a draft) by the Free Software Foundation.  If
++     the Document does not specify a version number of this License,
++     you may choose any version ever published (not as a draft) by the
++     Free Software Foundation.
++
++ADDENDUM: How to use this License for your documents
++====================================================
++
++To use this License in a document you have written, include a copy of
++the License in the document and put the following copyright and license
++notices just after the title page:
++
++       Copyright (C)  YEAR  YOUR NAME.
++       Permission is granted to copy, distribute and/or modify this document
++       under the terms of the GNU Free Documentation License, Version 1.2
++       or any later version published by the Free Software Foundation;
++       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
++       Texts.  A copy of the license is included in the section entitled ``GNU
++       Free Documentation License''.
++
++   If you have Invariant Sections, Front-Cover Texts and Back-Cover
++Texts, replace the "with...Texts." line with this:
++
++         with the Invariant Sections being LIST THEIR TITLES, with
++         the Front-Cover Texts being LIST, and with the Back-Cover Texts
++         being LIST.
++
++   If you have Invariant Sections without Cover Texts, or some other
++combination of the three, merge those two alternatives to suit the
++situation.
++
++   If your document contains nontrivial examples of program code, we
++recommend releasing these examples in parallel under your choice of
++free software license, such as the GNU General Public License, to
++permit their use in free software.
++
++
++File: mgl_ru.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
++
++Индекс
++************
++
++ [index ]
++* Menu:
++
++* AddLegend:                             Legend sample.       (line   6)
++* addlegend:                             Legend.              (line  29)
++* addto:                                 Operators.           (line  18)
++* adjust:                                Axis settings.       (line 114)
++* Alpha <1>:                             3D plot sample.      (line   6)
++* Alpha <2>:                             2D plot sample.      (line   6)
++* Alpha:                                 Transparent surface sample.
++                                                              (line   6)
++* alpha <1>:                             Command options.     (line  20)
++* alpha:                                 Transparency.        (line  15)
++* alphadef <1>:                          Command options.     (line  20)
++* alphadef:                              Transparency.        (line  19)
++* ambient <1>:                           Command options.     (line  26)
++* ambient:                               Lighting.            (line  25)
++* Area <1>:                              Area gradient sample.
++                                                              (line   6)
++* Area:                                  Area sample.         (line   6)
++* area:                                  1D plotting.         (line  56)
++* arrowsize:                             Default sizes.       (line  18)
++* aspect:                                Transformation matrix.
++                                                              (line  61)
++* Axial <1>:                             Adding mesh sample.  (line   6)
++* Axial:                                 Axial sample.        (line   6)
++* axial:                                 2D plotting.         (line 135)
++* axialdir:                              Other settings.      (line  31)
++* Axis <1>:                              Log-log sample.      (line   6)
++* Axis <2>:                              Semi-log sample.     (line   6)
++* Axis <3>:                              2-axes sample.       (line   6)
++* Axis <4>:                              Curvelinear coorinates sample.
++                                                              (line   6)
++* Axis <5>:                              Dens3 sample.        (line   6)
++* Axis <6>:                              Ring chart sample.   (line   6)
++* Axis:                                  Pie chart sample.    (line   6)
++* axis <1>:                              Axis and Colorbar.   (line  10)
++* axis:                                  Axis settings.       (line  12)
++* ball:                                  Primitives drawing.  (line  12)
++* Barh:                                  Barh sample.         (line   6)
++* barh:                                  1D plotting.         (line 101)
++* Bars <1>:                              1D plot sample.      (line   6)
++* Bars <2>:                              Bars fall sample.    (line   6)
++* Bars <3>:                              Bars above sample.   (line   6)
++* Bars <4>:                              Bars 2 colors sample.
++                                                              (line   6)
++* Bars:                                  Bars sample.         (line   6)
++* bars:                                  1D plotting.         (line  87)
++* barwidth:                              Default sizes.       (line  11)
++* beam:                                  3D plotting.         (line 119)
++* Belt:                                  Belt sample.         (line   6)
++* belt:                                  2D plotting.         (line  57)
++* box:                                   Axis and Colorbar.   (line  43)
++* BoxPlot:                               BoxPlot sample.      (line   6)
++* boxplot:                               1D plotting.         (line 182)
++* Boxs:                                  Boxs sample.         (line   6)
++* boxs:                                  2D plotting.         (line  66)
++* call:                                  Program flow.        (line  34)
++* caxis:                                 Axis settings.       (line  53)
++* Chart <1>:                             Ring chart sample.   (line   6)
++* Chart <2>:                             Pie chart sample.    (line   6)
++* Chart:                                 Chart sample.        (line   6)
++* chart:                                 1D plotting.         (line 115)
++* chdir:                                 Program flow.        (line   9)
++* clearlegend:                           Legend.              (line  34)
++* clf:                                   Primitives drawing.  (line   9)
++* Cloud:                                 Cloud sample.        (line   6)
++* cloud:                                 3D plotting.         (line 109)
++* CloudP:                                CloudP sample.       (line   6)
++* Colorbar <1>:                          Color schemes sample.
++                                                              (line   6)
++* Colorbar:                              Dens sample.         (line   6)
++* colorbar:                              Axis and Colorbar.   (line  17)
++* columnplot:                            Transformation matrix.
++                                                              (line  39)
++* combine:                               Make another data.   (line   6)
++* cone:                                  Primitives drawing.  (line  55)
++* Cont <1>:                              Cont with labels sample.
++                                                              (line   6)
++* Cont <2>:                              Surf & Cont sample.  (line   6)
++* Cont <3>:                              Adding mesh sample.  (line   6)
++* Cont:                                  Cont sample.         (line   6)
++* cont:                                  2D plotting.         (line  89)
++* Cont3:                                 Cont3 sample.        (line   6)
++* cont3:                                 3D plotting.         (line  54)
++* conta:                                 3D plotting.         (line  72)
++* ContD:                                 ContD sample.        (line   6)
++* contd:                                 2D plotting.         (line 119)
++* ContF:                                 ContF sample.        (line   6)
++* contf:                                 2D plotting.         (line 105)
++* ContF3 <1>:                            Isocaps sample.      (line   6)
++* ContF3:                                ContF3 sample.       (line   6)
++* contf3:                                3D plotting.         (line  76)
++* contfa:                                3D plotting.         (line  93)
++* contfx:                                Other plotting.      (line  36)
++* contfy:                                Other plotting.      (line  36)
++* contfz:                                Other plotting.      (line  36)
++* ContX:                                 Cont projection sample.
++                                                              (line   6)
++* contx:                                 Other plotting.      (line  27)
++* ContY:                                 Cont projection sample.
++                                                              (line   6)
++* conty:                                 Other plotting.      (line  27)
++* ContZ:                                 Cont projection sample.
++                                                              (line   6)
++* contz:                                 Other plotting.      (line  27)
++* copy:                                  Data create.         (line  31)
++* cosfft:                                Change data.         (line  40)
++* crange <1>:                            Command options.     (line  30)
++* crange:                                Axis settings.       (line  75)
++* crop:                                  Rearrange data.      (line  31)
++* Crust:                                 Crust sample.        (line   6)
++* crust:                                 Other plotting.      (line  51)
++* ctick:                                 Axis settings.       (line  92)
++* cumsum:                                Change data.         (line  11)
++* curve:                                 Primitives drawing.  (line  22)
++* cut <1>:                               Command options.     (line  42)
++* cut:                                   Cutting.             (line  10)
++* CutMax <1>:                            Isocaps sample.      (line   6)
++* CutMax:                                CutMinMax sample.    (line   6)
++* CutMin <1>:                            Isocaps sample.      (line   6)
++* CutMin:                                CutMinMax sample.    (line   6)
++* CutOff:                                CutOff sample.       (line   6)
++* defchr:                                Program flow.        (line  21)
++* define:                                Program flow.        (line  12)
++* defnum:                                Program flow.        (line  25)
++* defpal:                                Program flow.        (line  29)
++* delete:                                Rearrange data.      (line  35)
++* Dens <1>:                              Flow & Dens sample.  (line   6)
++* Dens <2>:                              Adding mesh sample.  (line   6)
++* Dens <3>:                              3D plot sample.      (line   6)
++* Dens <4>:                              2D plot sample.      (line   6)
++* Dens:                                  Dens sample.         (line   6)
++* dens:                                  2D plotting.         (line  81)
++* Dens3:                                 Dens3 sample.        (line   6)
++* dens3:                                 3D plotting.         (line  41)
++* densa:                                 3D plotting.         (line  50)
++* DensX:                                 Dens projection sample.
++                                                              (line   6)
++* densx:                                 Other plotting.      (line  18)
++* DensY:                                 Dens projection sample.
++                                                              (line   6)
++* densy:                                 Other plotting.      (line  18)
++* DensZ:                                 Dens projection sample.
++                                                              (line   6)
++* densz:                                 Other plotting.      (line  18)
++* Dew:                                   Dew sample.          (line   6)
++* dew:                                   Vector fields.       (line  73)
++* diff:                                  Change data.         (line  17)
++* diff2:                                 Change data.         (line  33)
++* divto:                                 Operators.           (line  12)
++* Dots:                                  Dots sample.         (line   6)
++* dots:                                  Other plotting.      (line  44)
++* Drop <1>:                              Molecules drawing sample.
++                                                              (line   6)
++* Drop:                                  Drops sample.        (line   6)
++* drop:                                  Primitives drawing.  (line  46)
++* else:                                  Program flow.        (line  64)
++* elseif:                                Program flow.        (line  55)
++* endif:                                 Program flow.        (line  68)
++* Envelop:                               Envelop sample.      (line   6)
++* envelop:                               Change data.         (line  72)
++* Error:                                 Error sample.        (line   6)
++* error:                                 1D plotting.         (line 173)
++* evaluate:                              Make another data.   (line  10)
++* export:                                File I/O.            (line  48)
++* extend:                                Rearrange data.      (line  12)
++* facex:                                 Primitives drawing.  (line  30)
++* facey:                                 Primitives drawing.  (line  31)
++* facez:                                 Primitives drawing.  (line  32)
++* Fall:                                  Fall sample.         (line   6)
++* fall:                                  2D plotting.         (line  47)
++* fgets:                                 Text printing.       (line  52)
++* fill:                                  Data filling.        (line   6)
++* Fit:                                   Fitting sample.      (line   6)
++* fit:                                   Nonlinear fitting.   (line  38)
++* fits:                                  Nonlinear fitting.   (line  30)
++* Flow <1>:                              Flow & Dens sample.  (line   6)
++* Flow <2>:                              Flow 3D sample.      (line   6)
++* Flow:                                  Flow sample.         (line   6)
++* flow:                                  Vector fields.       (line  82)
++* Fog:                                   Surface in fog sample.
++                                                              (line   6)
++* fog:                                   Fog.                 (line   6)
++* font:                                  Other settings.      (line   6)
++* fontsize:                              Command options.     (line  46)
++* for:                                   Program flow.        (line  72)
++* fplot:                                 Other plotting.      (line  94)
++* fsurf:                                 Other plotting.      (line 105)
++* func:                                  Program flow.        (line  38)
++* Grad:                                  Grad sample.         (line   6)
++* grad:                                  2D plotting.         (line 151)
++* grid:                                  Axis and Colorbar.   (line  38)
++* grid2:                                 2D plotting.         (line 161)
++* grid3:                                 3D plotting.         (line  98)
++* grida:                                 3D plotting.         (line 105)
++* hankel:                                Change data.         (line  44)
++* hist:                                  Make another data.   (line  20)
++* idset:                                 Data create.         (line  38)
++* if:                                    Program flow.        (line  49)
++* import:                                File I/O.            (line  43)
++* info:                                  Data create.         (line  42)
++* inplot:                                Transformation matrix.
++                                                              (line  30)
++* insert:                                Rearrange data.      (line  42)
++* integrate:                             Change data.         (line  13)
++* jacobian:                              Make another data.   (line 140)
++* Legend:                                Legend sample.       (line   6)
++* legend <1>:                            Command options.     (line  56)
++* legend:                                Legend.              (line  18)
++* legendbox:                             Legend.              (line  37)
++* legendmarks:                           Legend.              (line  41)
++* Light:                                 Several light sample.
++                                                              (line   6)
++* light:                                 Lighting.            (line  13)
++* Line <1>:                              Arrow styles sample. (line   6)
++* Line:                                  Line styles sample.  (line   6)
++* line:                                  Primitives drawing.  (line  16)
++* linewidth:                             Default sizes.       (line  22)
++* list:                                  Data create.         (line  16)
++* Map:                                   Map sample.          (line   6)
++* map:                                   Dual plotting.       (line  76)
++* Mark <1>:                              Line styles sample.  (line   6)
++* Mark:                                  Mark sample.         (line   6)
++* mark:                                  1D plotting.         (line 153)
++* marksize <1>:                          Command options.     (line  49)
++* marksize:                              Default sizes.       (line  15)
++* max:                                   Make another data.   (line  47)
++* Mesh:                                  Mesh sample.         (line   6)
++* mesh:                                  2D plotting.         (line  40)
++* meshnum <1>:                           Command options.     (line  52)
++* meshnum:                               Other settings.      (line  25)
++* mglParse:                              Parser sample.       (line   6)
++* mglPDE:                                PDE sample.          (line   6)
++* mglQO2d:                               Beam tracing sample. (line   6)
++* mglRay <1>:                            Beam tracing sample. (line   6)
++* mglRay:                                PDE sample.          (line   6)
++* min:                                   Make another data.   (line  52)
++* mirror:                                Change data.         (line  57)
++* modify:                                Data filling.        (line   6)
++* momentum:                              Make another data.   (line  36)
++* multo:                                 Operators.           (line   6)
++* new:                                   Data create.         (line   6)
++* next:                                  Program flow.        (line  81)
++* norm:                                  Change data.         (line  83)
++* normsl:                                Change data.         (line  76)
++* once:                                  Program flow.        (line  85)
++* origin:                                Axis settings.       (line  58)
++* palette:                               Other settings.      (line  15)
++* pde:                                   Make another data.   (line  94)
++* perspective:                           Transformation matrix.
++                                                              (line  65)
++* Pipe <1>:                              Pipe 3D sample.      (line   6)
++* Pipe:                                  Pipe sample.         (line   6)
++* pipe:                                  Vector fields.       (line 114)
++* Plot <1>:                              Log-log sample.      (line   6)
++* Plot <2>:                              Semi-log sample.     (line   6)
++* Plot <3>:                              Legend sample.       (line   6)
++* Plot <4>:                              1D plot sample.      (line   6)
++* Plot:                                  Plot sample.         (line   6)
++* plot:                                  1D plotting.         (line  30)
++* plotfactor:                            Zooming.             (line  10)
++* put:                                   Data filling.        (line  29)
++* Puts <1>:                              Font faces sample.   (line   6)
++* Puts <2>:                              TeX parsing sample.  (line   6)
++* Puts:                                  Text styles sample.  (line   6)
++* PutsFit:                               Fitting sample.      (line   6)
++* putsfit:                               Nonlinear fitting.   (line  46)
++* qo2d:                                  Make another data.   (line 125)
++* quadplot:                              Other plotting.      (line  83)
++* Radar:                                 Radar sample.        (line   6)
++* radar:                                 1D plotting.         (line  38)
++* ranges:                                Axis settings.       (line  14)
++* ray:                                   Make another data.   (line 114)
++* read:                                  File I/O.            (line   6)
++* readall:                               File I/O.            (line  21)
++* readhdf:                               File I/O.            (line  37)
++* readmat:                               File I/O.            (line  16)
++* rearrange:                             Rearrange data.      (line   6)
++* rect:                                  Primitives drawing.  (line  61)
++* Region <1>:                            Region gradient sample.
++                                                              (line   6)
++* Region:                                Region sample.       (line   6)
++* region:                                1D plotting.         (line  69)
++* resize:                                Make another data.   (line  56)
++* return:                                Program flow.        (line  45)
++* roll:                                  Change data.         (line  52)
++* rotate:                                Transformation matrix.
++                                                              (line  53)
++* rotatetext:                            Other settings.      (line  11)
++* save:                                  File I/O.            (line  34)
++* savehdf:                               File I/O.            (line  40)
++* setsize:                               Export to file.      (line  12)
++* SetTicks <1>:                          Log-log sample.      (line   6)
++* SetTicks:                              Semi-log sample.     (line   6)
++* SetTicksVal <1>:                       StickPlot sample.    (line   6)
++* SetTicksVal <2>:                       ColumnPlot sample.   (line   6)
++* SetTicksVal:                           Manual ticks sample. (line   6)
++* Sew:                                   Sew sample.          (line   6)
++* sew:                                   Change data.         (line  61)
++* sinfft:                                Change data.         (line  37)
++* smooth:                                Change data.         (line  66)
++* Sphere:                                Molecules drawing sample.
++                                                              (line   6)
++* sphere:                                Primitives drawing.  (line  42)
++* squeeze:                               Rearrange data.      (line  25)
++* Stem:                                  Stem sample.         (line   6)
++* stem:                                  1D plotting.         (line  79)
++* Step:                                  Step sample.         (line   6)
++* step:                                  1D plotting.         (line 128)
++* STFA:                                  STFA sample.         (line   6)
++* stfa:                                  Dual plotting.       (line  86)
++* stfad:                                 Make another data.   (line  87)
++* stickplot:                             Transformation matrix.
++                                                              (line  46)
++* stop:                                  Program flow.        (line  89)
++* subdata:                               Make another data.   (line  60)
++* SubPlot <1>:                           Adding mesh sample.  (line   6)
++* SubPlot:                               1D plot sample.      (line   6)
++* subplot:                               Transformation matrix.
++                                                              (line  15)
++* subto:                                 Operators.           (line  24)
++* sum:                                   Make another data.   (line  43)
++* Surf <1>:                              Mirrored surface sample.
++                                                              (line   6)
++* Surf <2>:                              Several light sample.
++                                                              (line   6)
++* Surf <3>:                              Surf & Cont sample.  (line   6)
++* Surf <4>:                              Adding mesh sample.  (line   6)
++* Surf <5>:                              3D plot sample.      (line   6)
++* Surf <6>:                              2D plot sample.      (line   6)
++* Surf <7>:                              Sharp colors sample. (line   6)
++* Surf <8>:                              Surface in fog sample.
++                                                              (line   6)
++* Surf <9>:                              Transparent surface sample.
++                                                              (line   6)
++* Surf:                                  Surf sample.         (line   6)
++* surf:                                  2D plotting.         (line  32)
++* Surf3 <1>:                             Coloring by coordinates sample.
++                                                              (line   6)
++* Surf3 <2>:                             CutOff sample.       (line   6)
++* Surf3 <3>:                             Isocaps sample.      (line   6)
++* Surf3 <4>:                             CutMinMax sample.    (line   6)
++* Surf3:                                 Surf3 sample.        (line   6)
++* surf3:                                 3D plotting.         (line  27)
++* Surf3A:                                Surf3A sample.       (line   6)
++* surf3a:                                Dual plotting.       (line  53)
++* Surf3C:                                Surf3C sample.       (line   6)
++* surf3c:                                Dual plotting.       (line  31)
++* SurfA:                                 SurfA sample.        (line   6)
++* surfa:                                 Dual plotting.       (line  45)
++* SurfC:                                 SurfC sample.        (line   6)
++* surfc:                                 Dual plotting.       (line  23)
++* swap:                                  Change data.         (line  49)
++* Tens:                                  Tens sample.         (line   6)
++* tens:                                  1D plotting.         (line  48)
++* Ternary:                               Ternary plot sample. (line   6)
++* ternary:                               Axis settings.       (line  63)
++* Text:                                  Text sample.         (line   6)
++* text:                                  Text printing.       (line  28)
++* TextMark:                              TextMark sample.     (line   6)
++* textmark:                              1D plotting.         (line 163)
++* ticklen:                               Default sizes.       (line  28)
++* tickstl:                               Default sizes.       (line  33)
++* Tile:                                  Tile sample.         (line   6)
++* tile:                                  2D plotting.         (line  73)
++* TileS:                                 TileS sample.        (line   6)
++* tiles:                                 Dual plotting.       (line  68)
++* title:                                 Text printing.       (line  48)
++* tlabel:                                Axis and Colorbar.   (line  51)
++* Torus:                                 Torus sample.        (line   6)
++* torus:                                 1D plotting.         (line 135)
++* trace:                                 Make another data.   (line  67)
++* Traj:                                  Traj sample.         (line   6)
++* traj:                                  Vector fields.       (line  20)
++* transform:                             Make another data.   (line  73)
++* transforma:                            Make another data.   (line  83)
++* transparent:                           Transparency.        (line  23)
++* transpose:                             Rearrange data.      (line  21)
++* TranspType <1>:                        Lamp-like transparency.
++                                                              (line   6)
++* TranspType <2>:                        Glass-like transparency.
++                                                              (line   6)
++* TranspType:                            Normal transparency. (line   6)
++* transptype:                            Transparency.        (line  26)
++* tricont:                               Other plotting.      (line  70)
++* triplot:                               Other plotting.      (line  58)
++* Tube:                                  Tube sample.         (line   6)
++* tube:                                  1D plotting.         (line 143)
++* var:                                   Data create.         (line  11)
++* Vect <1>:                              Vect 3D sample.      (line   6)
++* Vect:                                  Vect sample.         (line   6)
++* vect:                                  Vector fields.       (line  30)
++* VectC <1>:                             VectC 3D sample.     (line   6)
++* VectC:                                 VectC sample.        (line   6)
++* vectc:                                 Vector fields.       (line  49)
++* VectL <1>:                             VectL 3D sample.     (line   6)
++* VectL:                                 VectL sample.        (line   6)
++* vectl:                                 Vector fields.       (line  61)
++* write:                                 Export to file.      (line   6)
++* xlabel:                                Axis and Colorbar.   (line  48)
++* xrange <1>:                            Command options.     (line  33)
++* xrange:                                Axis settings.       (line  72)
++* xtick:                                 Axis settings.       (line  89)
++* ylabel:                                Axis and Colorbar.   (line  49)
++* yrange <1>:                            Command options.     (line  36)
++* yrange:                                Axis settings.       (line  73)
++* ytick:                                 Axis settings.       (line  90)
++* zlabel:                                Axis and Colorbar.   (line  50)
++* zoom:                                  Zooming.             (line  16)
++* zrange <1>:                            Command options.     (line  39)
++* zrange:                                Axis settings.       (line  74)
++* ztick:                                 Axis settings.       (line  91)
++* Стиль линий:                           Line styles.         (line   6)
++* Стиль маркеров:                        Line styles.         (line   6)
++* Стиль стрелок:                         Line styles.         (line   6)
++* Стиль текста:                          Font styles.         (line   6)
++* Текстовые формулы:                     Textual formulas.    (line   6)
++* Цветовая схема:                        Color scheme.        (line   6)
++
++
++
++
++Local Variables:
++coding: utf-8
++End:
+--- mathgl-1.11.0.1.orig/texinfo/png/Makefile.in
++++ mathgl-1.11.0.1/texinfo/png/Makefile.in
+@@ -38,7 +38,11 @@ subdir = texinfo/png
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- mathgl-1.11.0.1.orig/include/Makefile.in
++++ mathgl-1.11.0.1/include/Makefile.in
+@@ -39,7 +39,11 @@ DIST_COMMON = $(am__nobase_include_HEADE
+ 	$(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- mathgl-1.11.0.1.orig/lang/Makefile.in
++++ mathgl-1.11.0.1/lang/Makefile.in
+@@ -45,7 +45,11 @@ DIST_COMMON = $(am__dist_octave_DATA_DIS
+ 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- mathgl-1.11.0.1.orig/examples/Makefile.in
++++ mathgl-1.11.0.1/examples/Makefile.in
+@@ -66,7 +66,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(sr
+ subdir = examples
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- mathgl-1.11.0.1.orig/mgl/Makefile.in
++++ mathgl-1.11.0.1/mgl/Makefile.in
+@@ -48,7 +48,11 @@ subdir = mgl
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+--- mathgl-1.11.0.1.orig/utils/Makefile.in
++++ mathgl-1.11.0.1/utils/Makefile.in
+@@ -42,7 +42,11 @@ subdir = utils
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/config/libtool.m4 \
++	$(top_srcdir)/config/ltoptions.m4 \
++	$(top_srcdir)/config/ltsugar.m4 \
++	$(top_srcdir)/config/ltversion.m4 \
++	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
diff --git a/debian/patches/series b/debian/patches/series
index 44e04ae..ac2f710 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@ dircategory-and-direntry-mathgl-ru-texi.patch
 dircategory-and-direntry-mgl-ru-texi.patch
 dircategory-and-direntry-mgl-en-texi.patch
 correct-spelling-error-in-nympy-i.patch
+debian-changes-1.11.0.1-1
diff --git a/debian/rules b/debian/rules
index 3c94f5d..099701f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -39,7 +39,6 @@ clean: unpatch
 	dh_testroot
 	rm -f build-stamp configure-stamp
 	rm -rf build autom4te.cache texinfo/png/*.png png/*.png
-	rm -f texinfo/mathgl.info-4
 	[ ! -f Makefile ] || $(MAKE) distclean
 	dh_clean
 
@@ -51,11 +50,7 @@ install: build
 	rm -f debian/tmp/usr/bin/*_example
 	rm -f debian/tmp/usr/share/info/dir
 	find debian \( -name mathgl.pyc -o -name mathgl.pyo \) -print0 | xargs -0 -r rm -f \;
-	chrpath -d debian/tmp/usr/lib/libmgl.so.5
-	chrpath -d debian/tmp/usr/lib/libmgl-fltk.so.5
-	chrpath -d debian/tmp/usr/lib/libmgl-glut.so.5
-	chrpath -d debian/tmp/usr/lib/libmgl-qt.so.5
-	chrpath -d debian/tmp/usr/lib/libmgl-wx.so.5
+	chrpath -d debian/tmp/usr/lib/*so.5
 	chrpath -d debian/tmp/usr/lib/python*/dist-packages/_mathgl.so
 
 binary-indep: build install
diff --git a/examples/Makefile.in b/examples/Makefile.in
index b20c278..0979b41 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -66,11 +66,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/include/Makefile.in b/include/Makefile.in
index 6010d14..8c7d802 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -39,11 +39,7 @@ DIST_COMMON = $(am__nobase_include_HEADERS_DIST) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/lang/Makefile.in b/lang/Makefile.in
index 07bed6f..af61832 100644
--- a/lang/Makefile.in
+++ b/lang/Makefile.in
@@ -45,11 +45,7 @@ DIST_COMMON = $(am__dist_octave_DATA_DIST) $(am__python_PYTHON_DIST) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/mgl/Makefile.in b/mgl/Makefile.in
index b1acb2b..899e46b 100644
--- a/mgl/Makefile.in
+++ b/mgl/Makefile.in
@@ -48,11 +48,7 @@ subdir = mgl
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/texinfo/Makefile.in b/texinfo/Makefile.in
index d14dd39..da79aba 100644
--- a/texinfo/Makefile.in
+++ b/texinfo/Makefile.in
@@ -39,11 +39,7 @@ DIST_COMMON = $(mathgl_en_TEXINFOS) $(mathgl_ru_TEXINFOS) \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/texinfo/mgl_ru.info-1 b/texinfo/mgl_ru.info-1
deleted file mode 100644
index 15034fc..0000000
--- a/texinfo/mgl_ru.info-1
+++ /dev/null
@@ -1,6077 +0,0 @@
-This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
-
-Это документация для MathGL (версии 1.11) - библиотеки классов и
-функций для построения научной графики. Пожалуйста сообщайте о любых
-ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
-
-   Copyright (C) 2009 Алексей Балакин.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
-
-INFO-DIR-SECTION MathGL documentation system
-START-INFO-DIR-ENTRY
-* MathGL: (mathgl). The library for scientific graphics.
-END-INFO-DIR-ENTRY
-
-
-File: mgl_ru.info,  Node: Top,  Next: MGL interface,  Up: (dir)
-
-Язык MGL
-************
-
-Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
-любых ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
-Дополнительную информацию о MGL и MathGL можно найти на домашней
-странице проекта `http://mathgl.sourceforge.net/'.
-
-   Copyright (C) 2010 Алексей Балакин.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
-
-* Menu:
-
-* MGL interface::
-* Examples::
-* Samples::
-* Copying This Manual::
-* Index::
-
-
-File: mgl_ru.info,  Node: MGL interface,  Next: Examples,  Up: Top
-
-1 Язык MGL
-**************
-
-MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
-данных. Скрипты MGL можно использовать как независимо (программами
-UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
-вызовами библиотеки.
-
-   Язык MGL достаточно простой. Каждая строка - отдельная команда.
-Первое слово - имя команды, а все остальные ее аргументы. Команда может
-иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
-одно от другого пробелом или символом табуляции. Различий между верхним
-и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
-начинает комментарий - все символы после него игнорируются до конца
-строки. Исключением является случай, когда `#' входит в строку. Опции
-команды указываются после символа `;' (*note Command options::). Символ
-`:' начинает новую команду (подобно переводу строки) если он расположен
-не внутри скобок или строки.
-
-   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
-`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
-параметров/макроопределений подставляются в строку вместо ссылки до
-выполнением команды. Это позволяет использовать один и тот же скрипт
-при различных входных параметрах командной строки или вводить
-макроопределения по ходу исполнения команд скрипта.
-
-   Аргументы команды могут быть строками, переменными или числами.
-   * Строка - произвольный набор символов между метками `''.
-
-   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
-     начинаться с буквы и не быть длиннее 64 символов). В качестве
-     переменной можно использовать временные массивы, включающие в себя:
-        * срезы ("подмассивы") массивов данных (подобно команде *note
-          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
-          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
-          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
-          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
-          `a(m:n)'.
-
-        * произвольные комбинации столбцов данных (например,
-          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
-          командой *note idset:: или в файле данных (в строке
-          начинающейся с `##').
-
-        * произвольное выражение из существующих переменных и констант.
-          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
-          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
-
-        * массивы с элементами заданными в квадратных скобках [],
-          разделенные `,'. При этом внутри выражения не должно быть
-          пробелов! Например, `[1,2,3]' даст временный массив из 3
-          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
-          т.д. Элементами такой конструкции могут быть и массивы если
-          их размерности одинаковые, например `[v1,v2,...,vn]'.
-
-        * результат команд построения новых данных (*note Make another
-          data::), если они заключены в фигурные скобки {}. Например,
-          `{sum dat 'x'}' даст временный массив, который есть результат
-          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
-          полученный командой `sum tmp dat 'x''. При этом можно
-          использовать вложенные конструкции, например `{sum {max dat
-          'z'} 'x'}'.
-     Временные массивы не могут стоять в качестве первого аргумента
-     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
-
-   * К скалярным переменным, кроме собственно чисел, относятся:
-     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
-     :=-1', переменные с суффиксами (*note Suffixes::), переменные
-     определенные командой *note define::. Также массивы размером 1x1x1
-     считаются скалярами (например, `pi/dat.nx').
-   Перед первым использованием все переменные должны быть определены с
-помощью команд, создающих массивы (*note new::, *note var::, *note
-list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
-*note Data create:: и *note Make another data::).
-
-   Команды могут иметь несколько наборов аргументов (например, `plot
-ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
-должны быть указаны, однако часть из них могут иметь значения по
-умолчанию. Такие аргументы в описании команд будут помещены в
-квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
-этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
-...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
-с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
-''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
-
-   Все команды MGL можно разделить на несколько групп. В дальнейшем
-будет использованы следующие обозначения при описании команд: имя
-команды выделено жирным, строки заключены в одинарные кавычки ",
-переменные выделены курсивом, числа (скаляры) выделены моноширинным
-шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
-и показаны их значения по умолчанию. Подробную информацию о цвете и
-стиле линий (*note Line styles::), цветовых схемах (*note Color
-scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
-формулах (*note Textual formulas::) можно найти в соответствующих
-разделах.
-
-* Menu:
-
-
-* General concepts::
-* Graphics setup ::
-* Axis settings ::
-* Transformation matrix ::
-* Export to file ::
-* Primitives drawing ::
-* Text printing ::
-* Axis and Colorbar ::
-* Legend ::
-* 1D plotting ::
-* 2D plotting ::
-* 3D plotting ::
-* Dual plotting ::
-* Vector fields ::
-* Other plotting ::
-* Nonlinear fitting ::
-* Data create ::
-* Data filling ::
-* Rearrange data ::
-* File I/O ::
-* Make another data ::
-* Change data ::
-* Operators ::
-* Program flow ::
-* Command options ::
-* Suffixes::
-* Utilities::
-
-
-File: mgl_ru.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
-
-1.1 Основные принципы
-=====================================
-
-Возможности библиотеки MathGL довольно богаты - число только основных
-типов графиков превышает 50 видов. Кроме того, есть функции для
-обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
-старался придерживаться единого стиля в порядке аргументов функций и
-способе их "настройки". В основном все ниже сказанное относится к
-функциям рисования различных графиков.
-
-   Всего основных концепций (базисных идей) четыре:
-  1. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
-     стиль и цвет текста) задаются строками.* Это обеспечивает:
-     удобство для пользователя - короткую строку легче читать и здесь
-     тяжелее ошибиться, чем в большом списке параметров; переносимость
-     - строки выглядят одинаково на всех платформах и не надо
-     заботиться о типе и числе аргументов.
-
-  2. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
-     опять из-за удобства. В "упрощенном" варианте для построения
-     графика нужны только один-два массив(а) данных, которые
-     автоматически равнораспределяются в заданном диапазоне осей
-     координат. В "продвинутой" версии можно не только указать явно
-     диапазон построения графика, но и задать его параметрически.
-     Последнее позволяет легко строить довольно сложные кривые и
-     поверхности. В обоих вариантах функций порядок аргументов
-     стандартен: сначала идут массивы данных, потом необязательный
-     строковый параметр стиля графика, а далее - второстепенные
-     необязательные параметры для более точной настройки графика.
-
-  3. *Все элементы рисунков векторные.* Изначально библиотека MathGL
-     была ориентированна на работу с научными данными, которые по своей
-     природе векторные (линии, грани, матрицы и т.д.). Поэтому
-     векторность используется во всех рисунках! Причем иногда даже в
-     ущерб производительности (например, при выводе шрифтов). Помимо
-     всего прочего, векторность позволяет легко масштабировать рисунок
-     - измените размер картинки в 2 раза, и рисунок пропорционально
-     растянется.
-
-  4. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
-     неожиданный, подход позволяет создавать огромное количество
-     "комбинированных" графиков. Например, поверхность с наложенными
-     линиями уровня строится двумя последовательными вызовами функций
-     рисования поверхности и линий уровня (в любом порядке). И
-     совершенно не надо писать специальную функцию (как в Matlab и
-     некоторых других программах) для рисования этого графика. Примеров
-     таких графиков можно привести множество (см. раздел *note Hints::
-     и сайт программы `http://mathgl.sf.net/index.html').
-
-   Кроме основных концепций я хотел бы остановиться на нескольких, как
-оказалось, нетривиальных моментах - способе указания положения графика,
-осей координат и строковых параметров линий, поверхностей, текста.
-
-* Menu:
-
-* Coordinate axes::
-* Line styles::
-* Color scheme::
-* Font styles::
-* Textual formulas::
-
-
-File: mgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
-
-1.1.1 Оси координат
--------------------------------
-
-Представление системы координат в MathGL состоит из двух частей.
-Вначале координаты нормируются в интервал MINxMAX (*note Axis
-settings::). Если флаг CUT установлен, то точки вне интервала
-отбрасываются, в противном случае, они проецируются на ограничивающий
-параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
-внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
-которых значение функции `CutOff'() не равно нулю. После этого формулы
-перехода в криволинейную систему координат `SetFunc()'применяются к
-каждой точке. Наконец, точка данных отображается с помощью одной из
-графических функций.
-
-   Величины MAX, MIN можно изменять вручную. Однако, после этого
-необходимо вызвать функцию `RecalcBorder()' для настройки графика.
-Более удобный и безопасный путь состоит в вызове функций `Axis(),
-SetRanges()' и др. В последнем случае функция `RecalcBorder()'
-вызывается автоматически. Размеры осей можно задавать и автоматически
-по минимальному и максимальному значениям массива данных. Для этого
-предназначены функции `XRange(), YRange(), ZRange()'. Второй не
-обязательный аргумент указывает, заменять ли новые значения диапазона
-изменения оси координат (по умолчанию) или только расширить уже
-существующий диапазон.
-
-   Точка пересечения осей координат задается переменной ORG и действует
-на последующие вызовы функций рисования осей координат и сетки. По
-умолчанию, если точка пересечения осей координат попадает вне диапазона
-осей координат, то она проецируется на границу области. Изменить такое
-поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
-ORG равно NAN, то соответствующее значение будет выбрано автоматически.
-
-   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
-ось _c_. Она используется при окрашивании поверхностей и задает границы
-изменения функции при окрашивании. При вызове `Axis()' ее границы
-автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
-изменение границ цветового интервала посредством вызова функции
-`CAxis()' или изменение границ по заданному массиву `CRange()'.
-Используйте `Colorbar()' для отображения цветовой шкалы.
-
-   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
-settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
-положительны) или их число (если отрицательны) или логарифмические
-метки (если равны нулю); второ NS задает число "подметок"; последний
-определяет начальную точку для меток (по умолчанию это точка
-пересечения осей). Функция SETTUNETICKS включает/выключает выделение
-общего множителя (большого или малого факторов в диапазоне) для меток
-осей координат. Наконец, если стандартный вид меток не устраивает
-пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
-символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
-SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
-текст использовав функцию `SetTicksVal()'.
-
-
-File: mgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
-
-1.1.2 Стиль линий
----------------------------
-
-Стиль линии задается строкой, которая может содержать символ цвета
-(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
-ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
-`#'). Если пропущен цвет или тип пунктира, то используется значение по
-умолчанию с последним указанным цветом или значение из палитры (для
-*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
-темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
-пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
-`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
-`p'.
-
-   Символы цвета те же, что и в классе mglColor (*note mglColor
-class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
-зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
-голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
-`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
-серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
-сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
-небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
-темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
-оранжевый, `Q' - темно оранжевый (коричневый).
-
-   Тип пунктира: пробел - нет линии (для рисования только маркеров),
-`-' - сплошная линия (################), `|' - длинный пунктир
-(########________), `;' - пунктир (####____####____), `=' - короткий
-пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
-пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
-(###__#__###__#__).
-
-   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
-- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
-треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
-`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
-`#.' - точка в окружности. Если в строке присутствует символ `#', то
-используются символы с заполнением.
-
- [image src="../png/sample5.png" ]
-
-Стили линий и маркеров.
-
-   На конце и в начале линии можно выводить специальный символ
-(стрелку), если в строке указать один из символов: `A' - стрелка
-наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
-чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
-нет стрелки (по умолчанию). При этом действует следующее правило:
-первый символ определяет стрелку на конце линии, второй символ -
-стрелку в начале линии. Например, `r-A' - красная сплошная линия со
-стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
-вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
-действуют и при построении графиков (например, *note 1D plotting::).
-
- [image src="../png/sampled.png" ]
-
-Стили стрелок.
-
-
-File: mgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
-
-1.1.3 Цветовая схема
----------------------------------
-
-Цветовая схема используется для определения цвета поверхностей, линий
-уровня и пр. Цветовая схема задается строкой _s_, которая содержит
-символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
-указывает на определение цвета в зависимости от положения точки в
-пространстве, а не по амплитуде данных. Символ `#' переключает
-рисование поверхности на сетчатое (для трехмерных поверхностей) или
-включает рисование сетки на поверхности. Символ `|' отключает
-интерполяцию цвета в цветовой схеме. Это может быть полезно для
-"резких" цветов, например, при рисовании матриц. Если в строке
-встречается символ `:', то он принудительно заканчивает разбор строки
-для стиля поверхности. После этого символа могут идти описание стиля
-текста или оси вращения кривой/линий уровня. Цветовая схема может
-содержать до 32 значений цвета.
-
-   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
-(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
-- обычный цвет, второй - его яркость цифрой. Цифра может быть в
-диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
-- очень темная версия цвета (почти черный), `9' - очень светлая версия
-цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
-
- [image src="../png/colors.png" ]
-
-Цвета и их идентификаторы.
-
-   При определении цвета по _амплитуде_ (наиболее часто используется)
-окончательный цвет определяется путем линейной интерполяции массива
-цветов. Массив цветов формируется из цветов, указанных в строке
-спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
-(*note Axis settings::). Например, строка из 4 символов `bcyr'
-соответствует изменению цвета от синего (минимальное значение) через
-голубой и желтый (промежуточные значения) к красному (максимальное
-значение). Строка `kw' соответствует изменению цвета от черного
-(минимальное значение) к белому (максимальное значение). Строка из
-одного символа (например, `g') соответствует однотонному цвету (в
-данному случае зеленому).
-
-   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
-серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
-представляет обратную серую схему, когда большие значения темнее.
-Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
-схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
-рисовать двухцветные фигуры на белом или черном фоне, когда
-отрицательные значения показаны синим цветом, а положительные -
-красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
-известной схеме _jet_.
-
- [image src="../png/color_schemes.png" ]
-
-Наиболее популярные цветовые схемы.
-
-   При определении цвета по _положению точки в пространстве_
-окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
-Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
-координаты точки, нормированные на MINxMAX. Такой тип определения цвета
-полезен, например, при построении поверхностей уровня, когда цвет дает
-представление о положении точки в пространстве.
-
-
-File: mgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
-
-1.1.4 Стиль текста
------------------------------
-
-Стиль текста задается строкой, которая может содержать несколько
-символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
-цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
-`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
-центру синего цвета.
-
-   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
-По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
-по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
-Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
-- подчеркнутый.
-
-   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
-команды смены стиля текста (например, \b для жирного текста): \a или
-\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
-курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
-или \underline - подчеркнутый, \w или \wire - контурный, \big -
-большего размера, @ - меньшего размера. Нижний и верхний индексы
-задаются символами `_' и `^'. При этом изменение стиля применяется
-только к следующему символу или к символам в фигурных скобках {},
-которые понимаются как единый блок. Например, сравните строки `sin
-(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
-строки с помощью команд #? или \color?, где `?' - символ цвета (*note
-Line styles::). Например, слова `Blue' и `red' будут окрашены в
-соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
-Большинство функций понимает символ новой строки `\n' и позволяет
-выводить много строчный текст. Наконец, можно использовать символы с
-произвольным UTF кодом с помощью команды `\utf0x????'. Например,
-`\utf0x3b1' даст символ \alpha.
-
-   Распознаются также большинство символов TeX и AMSTeX, команды смены
-стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
-\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
-\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
-содержит около 2000 символов. Отмечу, что первый пробел (пробел,
-табуляция и пр.) после команды игнорируется, а все остальные пробелы
-печатаются обычным образом. Например, следующие строки дают одинаковый
-результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
-
-   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
-\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
-\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
-\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
-\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
-\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
-\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
-\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
-\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
-M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
-- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
-- \Upsilon, \Xi - \Xi, Z - \Zeta.
-
-   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
-\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
-\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
-\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
-\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
-- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
-\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
-\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
-\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
-\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
-\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
-\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
-\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
-\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
-\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
-
-   Размер текста может быть задан явно (если SIZE>0) или относительно
-базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
-Значение SIZE=0 указывает, что соответствующая строка выводиться не
-будет. Базовый размер шрифта измеряется во внутренних единицах.
-Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
-позволяют задавать его в более "привычных" единицах.
-
-
-File: mgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
-
-1.1.5 Текстовые формулы
----------------------------------------
-
-MathGL имеет быстрый парсер текстовых формул , понимающий большое число
-функций и операций. Базовые операции: `+' - сложение, `-' - вычитание,
-`*' - умножение, `/' - деление, `^' - возведение в целосичленную
-степень. Также есть логические операции: `<' - истина если if x<y, `>'
-- истина если x>y, `=' - истина если x=y, `&' - истина если x и y оба
-не равны нулю, `|' - истина если x или y не нуль. Логические операции
-имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
-
-   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
-в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
-логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
-модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
-`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
-случайное число, `pi' - число \pi=3.1415926...
-
-   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
-`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
-`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
-(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
-функции: `asinh(x)', `acosh(x)', `atanh(x)'.
-
-   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
-\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
-= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
-Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
-`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
-\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
-любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
-k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
-для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
-l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
-как решение уравнения W \exp(W) = x.
-
-   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
-dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
-`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
-\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
-\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
-E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
-:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
-\int_0^x dt \exp(-t^3) для x>=0.
-
-   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
-- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
-Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
-второго рода.
-
-   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
-E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
-F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
-\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
-интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
-
-   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
-`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
-`dc(u,m)', `nd(u,m)'.
-
-   Некоторые из функций могут быть недоступны если флаг NO_GSL был
-определен при компиляции библиотеки MathGL.
-
-   При разборе формул нет различия между верхним и нижним регистром.
-Если аргумент лежит вне области определения функции, то возвращается
-NaN.
-
-
-File: mgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
-
-1.2 Настройка графика
-=====================================
-
-Команды в этой группе влияют на вид всего рисунка. Соответственно они
-должны располагаться _перед_ вызовом функций непосредственно рисующих
-графики.
-
-* Menu:
-
-* Transparency ::
-* Lighting ::
-* Fog ::
-* Default sizes ::
-* Zooming ::
-* Cutting ::
-* Other settings ::
-
-
-File: mgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
-
-1.2.1 Прозрачность
-------------------------------
-
-Эти команды настраивают тип и степень прозрачности поверхностей.
-Главной является функция *note alpha::, которая включает/выключает
-прозрачность для всех графиков, созданных после вызова *note alpha::.
-Функция *note alphadef:: устанавливает величину alpha-канала по
-умолчанию. Прозрачность можно выключить для отдельного графика с
-помощью *note transparent::. Наконец, функция *note transptype:: задает
-тип прозрачности. См. раздел *note Transparent surface sample::, для
-примеров кода и графика.
-
- -- Команда MGL: alpha `[val=on]'
-     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
-     прозрачность выключена. Используйте `transparent off' для
-     конкретного графика для выключения прозрачности.
-   
- -- Команда MGL: alphadef `val'
-     Задает значение прозрачности по умолчанию для всех графиков.
-     Начальное значение 0.5.
-   
- -- Команда MGL: transparent `val'
-     Временно включает/возвращает прозрачность графиков.
-   
- -- Команда MGL: transptype `val'
-     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
-     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
-     (`1') - закрытые и закрывающие объекты единообразно ослабляют
-     интенсивность света (по RGB каналам). "Ламповая" прозрачность
-     (`2') - закрытые и закрывающие объекты являются источниками
-     дополнительного освещения (рекомендую установить `alphadef 0.3'
-     или меньше в этом случае). *Note Normal transparency::, *note
-     Glass-like transparency::, *note Lamp-like transparency::.
-
-
-File: mgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
-
-1.2.2 Освещение
-------------------------
-
-Эти функции настраивают освещение графика. Главная функция *note
-light:: включает/выключает освещение графиков построенных после ее
-вызова. MathGL  поддерживает до 10 независимых источников света.
-Положение, цвет, яркость каждого источника света можно задавать по
-отдельности. По умолчанию включен только первый (с порядковым номером
-`0') источник света белого цвета, расположенный сверху.
-
- -- Команда MGL: light `[val=on]'
-     Включает/выключает освещение графика. По умолчанию освещение
-     выключено.
-
- -- Команда MGL: light `n val'
-     Включает/выключает N-ый источник света.
-
- -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
-     Добавляет источник света с номером N в положение {XPOS, YPOS,
-     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
-     [0,1].
-
- -- Команда MGL: ambient `val'
-     Задает яркость рассеянного освещения. Значение должно быть в
-     диапазоне [0,1].
-
-
-File: mgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
-
-1.2.3 Туман
-----------------
-
- -- Команда MGL: fog `val [dz=0.25]'
-     Имитирует туман на графике. Туман начинается на относительном
-     расстоянии DZ от точки обзора и его плотность растет
-     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
-     нормализованная на 1 глубина графика. Если D=`0' то туман
-     отсутствует. См. раздел *note Surface in fog sample::, для
-     примеров кода и графика.
-
-
-File: mgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
-
-1.2.4 Базовые размеры
------------------------------------
-
-Эти команды задают величины большинства параметров графика, включая
-размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
-настройки, они подействуют только на графики созданные после изменения
-настроек.
-
- -- Команда MGL: barwidth `val'
-     Относительный размер прямоугольников в `bars, barh, boxplot'.
-     Значение по умолчанию `0.7'.
-
- -- Команда MGL: marksize `val'
-     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
-
- -- Команда MGL: arrowsize `val'
-     Размер стрелок для *note 1D plotting::, линий и кривых (*note
-     Primitives drawing::). Значение по умолчанию `1'.
-
- -- Команда MGL: linewidth `val'
-     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
-     реальная толщина получается перемножением указанной ширины линии
-     на данное значение. Увеличение ширины линии актуально для больших
-     растровых рисунков. Значение по умолчанию `1'.
-
- -- Команда MGL: ticklen `val' [`stt=1']
-     Относительная длина меток осей координат. Значение по умолчанию
-     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
-     в `sqrt(1+stt)' раз меньше.
-
- -- Команда MGL: tickstl 'stl' ['sub'="]
-     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
-     то используется стиль по умолчанию (`k' или `w' в зависимости от
-     типа прозрачности). Если `sub=''', то используется стиль меток
-     (т.е. STL).
-
-
-File: mgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
-
-1.2.5 Масштабирование
-------------------------------------
-
-Эти команды управляют масштабированием всего рисунка (*note zoom::) или
-отдельной картинки (*note plotfactor::). Обычно эти функции
-используются для удаления пустого места вокруг графиков.
-
- -- Команда MGL: plotfactor `val'
-     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
-     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
-     применяется только к конкретной картинке, заданной *note inplot::.
-     Используйте ноль для включения автоматического масштабирования.
-
- -- Команда MGL: zoom `x1 y1 x2 y2'
-     Масштабирует весь рисунок. После вызова функции текущий график
-     будет очищен и в дальнейшем рисунок будет содержать только область
-     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
-     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
-     быть переписаны никакими другими функциями. Используйте `zoom 0 0
-     1 1' для перехода в масштаб по умолчанию.
-
-
-File: mgl_ru.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
-
-1.2.6 Обрезание
-------------------------
-
-Эти команды задают условия когда точка будет исключена (вырезана) из
-рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
-координат или амплитуде автоматически исключаются из рисования.
-
- -- Команда MGL: cut `val'
-     Задает обрезание точек за пределами осей координат. Если `on' то
-     такие точки исключаются из рисования (это по умолчанию) иначе они
-     проецируются на ограничивающий прямоугольник.
-
- -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
-     Задает границы параллелепипеда внутри которого точки не рисуются.
-     Если границы одинаковы (переменные равны), то параллелепипеда
-     считается пустым. См. раздел *note CutMinMax sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: cut 'cond'
-     Задает условие обрезания по формуле COND. Это условие исключает
-     точки из рисования если результат вычисления формулы не равен
-     нулю. Установите аргумент `''' для выключения условия обрезания.
-     См. раздел *note CutOff sample::, для примеров кода и графика.
-
-
-File: mgl_ru.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
-
-1.2.7 Прочие настройки
--------------------------------------
-
- -- Команда MGL: font 'fnt' [`val=6']
-     Задает стиль и размер шрифта (*note Text printing::). Вначале
-     используется `rC' - прямой шрифт с выравниванием по центру. По
-     умолчанию размер подписей оси координат в 1.4 раза больше.
-
- -- Команда MGL: rotatetext `val'
-     Включает/выключает вращение меток и подписей осей координат вдоль
-     оси. Начальное значение `on'.
-
- -- Команда MGL: palette 'colors'
-     Задает палитру как последовательность цветов. Значение по
-     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
-     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
-     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
-     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
-     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
-     используется в 1D графиках (*note 1D plotting::) для кривых с
-     неопределенным стилем линии.
-
- -- Команда MGL: meshnum `num'
-     Задает ориентировочное число линий в *note mesh::, *note fall::,
-     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
-     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
-     линии, стрелки, ячейки.
-
- -- Команда MGL: axialdir 'dir'
-     Задает ось вращения для *note axial::, *note torus::. По умолчанию
-     это 'z'.
-
-
-File: mgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
-
-1.3 Параметры осей координат
-==================================================
-
-Этот большой набор команд определяет вид осей и меток координат. Перед
-построением для каждой точки выполняются 3 преобразования: сначала
-определяется возможность рисования точки (*note Cutting::), далее
-применяются формулы перехода к криволинейным координатам и наконец
-точка отображается.
-
- -- Команда MGL: axis `x1 y1 x2 y2'
- -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
- -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
-     Задает диапазон изменения координат. Если минимальное и
-     максимальное значение координаты равны, то они игнорируются по
-     данному направлению. Также устанавливает размер цветовой шкалы,
-     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
-     1].
-
- -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
-     Задает формулы перехода к криволинейным координатам. Каждая строка
-     является математическим выражением, зависящим от старых координат
-     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
-     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
-     Для удаления формул соответствующий параметр должен быть пустым
-     `'''. Использование формул преобразования слегка замедляет
-     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
-     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
-     *Note Textual formulas::.
-
- -- Команда MGL: axis `how'
-     Устанавливает одну из предопределенных систем криволинейных
-     координат в зависимости от параметра HOW: `0' - декартова система
-     (нет преобразования координат, наиболее быстрая); `1' - полярные
-     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
-     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
-     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
-     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
-     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
-     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
-     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
-     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
-     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
-     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
-     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
-     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
-     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
-     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
-     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
-     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
-
- -- Команда MGL: caxis `z1 z2'
-     Задает масштаб цветовой шкалы (c-координаты). Эти значения
-     используются для определения цвета поверхностей и прочих 2D и 3D
-     графиков. Начальный диапазон равен [-1, 1].
-
- -- Команда MGL: origin `x0 y0 [z0=nan]'
-     Задает центр пересечения осей координат. Если одно из значений
-     равно `nan', то выбрается оптимальное положение осей координат по
-     этому направлению.
-
- -- Команда MGL: ternary `val'
-     Задает рисование треугольных (Ternary) осей координат. Это
-     специальный тип графика для 3 зависимых координат (компонент) A,
-     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
-     координаты A=x и B=y поскольку их достаточно для построения всех
-     графиков. При этом третья координата z является независимым
-     параметром для построения линий уровня, поверхностей и т.д. См.
-     раздел *note Ternary plot sample::, для примеров кода и графика.
-
- -- Команда MGL: xrange dat [`add=off fact=0']
- -- Команда MGL: yrange dat [`add=off fact=0']
- -- Команда MGL: zrange dat [`add=off fact=0']
- -- Команда MGL: crange dat [`add=off fact=0']
-     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
-     максимальное значение массива DAT. Параметр ADD указывает
-     добавлять новый диапазон к существующему или заменять его.
-     Параметр FACT дополнительно расширяет диапазон на величину
-     (MAX-MIN)*FACT.
-
- -- Команда MGL: xrange `x1 x2'
- -- Команда MGL: yrange `x1 x2'
- -- Команда MGL: zrange `x1 x2'
- -- Команда MGL: crange `x1 x2'
-     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
-     axis::.
-
- -- Команда MGL: xtick `val [sub=0 org=nan]'
- -- Команда MGL: ytick `val [sub=0 org=nan]'
- -- Команда MGL: ztick `val [sub=0 org=nan]'
- -- Команда MGL: ctick `val'
-     Задает шаг меток осей VAL, число подметок NS и начальное положение
-     меток ORG. Переменная VAL задает шаг меток (если положительна) или
-     их число на оси (если отрицательна). Нулевое значение задает
-     логарифмические метки. Если ORG=`NAN', то используется значение из
-     *note origin::.
-
- -- Команда MGL: xtick 'templ'
- -- Команда MGL: ytick 'templ'
- -- Команда MGL: ztick 'templ'
- -- Команда MGL: ctick 'templ'
-     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
-     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
-     используется шаблон по умолчанию (в простейшем случае `%.2g').
-     Установка шаблона выключает автоматическое улучшение вида меток.
-
- -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
- -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
- -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
-     Задает явное положение VAL и подписи LBL для меток вдоль оси.
-     Метки могут содержать и символы TeX.
-
- -- Команда MGL: adjust ['dir'='xyzc']
-     Автоматически задает шаг меток осей, число подметок и начальное
-     положение меток для осей координат DIR в виде наиболее удобном для
-     человека.
-
-
-File: mgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
-
-1.4 Матрица преобразования
-===============================================
-
-Эти команды контролируют где и как график будет расположен. Существует
-определенный порядок вызова этих функций для лучшего вида графика.
-Вначале должны вызываться команды *note subplot:: или *note inplot::
-для указания местоположения вывода. После них - команды вращения *note
-rotate:: и сжатия *note aspect::. И наконец любые другие функции для
-рисования графика. Вместо вращения графика можно вызвать команды *note
-columnplot:: для расположения графиков в столбец одного над другим или
-*note stickplot:: для расположения в линейку.
-
- -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
-     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
-     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
-     и сжатие графика) и должна вызываться первой для создания
-     "подграфика". С эстетической точки зрения не рекомендуется
-     вызывать эту функцию с различными (или не кратными) размерами
-     сетки. Ячейка может быть дополнительно сдвинута относительно
-     своего обычного положения на относительный размер DX, DY.
-
- -- Команда MGL: subplot `nx ny m' 'style'
-     Аналогично предыдущему, но место для осей/colorbar резервируется
-     только если строка STYLE содержит: `L' или `<' - с левого края,
-     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
-     или `_' - с нижнего края.
-
- -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
-     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
-     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
-     график в произвольную область рисунка. Если параметр REL=`on', то
-     используется позиция относительно текщего *note subplot:: (или
-     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
-     трансформации (повороты и сжатие графика) и должна вызываться
-     первой для создания "подграфика".
-
- -- Команда MGL: columnplot `num ind [d=0]'
-     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
-     Положение столбца выбирается относительно последнего вызова *note
-     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
-     дополнительный зазор между строк. См. раздел *note ColumnPlot
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: stickplot `num ind tet phi'
-     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
-     При этом сам брусок повернут на углы TET, PHI. Положение
-     выбирается относительно последнего вызова *note subplot:: (или
-     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: rotate `tetz tetx [tety=0]'
-     Вращает систему координат относительно осей {x, z, y}
-     последовательно на углы TETX, TETZ, TETY.
-
- -- Команда MGL: rotate `tet x y z'
-     Вращает систему координат относительно вектора {X, Y, Z} на угол
-     TET.
-
- -- Команда MGL: aspect `ax ay [az=1]'
-     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
-     лучшего вида следует вызывать после функции *note rotate::.
-
- -- Команда MGL: perspective `val'
-     Добавляет (включает) перспективу для графика. Параметр val ~
-     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
-
-
-File: mgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
-
-1.5 Экспорт в файл
-==============================
-
- -- Команда MGL: write 'fname' [`solid=off']
-     Экспортирует текущий кадр в файл 'fname' (тип определяется по
-     расширению). Параметр SOLID задает вывод картинки на текущем фоне
-     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
-     имя `frame####.jpg', где `####' - текущий номер кадра.
-
- -- Команда MGL: setsize `w h'
-     Изменяет размер картинки в пикселях. Функция должна вызываться
-     *перед* любыми функциями построения потому что полностью очищает
-     содержимое рисунка. В некоторых программах исполнение этой команды
-     может запрещено.
-
-
-File: mgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
-
-1.6 Рисование примитивов
-===========================================
-
-Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
-капель, конусов, и т.д.
-
- -- Команда MGL: clf
-     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
-
- -- Команда MGL: ball `x y' ['col'='r']
- -- Команда MGL: ball `x y z' ['col'='r']
-     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
-
- -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
- -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
-     Рисует геодезическую линию (декартовых координатах - прямую) из
-     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
-     рисуется даже если часть ее лежит вне диапазона осей координат.
-
- -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
- -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
-          ['stl'="]
-     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
-     стиль линии STL. Касательные в точках пропорциональны
-     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
-     лежит вне диапазона осей координат.
-
- -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
- -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
- -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
-     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
-     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
-     соответствующего направления. При этом цвет может быть один для
-     всей грани, или различным для разных вершин если указаны все 4
-     цвета (полезно для градиента цвета, например `wwrr'). Параметры
-     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
-     рисуют четырехугольник). Грань будет нарисована даже если часть ее
-     лежит вне диапазона осей координат.
-
- -- Команда MGL: sphere `x0 y0 r' ['col'='r']
- -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
-     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
-
- -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
- -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
-     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
-     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
-     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
-     определяет относительную ширину капли (аналог "эллиптичности" для
-     сферы). См. раздел *note Drops sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
-          `edge=off']
-     Рисует трубу (или усеченный конус если EDGE=`off') между точками
-     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
-     полагается R2=R1. Цвет конуса задается строкой STL.
-
- -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
- -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
-     Рисует закрашенный прямоугольник (грань) с противоположными
-     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
-     цвет может быть один для всей грани, или различным для разных
-     вершин если указаны все 4 цвета (полезно для градиента цвета,
-     например `wwrr'). Грань будет нарисована даже если часть ее лежит
-     вне диапазона осей координат.
-
-
-File: mgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
-
-1.7 Вывод текста
-===========================
-
-Команды для вывода текста позволяют вывести строку текста в
-произвольном месте рисунка, в произвольном направлении и вдоль
-произвольной кривой. Можно использовать произвольное начертание шрифта
-и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
-определяет размер текста: размер шрифта если положителен или
-относительный размер (=-SIZE*FONTSIZE) если отрицателен.
-
-   Параметры шрифта задаются строкой, которая может содержать символы
-стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
-содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
-символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
-`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
-используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
-умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
-`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
-умолчанию используются параметры, определенные командой *note font::.
-
-   Если строка содержит символы `aA', то текст выводится в абсолютных
-координатах (полагаются в диапазоне [0,1]). При этом используются
-координаты относительно рисунка (если указано `A') или относительно
-последнего *note subplot::/*note inplot:: (если указано `a').
-
- -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
- -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
-     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
-
- -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
- -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
-     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
-     шрифтом FNT и размером SIZE.
-
- -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
- -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
- -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
-     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
-     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
-     текста под кривой (по умолчанию), или `T' для вывода текста над
-     кривой. Если массив XDAT не указан, то используется массив со
-     значениями равно распределенными вдоль оси x. Если массив ZDAT не
-     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: title 'text' ['fnt'=" `size=-2']
-     Выводит строку TEXT как заголовок (сверху рисунка). Может
-     использоваться в любом месте (даже внутри *note subplot::).
-
- -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
- -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
-     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
-     размером SIZE.
-
-
-File: mgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
-
-1.8 Оси и Colorbar
-======================
-
-Эти команды рисуют объекты для "измерения" типа осей координат,
-цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
-и подписи по осям координат. См. также *note Axis settings::.
-
- -- Команда MGL: axis ['dir'='xyz' `adjust=off']
-     Рисует оси координат и метки на них (*note Axis settings::) в
-     направлениях, указанных строкой DIR. Если строка содержит символ
-     `_', то подписи меток отображаться не будут. Шрифт подписей
-     определяется командой *note font::. Метки будут "подогнаны" если
-     ADJUST=`on' (с помощью вызова `adjust 'dir'').
-
- -- Команда MGL: colorbar ['sch'=" `pos=0']
-     Рисует полосу соответствия цвета и числовых значений (colorbar)
-     для цветовой схемы SCH (используется текущая для `sch=''') с краю
-     от графика. Параметр POS задает местоположение: `0' - справа (по
-     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
-     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
-     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
-     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
-     абсолютные координаты (относительно рисунка). См. раздел *note
-     Dens sample::, для примеров кода и графика.
-
- -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
-     Аналогично предыдущему, но для цветовой схемы без сглаживания с
-     заданными значениями VDAT. См. раздел *note ContD sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: colorbar 'sch' `pos x y w h'
-     Аналогично первому, но в произвольном месте графика {X, Y}
-     (полагаются в диапазоне [0,1]). Параметры W, H задают
-     относительную ширину и высоту colorbar.
-
- -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
-     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
-     такой же как у меток осей координат. Стиль линий задается
-     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
-
- -- Команда MGL: box ['stl'='k' `ticks=on']
-     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
-     рисуются метки в соответствии с текущими настройками осей
-     координат *note axis::.
-
- -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
- -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
- -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
- -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
-     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
-     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
-     центру оси, при POS>0 - около максимальных значений, при POS<0 -
-     около минимальных значений. Параметр SIZE задает размер шрифта (по
-     умолчанию в 1.4 раза больше чем у меток). *Note Text printing::.
-
-
-File: mgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
-
-1.9 Легенда
-==================
-
-Эти команды обеспечивают рисование легенды графика (полезно для *note
-1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
-линии и маркеров, другая с текстом описания (с включенным разбором
-TeX-их команд), накапливаемые во внутренние массивы с помощью команды
-*note addlegend:: или опции *note legend::. Положение легенды можно
-задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
-размер шрифта. Параметр LLEN задает относительную ширину примера линии.
-Ели стиль линии пустой, то соответствующий текст печатается без
-отступа. Если строка FONT содержит символ `A', то координаты легенды
-считаются относительно картинки (а не текущего subplot). См. раздел
-*note Legend sample::, для примеров кода и графика.
-
- -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
-     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
-     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
-     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
-     правом углу (по умолчанию).
-
- -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
-     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
-     Положение легенды задается параметрами X, Y, которые полагаются
-     нормированными в диапазоне [0,1].
-
- -- Команда MGL: addlegend 'text' 'stl'
-     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
-     во внутренний массив записей легенды. Максимальное число записей
-     100.
-
- -- Команда MGL: clearlegend
-     Очищает внутренний массив записей легенды.
-
- -- Команда MGL: legendbox `val'
-     Включает/выключает рисование прямоугольника вокруг легенды. По
-     умолчанию (=`on') прямоугольник рисуется.
-
- -- Команда MGL: legendmarks `val'
-     Задает число маркеров в легенде. По умолчанию используется 1
-     маркер.
-
-
-File: mgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
-
-1.10 1D графики
-======================
-
-Эти команды строят графики для одномерных (1D) массивов. Одномерными
-считаются массивы, зависящие только от одного параметра (индекса)
-подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
-5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
-(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
-*note barh::) и вертикальные линии (*note stem::). Все эти типы
-графиков имеют похожий интерфейс. Есть версии для рисования в
-пространстве и на плоскости. В последнем случае имеется возможность
-использования только одного массива. Стиль линии и маркеров указывается
-строковой переменной. Если она равна `'''. Кроме того, есть еще
-несколько типов графиков для одномерных массивов, имеющих другой
-интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
-(*note chart::), размер ошибки (*note error::), маркеры переменного
-размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
-1D plot sample::, для примеров кода и графика.
-
-   График рисуется для каждой строки если один из массивов матрица.
-Размер по 1-ой координате *должен быть одинаков* для всех массивов
-`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
-массив со значениями равно распределенными вдоль оси x. Если массив
-ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
-и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
-рисуется сплошная линия с текущим цветом из палитры.
-
- -- Команда MGL: plot ydat ['stl'=" `zval=nan']
- -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
- -- Команда MGL: plot xdat ydat zdat ['stl'="]
-     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
-     *note area::, *note step::, *note stem::, *note tube::, *note
-     mark::, *note error::, *note belt::, *note tens::. См. раздел
-     *note Plot sample::, для примеров кода и графика.
-
- -- Команда MGL: radar adat ['stl'=" `r=-1']
-     Рисует radar chart, представляющий собой ломанную с вершинами на
-     радиальных линиях (типа ломанной в полярных координатах). График
-     рисуется для каждой строки если один из массивов матрица. Параметр
-     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
-     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
-     `#', то также рисуется "сетка" (радиальные линии и круг для R).
-     См. также *note plot::. См. раздел *note Radar sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
- -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
- -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
-     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
-     определяемым массивом C[i] (типа графика натяжений). См. также
-     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: area ydat ['stl'=" `zval=nan']
- -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
- -- Команда MGL: area xdat ydat zdat ['stl'="]
-     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
-     закрашивает ее вниз до плоскости осей координат. Можно
-     использовать градиентное закрашивание если число указанных цветов
-     в STL равно удвоенному числу кривых для построения. Если строка
-     содержит символ `a', то линии рисуются одна поверх другой (с
-     суммированием) - того же эффекта можно достичь вызовом `cumsum
-     ydat 'y'' перед построением графика. См. также *note plot::, *note
-     bars::, *note stem::, *note region::. См. раздел *note Area
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
- -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
-     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
-     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
-     в противном случае также будет закращена область y2<y<y1. Можно
-     использовать градиентное закрашивание если число указанных цветов
-     STL равно удвоенному числу кривых для построения. См. также *note
-     area::, *note bars::, *note stem::. См. раздел *note Region
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: stem ydat ['stl'=" `zval=nan']
- -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
- -- Команда MGL: stem xdat ydat zdat ['stl'="]
-     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
-     плоскости осей координат. См. также *note area::, *note bars::,
-     *note plot::, *note mark::. См. раздел *note Stem sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: bars ydat ['stl'=" `zval=nan']
- -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
- -- Команда MGL: bars xdat ydat zdat ['stl'="]
-     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
-     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
-     содержит символ `a', то линии рисуются одна поверх другой. Если
-     строка содержит символ `f', то рисуется график типа waterfall для
-     определения кумулятивного эффекта последовательности положительных
-     и отрицательных значений. Можно использовать разные цвета для
-     положительных и отрицательных значений если число указанных цветов
-     равно удвоенному числу кривых для построения. См. также *note
-     barh::, *note area::, *note stem::, *note chart::. См. раздел
-     *note Bars sample::, для примеров кода и графика.
-
- -- Команда MGL: barh xdat ['stl'=" `zval=nan']
- -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
-     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
-     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
-     используется массив со значениями равно распределенными вдоль оси
-     y. Если строка STL содержит символ `a', то линии рисуются одна
-     поверх другой. Если строка содержит символ `f', то рисуется график
-     типа waterfall для определения кумулятивного эффекта
-     последовательности положительных и отрицательных значений. Можно
-     использовать разные цвета для положительных и отрицательных
-     значений если число указанных цветов равно удвоенному числу кривых
-     для построения. См. также *note bars::. См. раздел *note Barh
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: chart adat ['col'="]
-     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
-     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
-     меняется из цветов указанных в COL или в палитре (если `col=''').
-     Пробел в цветах соответствует прозрачному "цвету", т.е.
-     соответствующая полоса не рисуется. Ширина полосы пропорциональна
-     значению элемента в ADAT. График строится только для массивов не
-     содержащих отрицательных значений. Если строка COL содержит `#',
-     то рисуется также черная граница полос. График выглядит лучше в 3d
-     (после вращения системы координат) и/или в полярной системе
-     координат (становится Pie chart). См. раздел *note Chart sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: step ydat ['stl'=" `zval=nan']
- -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
- -- Команда MGL: step xdat ydat zdat ['stl'="]
-     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
-     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
-     См. раздел *note Step sample::, для примеров кода и графика.
-
- -- Команда MGL: torus zdat ['stl'="]
- -- Команда MGL: torus rdat zdat ['stl'="]
-     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
-     относительно оси *note axialdir::. Если массив RDAT не указан, то
-     используется массив со значениями равно распределенными вдоль оси
-     x. См. также *note plot::, *note axial::. См. раздел *note Torus
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
- -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
- -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
- -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
- -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
- -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
-     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
-     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
-     *note Tube sample::, для примеров кода и графика.
-
- -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
- -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
- -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
-     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
-     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
-     можно использовать функцию `plot' с невидимой линией (со стилем
-     содержащим ` '). См. также *note plot::, *note textmark::, *note
-     stem::, *note error::. См. раздел *note Mark sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
- -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
- -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
- -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
-     Рисует текст TXT как маркер с размером пропорциональным
-     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
-     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
-     plot::, *note mark::, *note stem::. См. раздел *note TextMark
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
- -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
- -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
-     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
-     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
-     отображения ошибки эксперимента, вычислений и пр. См. также *note
-     plot::. См. раздел *note Error sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
- -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
-     Рисует boxplot (называемый также как box-and-whisker diagram или
-     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
-     график, компактно изображающий распределение вероятностей
-     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
-     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
-     также *note plot::, *note error::, *note bars::. См. раздел *note
-     BoxPlot sample::, для примеров кода и графика.
-
-
-File: mgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
-
-1.11 2D графики
-======================
-
-Эти команды строят графики для двумерных (2D) массивов. Двумерными
-считаются массивы, зависящие только от двух параметров (индексов)
-подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
-типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
-поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
-поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
-(*note belt::), график плотности (*note dens::), линии уровня (*note
-cont::), линии уровня с заполнением (*note contf::) и результат их
-вращения (*note axial::). В функциях *note cont::, *note contf:: и
-*note axial:: значения уровней можно задавать автоматически и вручную.
-Можно также нарисовать сетку (*note grid::) по массиву данных для
-улучшения вида графика плотности или линий уровня. Каждый тип графика
-имеет похожий интерфейс. Есть версия для рисования одного массива с
-автоматическими координатами и версия для параметрически заданной
-поверхности. См. раздел *note 1D plot sample::, для примеров кода и
-графика.
-
-   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
-цветовая схема используется по умолчанию. Младшие размерности массивов
-XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
-ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
-xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
-матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
-используются массивы со значениями равно распределенными вдоль осей x,
-y. График строится для каждого z среза данных.
-
- -- Команда MGL: surf zdat ['sch'="]
- -- Команда MGL: surf xdat ydat zdat ['sch'="]
-     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
-     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
-     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
-     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
-     *note Surf sample::, для примеров кода и графика.
-
- -- Команда MGL: mesh zdat ['sch'="]
- -- Команда MGL: mesh xdat ydat zdat ['sch'="]
-     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
-     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
-     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: fall zdat ['sch'="]
- -- Команда MGL: fall xdat ydat zdat ['sch'="]
-     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
-     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
-     кривых, сдвинутых вглубь друг относительно друга. Если SCH
-     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
-     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
-     tens::, *note meshnum::. См. раздел *note Fall sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: belt zdat ['sch'="]
- -- Команда MGL: belt xdat ydat zdat ['sch'="]
-     Рисует ленточки для параметрически заданной поверхности
-     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
-     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
-     См. также *note fall::, *note surf::, *note plot::, *note
-     meshnum::. См. раздел *note Belt sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: boxs zdat ['sch'="]
- -- Команда MGL: boxs xdat ydat zdat ['sch'="]
-     Рисует вертикальные ящики для параметрически заданной поверхности
-     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
-     dens::, *note tile::, *note step::. См. раздел *note Boxs
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: tile zdat ['sch'="]
- -- Команда MGL: tile xdat ydat zdat ['sch'="]
-     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
-     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
-     обобщение *note step::. См. также *note surf::, *note boxs::,
-     *note step::, *note tiles::. См. раздел *note Tile sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: dens zdat ['sch'=" `zval=nan']
- -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
-     Рисует график плотности для параметрически заданной поверхности
-     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
-     `#', то рисуется сетка. См. также *note surf::, *note cont::,
-     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
-     *note Dens sample::, для примеров кода и графика.
-
- -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
- -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
-     Рисует линии уровня для параметрически заданной поверхности
-     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
-     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
-     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
-     значения VDAT[k] будут выведены вдоль контуров над (или под)
-     кривой. См. также *note dens::, *note contf::, *note contd::,
-     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
- -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
- -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
-     Рисует закрашенные линии (контуры) уровня для параметрически
-     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
-     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
-     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
-     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
-     раздел *note ContF sample::, для примеров кода и графика.
-
- -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
- -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
- -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
-     Рисует закрашенные линии (контуры) уровня для параметрически
-     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
-     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
-     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
-     контуров: цвет k-го контура определяется символом
-     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
-     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
-     примеров кода и графика.
-
- -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
- -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: axial vdat zdat ['sch'="]
- -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
-     Рисует поверхность вращения линии уровня для параметрически
-     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
-     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
-     рисуется сетчатая поверхность. Если строка содержит символы `x',
-     `y' или `z', то ось вращения устанавливается в указанное
-     направление (по умолчанию вдоль оси *note axialdir::). См. также
-     *note cont::, *note contf::, *note torus::, *note surf3::. См.
-     раздел *note Axial sample::, для примеров кода и графика.
-
- -- Команда MGL: axial zdat ['sch'=" `num=3']
- -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
- -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
- -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
-     Рисует линии градиента скалярного поля PDAT заданного
-     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
-     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
-     рисуются только с границ интервала при NUM<0. См. также *note
-     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
-     См. раздел *note Grad sample::, для примеров кода и графика.
-
- -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
- -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
-     Рисует плоскую сету для параметрически заданной поверхности
-     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
-     dens::, *note cont::, *note contf::.
-
-
-File: mgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
-
-1.12 3D графики
-======================
-
-Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
-считаются массивы, зависящие от трех параметров (индексов) подобно
-матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
-типов 3D графиков: поверхность постоянного уровня (*note surf3::),
-график плотности на срезе (DENS3), линии уровня на срезе (*note
-cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
-объемной прозрачности типа облака (*note cloud::). В функциях *note
-cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
-автоматически и вручную. Можно также нарисовать на срезе сетку (*note
-grid3::) по массиву данных для улучшения вида графика плотности или
-линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
-для рисования одного массива с автоматическими координатами и версия
-для параметрически заданного массива. См. раздел *note 3D plot
-sample::, для примеров кода и графика.
-
-   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
-цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
-векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
-указаны, то используются массивы со значениями равно распределенными
-вдоль осей x, y, z.
-
- -- Команда MGL: surf3 adat `val' ['sch'="]
- -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
-     Рисует поверхность уровня для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
-     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
-     поверхность. См. также *note cloud::, *note dens3::, *note
-     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: surf3 adat ['sch'=" `num=5']
- -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
-     Рисует NUM поверхностей уровня равномерно распределенных в
-     интервале цветовой шкалы (см. *note caxis::).
-
- -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
- -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
-     Рисует график плотности для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
-     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
-     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
-     *note contf3::, *note dens::, *note grid3::. См. раздел *note
-     Dens3 sample::, для примеров кода и графика.
-
- -- Команда MGL: densa adat ['sch'="]
- -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
-     Рисует графики плотности на всех центральных срезах 3d данных.
-
- -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
- -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
-          'sch'="]
-     Рисует линии уровня для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
-     для значений из массива V на срезе SVAL в направлении DIR={`x',
-     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
-     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
-     контуров над (или под) кривой. См. также *note dens3::, *note
-     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
- -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
-          `num=7']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: conta adat ['sch'=" `num=7']
- -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
-     Рисует линии уровня на всех центральных срезах 3d данных.
-
- -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
- -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
-          'sch'="]
-     Рисует закрашенные линии (контуры) уровня для 3d массива,
-     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
-     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
-     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
-     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
-     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
- -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
-          `num=7']
-     Как предыдущий с вектором V из NUM элементов равно распределенных
-     в интервале цветовой шкалы (см., *note caxis::).
-
- -- Команда MGL: contfa adat ['sch'=" `num=7']
- -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
-     Рисует закрашенные линии (контуры) уровня на всех центральных
-     срезах 3d данных.
-
- -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
- -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
-     Рисует сетку для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
-     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
-     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
-
- -- Команда MGL: grida adat ['sch'="]
- -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
-     Рисует сетку на всех центральных срезах 3d данных.
-
- -- Команда MGL: cloud adat ['sch'="]
- -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
-     Рисует облачный график для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
-     из кубиков с цветом и прозрачностью пропорциональной значениям
-     ADAT. Результат похож на облако - малые значения прозрачны, а
-     большие нет. Число кубиков зависит от *note meshnum::. Параметр
-     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
-     См. раздел *note Cloud sample::, для примеров кода и графика.
-
- -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
-     Рисует поверхность уровня для 3d массива ADAT при постоянном
-     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
-     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
-     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
-     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
-     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
-     нормированное в каждом сечении поле. Размеры массивов по 1-му
-     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
-     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
-     быть одинаковы. См. также *note surf3::.
-
-
-File: mgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
-
-1.13 Парные графики
-================================
-
-Эти команды строят графики для двух связанных массивов. Есть несколько
-основных типов 3D графиков: поверхность и поверхность уровня с окраской
-по второму массиву (*note surfc::, *note surf3c::), поверхность и
-поверхность уровня с прозрачностью по второму массиву (*note surfa::,
-*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
-точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
-командах *note surf3a:: и *note surf3c:: значения уровней можно
-задавать автоматически и вручную. Каждый тип графика имеет похожий
-интерфейс. Есть версия для рисования одного массива с автоматическими
-координатами и версия для параметрически заданного массива.
-
-   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
-цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
-векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
-указаны, то используются массивы со значениями равно распределенными
-вдоль осей x, y, z.
-
- -- Команда MGL: surfc zdat cdat ['sch'="]
- -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
-     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
-     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
-     содержит `#', то на поверхности рисуется сетка. См. также *note
-     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: surf3c adat cdat `val' ['sch'="]
- -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
-     Рисует поверхность уровня для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
-     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
-     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
-     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
-     *note Surf3C sample::, для примеров кода и графика.
-
- -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
- -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
-     Рисует NUM поверхностей уровня равномерно распределенных в
-     интервале цветовой шкалы (см. *note caxis::).
-
- -- Команда MGL: surfa zdat cdat ['sch'="]
- -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
-     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
-     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
-     содержит `#', то на поверхности рисуется сетка. См. также *note
-     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: surf3a adat cdat `val' ['sch'="]
- -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
-     Рисует поверхность уровня для 3d массива, заданного параметрически
-     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
-     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
-     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
-     поверхность. См. также *note surf3::, *note surfa::, *note
-     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
- -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
-     Рисует NUM поверхностей уровня равномерно распределенных в
-     интервале цветовой шкалы (см. *note caxis::).
-
- -- Команда MGL: tiles zdat rdat ['sch'="]
- -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
-     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
-     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
-     задается массивов RDAT. Это создает эффект "прозрачности" при
-     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
-     раздел *note TileS sample::, для примеров кода и графика.
-
- -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
- -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
-     Визуализирует точечное отображение для матриц {UDAT, VDAT }
-     параметрически зависящих от координат XDAT, YDAT. Исходное
-     положение ячейки задает ее цвет. Высота пропорциональна якобиану
-     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
-     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
-     узлах матриц (полезно для "запутанного" отображения). См. раздел
-     *note Map sample::, для примеров кода и графика.
-
- -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
- -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
-     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
-     размером DN точек. Параметр DN - любое четное число. Например в 1D
-     случае, результатом будет график плотности от массива
-     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
-     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
-     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
-     для примеров кода и графика.
-
-
-File: mgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
-
-1.14 Векторные поля
-================================
-
-Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
-типов графиков: просто векторное поле (*note vect::), вектора вдоль
-траектории (*note traj::), векторное поле каплями (*note dew::), нити
-тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
-имеет похожий интерфейс. Есть версия для рисования одного массива с
-автоматическими координатами и версия для параметрически заданного
-массива.
-
-   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
-цветовая схема используется по умолчанию. Все размеры массивов AX и AY
-должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
-быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
-AX). График строится для каждого z среза AX, AY для 2D случаев.
-
- -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
- -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
-     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
-     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
-     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
-     Параметр LEN задает фактор длины векторов (если не нуль) или
-     выбирать длину пропорционально расстоянию между точками кривой
-     (если LEN=0). См. также *note vect::. См. раздел *note Traj
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
- -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
-     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
-     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
-     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
-     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
-     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
-     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
-     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
-     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
-     раздел *note Vect sample::, для примеров кода и графика.
-
- -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
- -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а длина и цвет пропорциональны
-     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
- -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
-     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: vectc udat vdat wdat ['sch'="]
- -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а длина и цвет пропорциональны
-     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
- -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
-     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
-     sample::, для примеров кода и графика.
-
- -- Команда MGL: vectl udat vdat wdat ['sch'="]
- -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а длина и цвет пропорциональны
-     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
-     для примеров кода и графика.
-
- -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
- -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
-     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
-     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
-     требует много памяти и процессорного времени для своего создания!
-     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
-     определяется *note meshnum::. См. также *note vect::. См. раздел
-     *note Dew sample::, для примеров кода и графика.
-
- -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
- -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
-     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
-     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
-     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
-     и изнутри сетки, в противном случае только с краев. Цвет нитей
-     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
-     нормальному току (типа стока). Холодные цвета соответствуют
-     обратному току (типа источника). См. также *note pipe::, *note
-     vect::. См. раздел *note Flow sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
- -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
-     См. раздел *note Flow 3D sample::, для примеров кода и графика.
-
- -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
- -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
-     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
-     VDAT}, параметрически зависящего от координат XDAT, YDAT на
-     плоскости при z = ZVAL. Цвет нити пропорционален
-     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
-     (типа стока). Холодные цвета соответствуют обратному току (типа
-     источника).
-
- -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
- -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
-
- -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
- -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
-          zval=nan']
-     Рисует трубки тока для векторного поля {UDAT, VDAT},
-     параметрически зависящего от координат XDAT, YDAT на плоскости при
-     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
-     стартовать и изнутри сетки, в противном случае только с краев.
-     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
-     цвета соответствуют нормальному току (типа стока). Холодные цвета
-     соответствуют обратному току (типа источника). Параметр R0 задает
-     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
-     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
-     Pipe sample::, для примеров кода и графика.
-
- -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
- -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
-          num=3']
-     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
-     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
-     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
-
-
-File: mgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
-
-1.15 Прочие графики
-================================
-
-Это команды, не относящиеся к какой-то специальной категории. Сюда
-входят функции построения графиков по текстовым формулам (*note
-fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
-triplot::), произвольных точек в пространстве (*note dots::) и
-реконструкции по ним поверхности (*note crust::), графики плотности и
-линии уровня на плоскостях, перпендикулярных осям x, y или z
-(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
-интерфейс. Есть версия для рисования одного массива с автоматическими
-координатами и версия для параметрически заданного массива. Строка SCH
-задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
-используется по умолчанию.
-
- -- Команда MGL: densx dat ['sch'=" `val=nan']
- -- Команда MGL: densy dat ['sch'=" `val=nan']
- -- Команда MGL: densz dat ['sch'=" `val=nan']
-     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
-     массив, то выполняется интерполяция к заданному срезу VAL. Функции
-     полезны для создания проекций 3D массивов на оси координат. См.
-     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
-     projection sample::, для примеров кода и графика.
-
- -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
- -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
- -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
-     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
-     массив, то выполняется интерполяция к заданному срезу VAL. Функции
-     полезны для создания проекций 3D массивов на оси координат. См.
-     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
-     projection sample::, для примеров кода и графика.
-
- -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
- -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
- -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
-     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
-     DAT - 3d массив, то выполняется интерполяция к заданному срезу
-     VAL. Функции полезны для создания проекций 3D массивов на оси
-     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
-
- -- Команда MGL: dots xdat ydat zdat ['sch'="]
- -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
-     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
-     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
-     точек. См. также *note crust::, *note mark::, *note plot::. См.
-     раздел *note Dots sample::, для примеров кода и графика.
-
- -- Команда MGL: crust xdat ydat zdat ['sch'="]
-     Реконструирует и рисует поверхность по произвольно расположенным
-     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
-     рисуется сетчатая поверхность. См. также *note dots::, *note
-     triplot::. См. раздел *note Crust sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
- -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
- -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
-     Рисует поверхность из треугольников. Вершины треугольников
-     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
-     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
-     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
-     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
-     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
-     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
-     crust::, *note quadplot::, *note tricont::.
-
- -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
-          `zval=nan']
- -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
- -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
-     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
-     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
-     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
-     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
-     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
-     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
-     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
-     *note cont::.
-
- -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
- -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
- -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
-     Рисует поверхность из четырехугольников. Вершины треугольников
-     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
-     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
-     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
-     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
-     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
-     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
-
- -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
-     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
-     диапазоне x-оси координат. Параметр NUM задает минимальное число
-     точек по координате для графика. См. также *note plot::.
-
- -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
-     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
-     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
-     минимальное число точек по координате для графика. См. также *note
-     plot::.
-
- -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
-     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
-     x-,y-осей координат. Параметр NUM задает минимальное число точек
-     по координатам для графика. См. также *note surf::.
-
- -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
-     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
-     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
-     задает минимальное число точек по координатам для графика. См.
-     также *note surf::.
-
-
-File: mgl_ru.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
-
-1.16 Nonlinear fitting
-======================
-
-Эти команды подбирают параметры функций для наилучшей аппроксимации
-данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
-a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
-одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
-или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
-зависеть от параметров. Список параметров задается строкой VAR
-(например, `abcd'). Обычно пользователь должен предоставить начальные
-значения параметров в переменной INI. Однако, при его отсутствии
-используются нулевые значения.
-
-   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
-заполняют массив FIT по формуле `f' с найденными коэффициентами. При
-этом, координаты `x,y,z' равно распределены в вдоль осей координат.
-Число точек в FIT выбирается максимальным из размера массива FIT и 100.
-Формулу с найденными коэффициентами можно вывести с помощью команды
-*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
-графика.
-
-   Размерность массивов должны быть не меньше, чем число указанных
-массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
-осуществляться только вдоль указанных направлений (например, вдоль x и
-y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
-используется массив со значениями равно распределенными вдоль оси x.
-
- -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
- -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
- -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
- -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
-     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
-     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
-     весовыми коэффициентами SDAT[i,j,k].
-
- -- Команда MGL: fit adat 'func' 'var' [ini=0]
- -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
- -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
- -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
-     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
-     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
-     весовыми коэффициентами равными 1.
-
- -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
-     Печатает последнюю подобранную формулу с найденными коэффициентами
-     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
-     другие параметры такие же как в *note Text printing::.
-
-
-File: mgl_ru.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
-
-1.17 Создание данных
-==================================
-
- -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
-     Создает/пересоздает массив с именем DAT данных указанного размера
-     и заполняет его нулями. Ничего не делает при NX, NY, NZ
-     отрицательных или равных нулю.
-
- -- Команда MGL: var dat `num v1 [v2=nan]'
-     Создает одномерный массив с именем DAT размером `num' и заполняет
-     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
-     используется V2=V1.
-
- -- Команда MGL: list dat `v1 ...'
-     Создает массив с именем DAT и заполняет его числовыми значениями
-     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
-     создания 2d-массивов требуется указать разделитель строк данных
-     `|'. Размер массива будет [максимальное число чисел в строке *
-     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
-     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
-
- -- Команда MGL: list dat d1 ...
-     Создает массив с именем DAT и заполняет его числами из массивов
-     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
-     2d массивы). Младшие размерности всех массивов в аргументах должны
-     быть равны размерности D1. Отмечу, что максимальное число
-     аргументов 1000.
-
- -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
- -- Команда MGL: copy dat `val'
-     Создает массив с именем DAT и копирует в него данные из массива
-     DAT2. При этом, если указан параметр EQ, то данные будут изменены
-     по формуле аналогично команде *note fill:: (для `on_axis=on') или
-     *note modify:: (для `on_axis=off').
-
- -- Команда MGL: idset dat 'ids'
-     Устанавливает символьные обозначения для колонок данных. Строка
-     должна содержать символы 'a'...'z' один на колонку (без пробелов).
-
- -- Команда MGL: info dat [`detail=off']
-     Выводит информацию о массиве (размер, максимальное/минимальное
-     значение, моменты и пр.). При `detail=off' показывается только
-     краткая информация.
-
- -- Команда MGL: info 'text'
-     Выводит текст TEXT как информацию (предупреждение).
-
-
-File: mgl_ru.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
-
-1.18 Заполнение данных
-======================================
-
- -- Команда MGL: fill dat v1 v2 ['dir'='x']
-     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
-     направлении DIR={`x',`y',`z'}.
-
- -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
-     Заполняет значениями вычисленными по формуле EQ. Формула
-     представляет собой произвольное выражение, зависящее от переменных
-     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
-     меняющимися в диапазоне осей координат (в отличие от *note
-     modify::). Переменная `u' - значения исходного массива, переменные
-     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
-     опущены.
-
- -- Команда MGL: modify dat 'eq' [`dim=0']
- -- Команда MGL: modify dat 'eq' vdat [wdat=0]
-     Заполняет значениями вычисленными по формуле EQ. Формула
-     представляет собой произвольное выражение, зависящее от переменных
-     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
-     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
-     Переменная `u' - значения исходного массива, переменные `v', `w' -
-     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
-     указан DIM>0, то изменяются только слои >=DIM.
-
- -- MGL command: put dat `val [i=: j=: k=:]'
-     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
-     J, K равные `:' задают значениия VAL для всего диапазона
-     соответствующего направления(ий). Например, `put dat val : 0 :'
-     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
-
- -- MGL command: put dat vdat [`i=: j=: k=:']
-     Копирует значения из массива VDAT в диапазон значений массива DAT.
-     Индексы I, J, K равные `:' задают диапазон изменения значений в
-     соответствующих направление(ях). Младшие размерности массива VDAT
-     должны быть больше выбранного диапазона массива DAT. Например,
-     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
-     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
-     vdat.nx>=dat.nx выполнено.
-
-
-File: mgl_ru.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
-
-1.19 Изменение размеров данных
-=====================================================
-
- -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
-     Изменяет размерность данных без изменения самого массива данных,
-     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
-     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
-     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
-
- -- Команда MGL: extend dat `n1 [n2=0]'
-     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
-     после (для N1>0) или перед (для N1<0) существующими данными. Можно
-     добавить сразу 2 размерности для 1d массива, используя второй
-     параметр N2. Данные в новые срезы будут скопированы из
-     существующих. Например, для N1>0 новый массив будет a_ij^new =
-     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
-     будет a_ij^new = a_j^old, где i=0...|N1|.
-
- -- Команда MGL: transpose dat ['dim'='yxz']
-     Транспонирует (меняет порядок размерностей) массив данных. Новый
-     порядок размерностей задается строкой DIM.
-
- -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
-     Уменьшает размер данных путем удаления элементов с индексами не
-     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
-     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
-     нет (т.е. out[i]=a[j*r]).
-
- -- Команда MGL: crop dat `n1 n2' 'dir'
-     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
-     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
-
- -- Команда MGL: delete dat
-     Удаляет массив DAT и освобождает использованную память. Может быть
-     полезно для больших неиспользуемых массивов.
-
- -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
-     Удаляет NUM срезов вдоль направления DIR с позиции POS.
-
- -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
-     Вставляет NUM срезов вдоль направления DIR с позиции POS и
-     заполняет их нулями.
-
-
-File: mgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
-
-1.20 Чтение/сохранение данных
-===================================================
-
- -- Команда MGL: read dat 'fname'
-     Читает данные из текстового файла с разделителями символом
-     пробела/табуляции с автоматическим определением размера массива.
-     Двойной перевод строки начинает новый срез данных (по направлению
-     z).
-
- -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
-     Читает данные из текстового файла с заданными размерами. Ничего не
-     делается если параметры MX, MY или MZ равны нулю или отрицательны.
-
- -- Команда MGL: readmat dat 'fname' [`dim=2']
-     Читает данные из текстового файла с размерами, указанными в первых
-     DIM числах файла. При этом переменная DIM задает размерность (1d,
-     2d, 3d) данных.
-
- -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
-     Объединяет данные из нескольких текстовых файлов. Имена файлов
-     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
-     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
-     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
-     (при SLICE=`on').
-
- -- Команда MGL: readall dat 'templ' `[slice=off]'
-     Объединяет данные из нескольких текстовых файлов, чьи имена
-     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
-     загружаются один за другим в один и тот же срез данных (при
-     SLICE=`off') или срез-за-срезом (при SLICE=`on').
-
- -- Команда MGL: save dat 'fname'
-     Сохраняет массив данных в текстовый файл.
-
- -- Команда MGL: readhdf dat 'fname' 'dname'
-     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
-
- -- Команда MGL: savehdf dat 'fname' 'dname'
-     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
-
- -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
-     Читает данные из растрового файла. RGB значения пикселов
-     преобразуются в число в диапазоне [V1, V2] используя цветовую
-     схему SCH (*note Color scheme::).
-
- -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
-     Сохраняет данные в растровый файл. Числовые значения,
-     нормированные в диапазон [V1, V2], преобразуются в RGB значения
-     пикселов, используя цветовую схему SCH (*note Color scheme::).
-     Если V1>=V2, то значения V1, V2 определяются автоматически как
-     минимальное и максимальное значение данных.
-
-
-File: mgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
-
-1.21 Создание новых данных
-=============================================
-
- -- Команда MGL: combine res adat bdat
-     Возвращает в массиве данных RES прямое произведение массивов
-     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
-
- -- Команда MGL: evaluate res dat idat [`norm=on']
- -- Команда MGL: evaluate res dat idat jdat [`norm=on']
- -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
-     Возвращает массив данных RES, полученный в результате интерполяции
-     исходного массива в точках других массивов (например,
-     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
-     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
-     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
-     [0,nx], [0,ny], [0,nz] соответственно.
-
- -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
- -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
-     Возвращает распределение (гистограмму) RES из NUM точек от
-     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
-     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
-     задает число дополнительных точек интерполяции (для сглаживания
-     получившейся гистограммы).
-
- -- Команда MGL: hist res xdat adat
- -- Команда MGL: hist res xdat ydat adat
- -- Команда MGL: hist res xdat ydat zdat adat
-     Возвращает распределение (гистограмму) RES от значений массива
-     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
-     диапазоне осей координат. Массив ADAT играет роль веса точки.
-     Число точек в результате RES - максимум из размера RES и 100.
-
- -- Команда MGL: momentum res dat 'how' ['dir'='z']
-     Возвращает в массиве данных RES момент (1d массив) данных DAT
-     вдоль направления DIR. Строка HOW определяет тип момента. Момент
-     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
-     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
-     массива в диапазоне [0,1].
-
- -- Команда MGL: sum res dat 'dir'
-     Возвращает в массиве данных RES результат суммирования DAT вдоль
-     направления(ий) DIR.
-
- -- Команда MGL: max res dat 'dir'
-     Возвращает в массиве данных RES максимальное значение DAT вдоль
-     направления(ий) DIR.  Gets array which is the maximal data values
-     in given direction or direction(s).
-
- -- Команда MGL: min res dat 'dir'
-     Возвращает в массиве данных RES минимальное значение DAT вдоль
-     направления(ий) DIR.
-
- -- Команда MGL: resize res dat `mx [my=1 mz=1]'
-     Возвращает массив данных RES размером MX, MY, MZ со значениями
-     полученными интерполяцией значений массива DAT.
-
- -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
-     Возвращает в RES подмассив массива данных DAT с фиксированными
-     значениями индексов с положительными значениями. Например,
-     `subdata a b : 2' выделяет третью строку (индексы начинаются с
-     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
-     3' выделяет 4-ый срез и т.д.
-
- -- Команда MGL: trace res dat
-     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
-     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
-     возвращается сам массив данных DAT. Размеры массива данных должен
-     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
-
- -- Команда MGL: transform dat 'type' real imag
-     Выполняет интегральное преобразование комплексных данных REAL,
-     IMAG в выбранном направлении и возвращает модуль результата в RES.
-     Порядок и тип преобразований задается строкой TYPE: первый символ
-     для x-направления, второй для y-направления, третий для
-     z-направления. Возможные символы: `f' - прямое преобразование
-     Фурье, `i' - обратное преобразование Фурье, `s' - синус
-     преобразование, `c' - косинус преобразование, `h' - преобразование
-     Ханкеля, `n' или ` ' - нет преобразования.
-
- -- Команда MGL: transforma dat 'type' ampl phase
-     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
-     комплексных чисел.
-
- -- Команда MGL: stfad res real imag `dn' ['dir'='x']
-     Выполняет оконное преобразование Фурье длиной DN для комплексных
-     данных REAL, IMAG и возвращает модуль результата в RES. Например,
-     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
-     будет равен res[i,j,k]=|\sum_d^dn
-     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
-
- -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
-     Решает уравнение в частных производных du/dz =
-     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
-     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
-     начальное распределение поля. Координаты в уравнении и в решении
-     полагаются в диапазоне осей координат. Замечу, что внутри этот
-     диапазон увеличивается в 3/2 раза для уменьшения отражения от
-     границ расчетного интервала. Параметр DZ задает шаг по
-     эволюционной координате z. В данный момент использован упрощенный
-     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
-     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
-     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
-     `x*q'->x*d/dy). Переменная `u' используется для обозначения
-     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
-     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
-     Также можно указать мнимую часть для поглощения (типа `ham =
-     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
-     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
-     кода и графика.
-
- -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
-     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
-     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
-     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
-     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
-     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
-     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
-     шаг и максимальное время интегрирования. Результат RES - массив
-     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
-     Beam tracing sample::, для примеров кода и графика.
-
- -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
-          yy=0]
-     Решает уравнение в частных производных du/dt =
-     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
-     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
-     Параметры INI_RE, INI_IM задают начальное распределение поля.
-     Параметр RAY задает опорный луч для сопровождающей системы
-     координат. Можно использовать луч найденный с помощью `ray'.
-     Опорный луч должен быть достаточно гладкий, чтобы система
-     координат была однозначной и для исключения ошибок интегрирования.
-     Если массивы XX и YY указаны, то в них записываются декартовы
-     координаты для каждой точки найденного решения. См. также *note
-     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
-     графика.
-
- -- Команда MGL: jacobian res xdat ydat [zdat=0]
-     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
-     координаты {i,j,k} полагаются нормированными в интервал [0,1].
-     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
-     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
-     должны быть одинаковы. Данные должны быть трехмерными если указаны
-     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
-     массива {XDAT,YDAT}.
-
-
-File: mgl_ru.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
-
-1.22 Изменение данных
-====================================
-
-Эти команды изменяют данные вдоль заданного направления(ий) типа
-например дифференцирования, интегрирования и т.д. Направление
-указывается строкой DIR, которая может содержать символы `x', `y' и/или
-`z', вдоль которых изменения будут применены.
-
- -- Команда MGL: cumsum dat 'dir'
-     Суммирует с накоплением в выбранном направлении(ях).
-   
- -- Команда MGL: integrate dat 'dir'
-     Выполняет интегрирование (подобно суммированию с накоплением) в
-     выбранном направлении(ях).
-   
- -- Команда MGL: diff dat 'dir'
-     Выполняет дифференцирование в выбранном направлении(ях).
-
- -- Команда MGL: diff dat xdat ydat [zdat=0]
-     Выполняет дифференцирование данных DAT, параметрически зависящих
-     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
-     ZDAT может быть опущен, что соответствует 2D случаю. Используются
-     следующие формулы (2D случай): da/dx =
-     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
-     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
-     Похожие формулы используются и в 3D случае. Порядок аргументов
-     можно менять - например, если данные a(i,j) зависят от координат
-     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
-     a x y', а обычная производная по `y' будет равна `diff a y x'.
-
- -- Команда MGL: diff2 dat 'dir'
-     Выполняет двойное дифференцирование (как в операторе Лапласа) в
-     выбранном направлении(ях).
-
- -- Команда MGL: sinfft dat 'dir'
-     Выполняет синус преобразование в выбранном направлении(ях). Синус
-     преобразование есть \sum a_i \sin(k i).
-   
- -- Команда MGL: cosfft dat 'dir'
-     Выполняет косинус преобразование в выбранном направлении(ях).
-     Синус преобразование есть \sum a_i \cos(k i).
-   
- -- Команда MGL: hankel dat 'dir'
-     Выполняет преобразование Ханкеля в выбранном направлении(ях).
-     Преобразование Ханкеля есть \sum a_i J_0(k i).
-
- -- Команда MGL: swap dat 'dir'
-     Меняет местами левую и правую части данных в выбранном
-     направлении(ях). Полезно для отображения результата FFT.
-   
- -- Команда MGL: roll dat 'dir' num
-     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
-     Соответствует замене индекса на I->(I+NUM)%N.
-
- -- Команда MGL: mirror dat 'dir'
-     Отражает данные в выбранном направлении(ях). Соответствует замене
-     индекса на I->N-I.
-
- -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
-     Удаляет скачки данных (например, скачки фазы после обратных
-     тригонометрических функций) с периодом DA в выбранном
-     направлении(ях).
-
- -- Команда MGL: smooth data `type' ['dir'='xyz']
-     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
-     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
-     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
-     квадратичное усреднение по 5 точкам.
-
- -- Команда MGL: envelop dat ['dir'='x']
-     Находит огибающую данных в выбранном направлении. Только одно
-     направление может быть выбрано за раз.
-
- -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
-     Нормирует данные срез-за-срезом в выбранном направлении DIR в
-     интервал [V1,V2]. Если SYM=`on', то используется симметричный
-     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
-     максимальное значение k-го среза ограничено величиной \sqrt{\sum
-     a_ij(k)/\sum a_ij(0)}.
-
- -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
-     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
-     используется симметричный интервал [-max(|v1|,|v2|),
-     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
-
-
-File: mgl_ru.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
-
-1.23 Операторы
-=======================
-
- -- Команда MGL: multo dat dat2
-     Поэлементно умножает массив DAT на DAT2.
-
- -- Команда MGL: multo dat `val'
-     Умножает каждый элемент на число.
-
- -- Команда MGL: divto dat dat2
-     Поэлементно делит массив DAT на DAT2.
-
- -- Команда MGL: divto dat `val'
-     Делит каждый элемент на число.
-
- -- Команда MGL: addto dat dat2
-     Поэлементно прибавляет DAT2 к массиву DAT.
-
- -- Команда MGL: addto dat `val'
-     Прибавляет число к каждому элементу.
-
- -- Команда MGL: subto dat dat2
-     Поэлементно вычитает DAT2 из массива DAT.
-
- -- Команда MGL: subto dat `val'
-     Вычитает число из каждого элемента.
-
-
-File: mgl_ru.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
-
-1.24 Программирование
-=====================================
-
-Эти команды управляют порядком выполнения других команд (условия,
-циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
-
- -- Команда MGL: chdir 'path'
-     Переходит в папку PATH.
-
- -- Команда MGL: define $N smth
-     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
-     используется как есть (с символами `'' если присутствуют).
-     Выполняется только подстановка других макроопределений $0...$9,
-     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
-
- -- Команда MGL: define name smth
-     Определяет константу (скаляр) с именем `name' и числовым значением
-     `smth'. Позднее она может быть использована как обычное число.
-   
- -- Команда MGL: defchr $N smth
-     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
-     Здесь N это цифра (0...9) или буква (a...z).
-   
- -- Команда MGL: defnum $N smth
-     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
-     N это цифра (0...9) или буква (a...z).
-   
- -- Команда MGL: defpal $N smth
-     Задает N-ый аргумент скрипта равным символу палитры с индексом,
-     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
-
- -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
-     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
-     скрипта, если функция не была найдена). Опциональные аргументы
-     передаются в подпрограмму. См. также *note func::.
-   
- -- Команда MGL: func 'fname' [narg=0]
-     Определяет подпрограмму с именем FNAME и задает число требуемых
-     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
-     ... $9. Отмечу, что выполнение основной программы должно быть
-     остановлено до начала определений подпрограмм. См. также *note
-     stop::,  *note return::.
-   
- -- Команда MGL: return
-     Возвращается из подпрограммы.
-
- -- Команда MGL: if dat 'cond'
-     Начинает блок команд, выполняемый если каждый элемент DAT
-     удовлетворяет условию COND.
-
- -- Команда MGL: if `val'
-     Начинает блок команд, выполняемый если `val' не ноль.
-   
- -- Команда MGL: elseif dat 'cond'
-     Начинает блок команд, выполняемый если предыдущий `if' или
-     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
-     условию COND.
-
- -- Команда MGL: elseif `val'
-     Начинает блок команд, выполняемый если предыдущий `if' или
-     `elseif' не был выполнен и `val' не ноль.
-   
- -- Команда MGL: else
-     Начинает блок команд, выполняемый если предыдущий `if' или
-     `elseif' не был выполнен.
-   
- -- Команда MGL: endif
-     Заканчивает определение блока `if/elseif/else'.
-
- -- Команда MGL: for $N `v1 v2 [dv=1]'
-     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
-     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
-     буква (a...z).
-
- -- Команда MGL: for $N dat
-     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
-     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
-     буква (a...z).
-   
- -- Команда MGL: next
-     Заканчивает блок цикла `for'.
-
- -- Команда MGL: once `val'
-     Определяет код (между `once on' и `once off') который будет
-     выполнен только один раз. Полезно для работы с большими данными в
-     программах типа UDAV.
-   
- -- Команда MGL: stop
-     Останавливает выполнение скрипта.
-
-
-File: mgl_ru.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
-
-1.25 Опции команд
-============================
-
-Опции команд позволяют легко настроить вид отдельного графика не меняя
-глобальных настроек для все рисунка. Опции указываются после команды.
-Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
-что запоминают текущие настройки рисунка, применяют собственные
-настройки, выполняют команду и возвращают глобальные настройки обратно.
-Поэтому использование опций для команд обработки данных или настройки
-графика бесполезно.
-
-   Наиболее часто используемые опции - `xrange, yrange, zrange',
-устанавливающие границы изменения осей координат (и тем самым
-автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
-построит кривую с x-координатой равно распределенной в интервале 0.1
-... 0.9, а не вдоль текущей оси x.
-
-   Полный список опций: 
-
- -- Опция MGL: alpha `val'
- -- Опция MGL: alphadef `val'
-     Задает величину прозрачности поверхности. Значение должно быть в
-     диапазоне [0, 1]. См. также *note alphadef::
-   
- -- Опция MGL: ambient `val'
-     Задает яркость фонового освещения. Значение должно быть в
-     диапазоне [0, 1]. См. также *note ambient::
-   
- -- Опция MGL: crange `val1 val2'
-     Задает границы цветовой шкалы. См. также *note crange::
-   
- -- Опция MGL: xrange `val1 val2'
-     Задает границы изменения координаты x. См. также *note xrange::
-   
- -- Опция MGL: yrange `val1 val2'
-     Задает границы изменения координаты y. См. также *note yrange::
-   
- -- Опция MGL: zrange `val1 val2'
-     Задает границы изменения координаты z. См. также *note zrange::
-   
- -- Опция MGL: cut `val'
-     Задает обрезание точек за пределами осей координат. См. также
-     *note cut::
-   
- -- Опция MGL: fontsize `val'
-     Задает размер текста. См. также *note font::
-   
- -- Опция MGL: marksize `val'
-     Задает размер маркеров. См. также *note marksize::
-   
- -- Опция MGL: meshnum `val'
-     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
-     *note meshnum::
-   
- -- Опция MGL: legend 'txt'
-     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
-     линии и маркера аргумента последней вызванной команды построения
-     *note 1D plotting::. См. также *note legend::
-
-
-File: mgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
-
-1.26 Суффиксы переменных
-==========================================
-
-Суффиксы позволяют быстро получить числовую характеристику (размер,
-максимальное или минимальное значение, сумму элементов и т.д.) массива
-данных и использовать ее как число (скаляр) в аргументах. Суффиксы
-начинаются с точки `.' сразу после (без пробелов) имени переменной и
-временного массива. Например, `a.nx' даст размер массива A по оси х,
-`b(1).max' даст максимальное значение второй строки массива B,
-`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
-C и т.д.
-
-   Полный список суффиксов:
-*nx, ny, nz*
-     Размер массива в направлении x, y, z соответственно.
-
-*max*
-     Максимальное значение массива.
-
-*min*
-     Минимальное значение массива.
-
-*sum*
-     Сумма элементов массива.
-
-*a*
-     Первый элемент массива (элемент с индексами 0,0,0).
-
-*fst*
-     Первое не нулевое значение массива.
-
-*lst*
-     Последнее не нулевое значение массива.
-
-*mx, my, mz*
-     Положение максимума в направлении x, y, z соответственно.
-
-*ax, ay, az, aa*
-     Положение центра масс в направлении x, y, z соответственно или
-     среднее значение массива.
-
-*wx, wy, wz, wa*
-     Ширина в направлении x, y, z соответственно или дисперсия
-     элементов массива.
-
-*sx, sy, sz, sa*
-     Асимметрия в направлении x, y, z соответственно или элементов
-     массива.
-
-*kx, ky, kz, ka*
-     Эксцесс в направлении x, y, z соответственно или элементов массива.
-
-
-File: mgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
-
-1.27 Утилиты для MGL
-==============================
-
-MathGL содержит несколько программ для работы со скриптами MGL. Есть
-утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
-(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
-результат выполнения скрипта MGL и позволяет вращать и настраивать
-график. Также можно транслировать MGL скрипт в C++ файл с помощью
-программы `mgl2cpp'.
-
-   Все эти программы имеют схожий набор аргументов. Первым идет имя
-скрипта, а вторым идет имя выходного файлы (может быть опущено),
-последние аргументы - опции скрипта и программы. К опциям относятся
-параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
-скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
-его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
-Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
-будет использовать UTF-8 в скрипте.
-
-   Также можно создавать анимированные изображения GIF или набор JPEG
-файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
-в скрипте надо указать параметры анимации для каждого кадра (строками с
-коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
-комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
-подставлены в качестве параметра `$0' при последовательном вызове
-скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
-''' в конце скрипта.
-
-
-File: mgl_ru.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
-
-2 MathGL examples
-*****************
-
-This chapter contain information about basic and advanced MathGL, hints
-and samples for all types of graphics. I recommend you read first 2
-sections one after another and at least look on "Hints" section. Also I
-recommend you to look at *note General concepts::. Sample code for some
-of these examples can be found in `http://mathgl.sf.net/pictures.html'
-and in *note Samples::.
-
-* Menu:
-
-* Basic usage::
-* Advanced usage::
-* Data handling::
-* Data plotting::
-* Hints::
-
-
-File: mgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
-
-2.1 Basic usage
-===============
-
-MGL script can be used by several manners. Each has positive and
-negative sides:
-   * _The using of MGL in UDAV._
-
-     Positive side is the possibility to view the plot at once and to
-     modify it, rotate, zoom or switch on transparency or lighting) by
-     hand or by mouse. Negative sides are: the need of X-terminal.
-
-   * _Direct writing to file in bitmap or vector format without
-     creation of graphical window._
-
-     Positive aspects are: batch processing of similar data set, for
-     example, a set of resulting data files for different calculation
-     parameters), running from the console program, including the
-     cluster calculation), fast and automated drawing, saving pictures
-     for further analysis, or demonstration). Negative sides are: the
-     usage of the external program for picture viewing. Also, the data
-     plotting is non-visual. So, you have to imagine the picture, view
-     angles, lighting and so on) before the plotting. I recommend to
-     use graphical window for determining the optimal parameters of
-     plotting on the base of some typical data set. And later use these
-     parameters for batch processing in console program.
-
-     In this case you can use a set of programs: `mgl2png', `mgl2gif',
-     `mgl2eps', `mgl2svg' or `mglview' for viewing.
-
-   The simplest script is
-box         # draw bounding box
-axis        # draw axis
-fplot 'x^3' # draw some function
-
-   Just type it in UDAV and press F5. Also you can save it in text file
-`test.mgl' and type in the console `mgl2png test.mgl' what produce file
-`test.mgl.png' with resulting picture.
-
-
-File: mgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
-
-2.2 Advanced usage
-==================
-
-Now I show several non-obvious features of MGL: several subplots in a
-single picture, curvilinear coordinates, text printing and so on.
-Generally you may miss this section at first reading, but I don't
-recommend it.
-
-* Menu:
-
-* Subplots::
-* Axis and grids::
-* Curvilinear coordinates::
-* Text printing example::
-
-
-File: mgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
-
-2.2.1 Subplots
---------------
-
-Let me demonstrate possibilities of axes transformation. MathGL has the
-following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
-Transformation matrix::). The order of their calling is strictly
-determined. First, one changes the position of axes in image area,
-functions `SubPlot' and `InPlot'). After that one may rotate the plot,
-function `Rotate'). Finally, one may change aspects of axes, function
-`Aspect'). The following code illustrates the aforesaid it:
-subplot 2 2 0:box
-text -1 1.1 'Just box' 'L'
-inplot 0.2 0.5 0.7 1:box
-text 0 1.2 'Inplot example'
-
-subplot 2 2 1
-rotate 60 40:aspect 1 1 1
-box:text 1 1 1.5 'rotate only' 'R'
-
-subplot 2 2 2
-rotate 60 40:aspect 1 1 2
-box:text 0 0 2 'aspect and rotate'
-
-subplot 2 2 3
-rotate 60 40:aspect 1 2 2
-box:text 0 0 1.5 'Aspect in other direction'
- Here I used function `text' for printing the text in arbitrary
-position of picture, *note Text printing::). Text coordinates and size
-are connected with axes. However, text coordinates may be everywhere,
-including the outside the bounding box. I shall show its features later
-in *Note Text printing example::.
-
-   Note that several commands can be placed in a string if they are
-separated by `:' symbol.
-
- [image src="../png/sample1.png" ]
-
-Example of several subplots on the single picture.
-
-
-File: mgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
-
-2.2.2 Axis and grids
---------------------
-
-MathGL library can draw not only the bounding box but also the axes,
-grids, labels and so on. The limits of axes and their origin (the point
-of intersection) are determined by function `axis'. Also you can use
-`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
-axis are specified by functions `xtick, ytick, ztick, ttick'. First
-argument the direction for each change will be applied. Second argument
-gives the step between ticks (if positive) or gives the number of ticks
-on the axis (if negative) or set to use logarithmic ticks (if zero).
-Third argument gives numbers of sub-ticks between ticks (default is
-zero). Last argument define the initial ticks position.
-
-   Function `Axis' draws axes. Its textual string shows in which
-directions the axis or axes will be drawn (by default `'xyz'', function
-draws axes in all directions). Function `Grid' draws grid
-perpendicularly to specified directions. Example of axes and grid
-drawing is:
-subplot 2 2 0
-xtick 0.4 3     # sets tick step to 0.5
-ytick 0.4 3     # and draws 3 subticks
-box             # should be after the ticks change
-axis 'xy': grid
-text 0 1.3 1 'axis and grid'
-
-xtick -5: ytick -5  # restore back
-subplot 2 2 1:rotate 60 40
-origin 0 0 0
-axis
-xlabel 'x' 1
-ylabel 'y' 1
-zlabel 'z' 1
-text 0 0 1.5 'axis and labels'
-
-subplot 2 2 2:rotate 60 40
-xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
-origin -1 -1 -1
-axis:grid
-text 0 0 1.5 'shift origin and add grid'
-text 0 0 1.2 '(note, too many ticks)'
-
-subplot 2 2 3:rotate 60 40
-xtick -6: ytick -6  # decrease the number of ticks
-axis 'yz'
-ylabel 'y axis'
-zlabel 'z axis'
-text 0 0 1.5 'remove x axis, and'
-text 0 0 1.2 'decrease number of ticks'
-
-   This example shows the importance of the correct choosing of the
-number of ticks on axis. If tick step is too small then its text may
-overlap and becomes unreadable. This code has the example of `Label'
-function. It draws label for axis in specified direction. The text
-position on axis is specified by third argument of `Label' function. If
-it is positive then then text is drawn near the axis maximum, if
-negative then the same takes place near the minimum of axis, if zero -
-then at the center of axis.
-
- [image src="../png/sample2.png" ]
-
-Example of setting up axis range and axis ticks.
-
-
-File: mgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
-
-2.2.3 Curvilinear coordinates
------------------------------
-
-Now let use curvilinear coordinates. In difference from other systems
-of plot creation, MathGL uses textual formulas for connection of the
-old (data) and new (output) coordinates. This allows one to plot in
-arbitrary coordinates. The following code plots the line Y=0, Z=0 in
-Cartesian, polar, parabolic and spiral coordinates:
-new x 50: new y 50: new z 50
-fill y 0.5 0.5: fill x -1 1 # creates data arrays
-origin -1 1 -1
-
-subplot 2 2 0:rotate 60 40
-plot x y z 'r2'
-axis: grid
-text 0 1.3 1 'cartesian'
-
-subplot 2 2 1:rotate 60 40
-axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
-plot x y z 'r2'
-axis: grid
-text 0 1.3 1 'cylindrical'
-
-subplot 2 2 2:rotate 60 40
-axis '2*y*x' 'y*y - x*x' ''
-plot x y z 'r2'
-axis: grid
-text 0 1.3 1 'parabolic'
-
-subplot 2 2 3:rotate 60 40
-axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
-plot x y z 'r2'
-axis: grid
-text 0 1.3 1 'spiral'
-
- [image src="../png/sample3.png" ]
-
-Example of curvilinear coordinates
-
-
-File: mgl_ru.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
-
-2.2.4 Text printing example
----------------------------
-
-MathGL prints text by vector font. There are functions for manual
-specifying of text position (like `Puts') and for its automatic
-selection (like `Label', `legend' and so on). MathGL prints text always
-in specified position even if it lies outside the bounding box. The
-default size of font is specified by command FONTSIZE. However, the
-actual size of output string depends on position of axes (depends on
-functions `SubPlot', `InPlot'). The switching of the font style
-(italic, bold, wire and so on) can be done for the whole string (by
-function parameter) or inside the string. By default MathGL parses
-TeX-like commands for symbols and indexes (see *note Font styles::).
-Example of MathGL font drawing is:
-text 0 1 'Text can be in ASCII and in Unicode'
-text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
-text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
-text 0 -0.2 'Easy to \a{overline} or \u{underline}'
-text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
-text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
-
- [image src="../png/sample4.png" ]
-
-Example of text printing with different font effects
-
-   Another example demonstrate the features of TeX formula parsing.
-text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
-
- [image src="../png/samplee.png" ]
-
-Example of TeX formula parsing
-
-
-File: mgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
-
-2.3 Data handling
-=================
-
-* Menu:
-
-* Array creation::
-* Data changing::
-
-
-File: mgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
-
-2.3.1 Array creation
---------------------
-
-One can put numbers into the data instance by several ways. Let us do
-it for sinus function:
-   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
-
-   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
-
-   * next way is to fill the data by textual formula with the help of
-     `modify' function new a 6
-     modify a 'x^2'
-
-   * or one may fill the array in some interval and modify it later new a 6
-     fill a 0 1
-     modify a 'u^2'
-
-   * or fill the array using current axis range new a 6
-     fill a '(x+1)^2/4'
-
-   * finally it can be loaded from file new s 6: modify s 'x^2'
-     save s 'sqr.dat'    # create file first
-     read a 'sqr.dat'    # load it
-
-   * at this one can read only part of data new s 6: modify s 'x^2'
-     save s 'sqr.dat'    # create file first
-     read a 'sqr.dat' 5  # load it
-
-   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
-data filling by `list' command
-list a 11 12 13 | 21 22 23 | 31 32 33
- or by inline arrays
-copy a [[11,12,13],[21,22,23],[31,32,33]]
- Also data can be filled by formula
-new z 30 40
-fill z 'sin(pi*x)*cos(pi*y)'
- or loaded from file.
-
-   The only non-obvious thing here is using multidimensional arrays in
-C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
-this arrays element `dat[i]' can address the memory in arbitrary place
-you should use the proper function to convert such arrays to `mglData'
-object. For C++ this is functions like `mglData::Set(float **dat, int
-N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
-const float **dat, int N1, int N2'. At this, you should keep in mind
-that `nx=N2' and `ny=N1' after conversion.
-
-
-File: mgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
-
-2.3.2 Data changing
--------------------
-
-MathGL has functions for data processing: differentiating, integrating,
-smoothing and so on. Let us consider some examples. The simplest ones
-are integration and differentiation. The direction in which operation
-will be performed is specified by textual string, which may contain
-symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
-differentiate data along `x' direction; the call of `integrate a 'xy''
-perform the double integration of data along `x' and `y' directions;
-the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
-so on. Example of this operations on 2d array a=x*y is presented in
-code:
-new a 30 40: modify a 'x*y'
-axis 0 0 0 1 1 1
-subplot 2 2 0:rotate 60 40
-surf a: box
-text 0.7 1 1.2 'a(x,y)'
-subplot 2 2 1:rotate 60 40
-diff a 'x': surf a: box
-text 0.7 1 1.2 'da/dx'
-subplot 2 2 2:rotate 60 40
-integrate a 'xy': surf a: box
-text 0.7 1 1.2 '\int da/dx dxdy'
-subplot 2 2 3:rotate 60 40
-diff2 a 'y': surf a: box
-text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
-
- [image src="../png/sample6.png" ]
-
-Example of data differentiation and integration
-
-   Data smoothing (function `Smooth') is more interesting and
-important. This function has 2 main arguments: type of smoothing and
-its direction. Now 4 methods are supported: `0' does nothing for
-delta=0 or approaches data to zero with the step delta, `1' linear
-averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
-averaging by 5 points. Let me demonstrate it for 1d case:
-new y0 30
-modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
-copy y1 y0: smooth y1 1
-copy y2 y0: smooth y2 2
-copy y3 y0: smooth y3 3
-
-plot y0 'k': addlegend 'none' 'k'
-plot y1 'r': addlegend 'line 3' 'r'
-plot y2 'g': addlegend 'line 5' 'g'
-plot y3 'b': addlegend 'quad 5' 'b'
-legend: box
-
- [image src="../png/sample7.png" ]
-
-Example of data smoothing
-
-   Finally one can create new data arrays on base of the existing one:
-extract slice, row or column of data (`SubData'), summarize along some
-of direction(s) (`Sum'), find distribution of data elements (`Hist').
-Note, that all these functions are not thread-safe because they use
-static internal variable for output array. In particular, the using of
-several of them in arguments of the same function will lead to
-unpredictable result.
-
-
-File: mgl_ru.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
-
-2.4 Data plotting
-=================
-
-Let me now show how to plot the data. MathGL generally has 2 types of
-plotting functions. Simple variant requires a single data array for
-plotting, other data (coordinates) are considered uniformly distributed
-in interval MIN*MAX. Second variant requires data arrays for all
-coordinates. It allows one to plot rather complex multivalent curves
-and surfaces (in case of parametric dependencies). Argument setting to
-default values allows one to plot data in standard form. Manual
-arguments setting gives possibility for fine tuning of colors,
-positions and view of graphics. Note, that the call of drawing function
-adds something to picture but does not clear the previous plots (as it
-does in Matlab). Another difference from Matlab is that all setup (like
-transparency, lightning, axis borders and so on) must be specified
-*before* plotting functions.
-
-* Menu:
-
-* Plots for 1D data::
-* Plots for 2D data::
-* Plots for 3D data::
-* Surface transparency::
-
-
-File: mgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
-
-2.4.1 Plots for 1D data
------------------------
-
-Term "1D data" means that data depend on single index (parameter) like
-curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
-generally different types of data representations: simple line plot,
-line plot with filling under it, stairs plot, bar plot and vertical
-lines (*note 1D plotting::). Each type of plotting has similar
-interface. There are 3D version and two 2D versions. One of last
-requires single array. The parameters of line and marks (*note Line
-styles::) are specified by the string argument. If the string parameter
-is `NULL' then solid line with color from palette is used.
-
-   Below I shall show the features of 1D plotting on base of `plot'
-function (*note 1D plotting::). Let us start from sinus plot:
-new y0 50: modify y0 'sin(pi*(2*x-1))'
-subplot 2 2 0
-plot y0: box
- Style of line is not specified in `plot' function. So MathGL uses the
-solid line with first color of palette (this is blue). Next subplot
-shows array Y1 with 2 rows:
-subplot 2 2 1
-new y1 50 2
-modify y1 'sin(pi*2*x-pi)'
-modify y1 'cos(pi*2*x-pi)/2' 1
-plot y1: box
- As previously I did not specify the style of lines. As a result,
-MathGL again uses solid line with next colors in palette (there are
-green and red). Now let us plot a circle on the same subplot. The
-circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
-color of the circle (dark yellow, `Y') and put marks `+' at point
-position:
-new x 50: modify x 'cos(pi*2*x-pi)'
-plot x y0 'Y+'
- Note that solid line is used because I did not specify the type of
-line. The same picture can be achieved by `Plot2' function. Let us draw
-ellipse by orange dash line:
-plot y1(:,0) y(:,1) 'q|'
-
-   Drawing in 3D space is mostly the same. Let us draw spiral with
-default line style. Now its color is 4-th color from palette (this is
-cyan):
-subplot 2 2 2:rotate 60 40
-new z 50: modify z '2*x-1'
-plot x y0 z 'g':box
- Function `Plot3' does 3D curve plot but for single array. Use it to
-put circle marks on the previous plot:
-new y2 10 3
-modify y2 'cos(pi*(2*x-1-y))'
-modify y2 '2*x-1' 2
-plot y2(:,0) y2(:,1) y2(:,2) 'bo '
- Note that line style is empty ` ' here. Usage of other 1D plotting
-functions looks similar:
-subplot 2 2 3:rotate 60 40
-bars x y0 z 'r':box
-
- [image src="../png/sample8.png" ]
-
-Example of 1D data plot
-
-
-File: mgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
-
-2.4.2 Plots for 2D data
------------------------
-
-Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
-same simpler as 1D one. The difference is that the string parameter
-specifies not by line style but by the color scheme of the plot (*note
-Color scheme::). Here I draw attention on 4 most interesting color
-schemes. There is gray scheme where color is changed from black to
-white (string `kw') or from white to black (string `wk'). Another
-scheme is useful for accentuation of negative (by blue color) and
-positive (by red color) regions on plot (string `'BbwrR''). Last one is
-the popular "jet" scheme (string `'BbcyrR'').
-
-   Now I shall show the example of a surface drawing. At first let us
-switch lightning on
-light on
- and draw the surface, considering coordinates x,y to be uniformly
-distributed in interval MIN*MAX
-new a0 50 40
-modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
-subplot 2 2 0:rotate 60 40
-surf a0: box
- Color scheme was not specified. So previous color scheme is used. In
-this case it is default color scheme ("jet") for the first plot. Next
-example is a sphere. The sphere is parametrically specified surface:
-new x 50 40: new y 50 40: new z 50 40
-modify x '0.8*sin(2*pi*x)*sin(pi*y)'
-modify y '0.8*cos(2*pi*x)*sin(pi*y)'
-modify z '0.8*cos(pi*y)'
-subplot 2 2 1:rotate 60 40
-surf x y z 'bbwrr': box
- I set color scheme to `'BbwrR'' that corresponds to red top and blue
-bottom of the sphere.
-
-   Surfaces will be plotted for each of slice of the data if NZ>1. Next
-example draws surfaces for data arrays with NZ=3:
-new a1 50 40 3
-modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
-modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
-modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
-subplot 2 2 2:rotate 60 40
-alpha on
-surf a1: box
- Note, that it may entail a confusion. However, if one will use density
-plot then the picture will look better:
-subplot 2 2 3: rotate 60 40
-dens a1: box
- Note, that the previous color scheme is used in last plots because
-there are no direct specification of the one.
-
- [image src="../png/sample9.png" ]
-
-Example of surface plot for 2D data
-
-   Drawing of other 2D plots is analogous. The only peculiarity is the
-usage of flag `#'. By default this flag switches on the drawing of a
-grid on plot (`grid' or `mesh' for plots in plain or in volume).
-However, for isosurfaces (including surfaces of rotation `axial') this
-flag switches the  face drawing off. Figure becomes wired. The
-following code gives example of flag `#' using (compare with normal
-function drawing as in its description):
-alpha on: light on: light 0 0 0 1
-new a 30 20
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-
-subplot 2 2 0: rotate 40 60
-surf a 'bbcyrr#': box
-subplot 2 2 1: rotate 40 60
-dens a 'bbcyrr#': box
-subplot 2 2 2: rotate 40 60
-cont a 'bbcyrr#': box
-subplot 2 2 3: rotate 40 60
-axial a 'bbcyrr#': box
-
- [image src="../png/samplea.png" ]
-
-Example of 2D data plot with color scheme contained `#' symbol
-
-
-File: mgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
-
-2.4.3 Plots for 3D data
------------------------
-
-Drawing procedures for 3D plot looks similarly to 1D and 2D plots
-described above. There are 3 general types of 3D plots (*note 3D
-plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
-(iii) cloud-like plots. Plots on slice are clear enough - one specifies
-a slice (as its index or as coordinate value) and MathGL draws contour
-lines or density plot on slice plane. Isosurface gives more
-information. Isosurface is 3D analogue of the contour line `cont'. It
-shows the region where data array values exceed specified isosurface
-level. Plot becomes more informative if one adds transparency,
-lightning or sets color scheme depending on coordinates. Generalization
-of isosurface is the cloud-like plot. For this plot the darker color
-and less transparent regions correspond to higher values of data.
-Contrary, the regions with low values are transparent. For plotting of
-the phase of fields (or beams or pulses) one can use isosurface which
-transparency depends on the other data array (see function `surf3a').
-As example of 3D data plots let us draw the Gaussian beam diffraction
-in space. Beam propagates along X axis:
-alpha on: light on
-light 0 0 0 1
-new a 30 30 30: new b 30 30 30
-modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
-modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
-caxis 0 1
-
-subplot 2 2 0: rotate 40 60
-surf3 a 'wgk': box
-subplot 2 2 1: rotate 40 60
-densa a: box: axis
-subplot 2 2 2: rotate 40 60
-cloud a: box
-subplot 2 2 3: rotate 40 60
-surf3a b a 'q': box
-
- [image src="../png/sampleb.png" ]
-
-Example of Gaussian beam diffraction (3D data)
-
-
-File: mgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
-
-2.4.4 Surface transparency
---------------------------
-
-MathGL library has advanced features for setting and handling the
-surface transparency. The simplest way to add transparency is the using
-of function `Alpha'. As a result, all further surfaces (and
-isosurfaces, density plots and so on) become transparent. However,
-their  look can be additionally improved.
-
-   First, the selected surface will be non-transparent if one sets the
-flag `transparent' before the surface drawing and sets it off after the
-drawing.
-
-   Second, the value of transparency can be different from surface to
-surface. To do it just change the value of `alphadef' before the
-drawing of the selected surface. If its value is close to 0 then the
-surface becomes more and more transparent. Contrary, if its value is
-close to 1 then the surface becomes practically non-transparent. This
-is some analogue of `transparent on'.
-
-   Third feature is the changing of the way how the light goes through
-overlapped surfaces. The variable `transptype' defines it. By default
-the usual transparency is used (`transptype 0') - surfaces below is
-less visible than the upper ones. A "glass-like" transparency
-(`transptype 1') has a different look when the surface just decreases
-the background light (the surfaces are commutable in this case).
-
-   A "neon-like" transparency (`transptype 2') has more interesting
-look. In this case a surface is the light source (like a lamp on the
-dark background) and just adds some intensity to the color. At this,
-the library sets automatically the black color for the background and
-changes the default line color to white.
-
-   As example I shall show the variant of plot from *note Plots for 2D
-data:: (grid drawing is disabled) for different types of transparency.
- [image src="../png/type0.png" ]
-
-Example of `TranspType=0'.
-
- [image src="../png/type1.png" ]
-
-Example of `TranspType=1'.
-
- [image src="../png/type2.png" ]
-
-Example of `TranspType=2'.
-
-
-File: mgl_ru.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
-
-2.5 Hints
-=========
-
-In this section I have included some small hints and advices for the
-improving of the quality of plots and for the demonstration of some
-non-trivial features of MathGL library. In contrast to previous
-examples I showed mostly the idea but not the whole drawing function.
-More examples with the source code can be find at
-`http://mathgl.sf.net/' or in section *note Samples::.
-
-* Menu:
-
-* ``Compound'' graphics::
-* Two axes in one plot::
-* Titles for the plot::
-* Changing of the color range::
-* Management of a point cutting::
-* Vector field visualization::
-* Several light sources::
-* CutMin and CutMax features::
-* Mapping visualization::
-* Log-scaled plot::
-* Nonlinear fitting hints::
-* PDE solving hints::
-* Stereo image::
-
-
-File: mgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
-
-2.5.1 "Compound" graphics
--------------------------
-
-As I noted above, MathGL functions (except the special one, like `clf')
-do  not erase the previous plotting but just add the new one. It allows
-one to draw "compound" plots easily. For example, popular Matlab
-command `surfc' can be emulated in MathGL by 2 calls:
-surf a
-cont a 0 7 -1   # draw contours at z = -1
- Here A is 2-dimensional data for the plotting, `-1' is the value of
-z-coordinate at which the contour should be plotted (at the bottom in
-this example). Analogously, one can draw density plot instead of
-contour lines and so on.
-
-   Another nice plot is contour lines plotted directly on the surface:
-light on        # switch on light for the surface
-surf a 'bbcyrr' # select 'jet' colormap for the surface
-cont a 'y'      # and yellow color for contours
- The possible difficulties arise in black&white case, when the color of
-the surface can be close to the color of a contour line. In that case I
-may suggest the following code:
-light on        # switch on light for the surface
-surf a 'kw'     # select 'gray' colormap for the surface
-caxis -1 0      # first draw for darker surface colors
-conta 'w'       # white contours
-caxis 0 1       # now draw for brighter surface colors
-cont a 'k'      # black contours
- The idea is to divide the color range on 2 parts (dark and bright) and
-to select the contrasting color for contour lines for each of part.
-
-   Similarly, one can plot flow thread over density plot of vector
-field amplitude (this is another amusing plot from Matlab) and so on.
-The list of compound graphics can be prolonged but I hope that the
-general idea is clear.
-
-
-File: mgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
-
-2.5.2 Two axes in one plot
---------------------------
-
-Developing the previous hint one can make a plot with 2 or more axes.
-The idea is that the change of settings does not influence on the
-already drawn graphics. So, for 2-axes plot let us set the first axis
-and draw everything concerning it. Then let us setup the second axis
-and draw things for the second axis. The corresponding code is (*note
-2-axes sample::):
-# set up first axis
-axis -1 -1 1 1: origin -1 -1
-axis:fplot 'sin(pi*x)'      # draw something in first axis
-# set up second axis
-axis 0 0 1 1: origin 1 1
-axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
- Note, that the first and the second axes look better if being placed
-in different corners. In the code presented above the first axis is
-placed in the left-bottom corner, and the second one is placed in the
-right-top corner.
-
-
-File: mgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
-
-2.5.3 Titles for the plot
--------------------------
-
-The printing of nice titles for the plot is not so trivial task in
-general case. The problem is that the rotation and aspect change lead
-to different looks for titles of different subplots. So, the resulting
-look is not so good as it could be. The solution is simple - to print
-titles exactly after `subplot' call and before any rotation, aspect
-change and so on! Analogously, the title for the whole picture looks
-better if it is printed first (before any `subplot' calls).
-Alternatively you can use function `title' for plotting title for the
-picture at any time.
-
-
-File: mgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
-
-2.5.4 Changing of the color range
----------------------------------
-
-By default (for the user comfort), the color range is set equal to
-z-range of the plot. However, there are different ranges. So, one can
-obtain amusing plot by the change of color range manually. For example,
-there are plots with one-color bottom (or top) or practically bi-color
-picture and so on.
-
-   For example, compare 2 surfaces:
-subplot 2 1 0
-surf a          # usual coloring range
-subplot 2 1 1
-caxis 0 1
-surf a          # bottom of the surface have one-colour filling
-
-
-File: mgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
-
-2.5.5 Management of a point cutting
------------------------------------
-
-Sometimes an experimental or numerical surface has outstanding points.
-Visualization of such surface will lead to the hole(s) in place of such
-points. The standard method of "fighting" - to change data values - is
-not always good and is not so convenient. MathGL library has another
-method - to set variable `cut off'. As a consequence, all outstanding
-points will be projected on the bounding box.
-
-   Such method is good not only for outstanding points but also for the
-case when one need to plane the bottom or the top of the plot. Exactly
-such case is demonstrated in the code:
-new a 20 30     # create some data
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-# set lower border above the data minimal value
-axis -1 -1 0 1 1 1:rotate 40 60
-cut off         # set off cutting flag
-surf a          # and draw the surface
- It is an interesting result, is not it?
-
-
-File: mgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
-
-2.5.6 Vector field visualization
---------------------------------
-
-Vector field visualization (especially in 3d case `vect3' or `vectc')
-may look tangly - there are too many overlapping lines. I may suggest 2
-ways to solve this problem. The first one is to change `meshnum' for
-decreasing the number of hachures. The second way is to use the flow
-thread chart `Flow'. Unfortunately, I don't know any other methods to
-visualize 3d vector field. If you know any, e-mail me and I shall add
-it to MatGL.
-
-
-File: mgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
-
-2.5.7 Several light sources
----------------------------
-
-In contrast to the most of other programs, MathGL supports several (up
-to 10) light sources. Moreover, the color each of them can be
-different: white (this is usual), yellow, red, cyan, green and so on.
-The use of several light sources may be interesting for the
-highlighting of some peculiarities of the plot or just to make an
-amusing picture. Note, each light source can be switched on/off
-individually (*note Several light sample::).
-
-
-File: mgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
-
-2.5.8 CutMin and CutMax features
---------------------------------
-
-MathGL library has a feature for cutting of points in some region
-CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
-graphics. Moreover, this cutting may help to show an internal structure
-of an object (like `isocaps' plot in Matlab). For example, let us use
-the standard 3D data array and show its interior (*note CutMinMax
-sample::).
-
-new c 61 51 40      # create the data
-new v 10: fill v -0.5 1
-modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
-cut 0 -1 -1 1 0 1.1
-rotate 40 60:       surf3 c -0.5 'bbcyrr'
-contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
-contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
-
-   One can also exclude points from arbitrary area in space. This area
-defined by textual formula `cut' (*note Cutting::). The algorithm is
-the same as shown for "rectangular cutting".
-
-
-File: mgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
-
-2.5.9 Mapping visualization
----------------------------
-
-Sometime ago I worked with mapping and have a question about its
-visualization. Let me remember you that mapping is some transformation
-rule for one set of number to another one. The 1d mapping is just an
-ordinary function - it takes a number and transforms it to another one.
-The 2d mapping (which I used) is a pair of functions which take 2
-numbers and transform them to another 2 ones. Except general plots
-(like `surfc', `surfa') there is a special plot - Arnold diagram. It
-shows the area which is the result of mapping of some initial area
-(usually square).
-
-   I tried to make such plot in `map'. It shows the set of points or
-set of faces, which final position is the result of mapping. At this,
-the color gives information about their initial position and the height
-describes Jacobian value of the transformation. Unfortunately, it looks
-good only for the simplest mapping but for the real multivalent
-quasi-chaotic mapping it produces a confusion. So, use it if you like
-:).
-
-
-File: mgl_ru.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
-
-2.5.10 Log-scaled plot
-----------------------
-
-Log-scaled plot can be drawn by 2 steps. First, one should change the
-scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
-y-axis will be log-scaled). Second, one should set logarithmic scale
-for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
-should check (or change) the axis ranges and origin so that their
-values to be positive. For example of log-log plot *note Log-log
-sample::.
-
-
-File: mgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
-
-2.5.11 Nonlinear fitting hints
-------------------------------
-
-Nonlinear fitting is rather simple. All that you need is the data to
-fit, the approximation formula and the list of coefficients to fit
-(better with its initial guess values). Let me demonstrate it on the
-following simple example (*note Fitting sample::). First, let us use
-sin function with some random noise:
-new rnd 100: new idl 50 # data to be fitted and ideal data
-modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
-modify idl '0.3+sin(4*pi*x)'
- and plot it to see that data we will fit
-axis -1 -2 1 2
-plot rnd '. ':plot idl 'b'
-box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
-
-   The next step is the fitting itself. For that let me specify an
-initial values INI for coefficients `abc' and do the fitting for
-approximation formula `a+b*sin(c*x)'
-new res     # The data for found formula
-fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
- Now display it
-plot res 'r'
-text -1 -1.3 'fitted:' 'L:r' -1
-putsfit 0 -1.8 'y = ' 'C:r' -1
-
-   NOTE! the fitting results may have strong dependence on initial
-values for coefficients due to algorithm features. The problem is that
-in general case there are several local 'optimums' for coefficients and
-the program returns only first found one! There are no guaranties that
-it will be the best. Try for example to set `ini = [0, 0, 0]' in the
-code above.
-
-
-File: mgl_ru.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
-
-2.5.12 PDE solving hints
-------------------------
-
-Solving of Partial Differential Equations (PDE, including beam tracing)
-and ray tracing (or finding particle trajectory) are more or less
-common task. So, MathGL have several functions for that. There are
-`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
-in 2D case. Note, that these functions take "Hamiltonian" or equations
-as string values. And I don't plan now to allow one to use user-defined
-functions. There are 2 reasons: the complexity of corresponding
-interface; and the basic nature of used methods which are good for
-samples but may not good for serious scientific calculations.
-
-   The ray tracing can be done by `ray' function. Really ray tracing
-equation is Hamiltonian equation for 3D space. So, the function can be
-also used for finding a particle trajectory (i.e. solve Hamiltonian
-ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
-First of all, it is Hamiltonian which defined the media (or the
-equation) you are planning to use. The Hamiltonian is defined by string
-which may depend on coordinates `x', `y', `z', time `t' (for particle
-dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
-define the initial conditions for coordinates and momentums at `t'=0
-and set the integrations step (default is 0.1) and its duration
-(default is 10). The Runge-Kutta method of 4-th order is used for
-integration.
-new re 128:new im 128
-ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
-plot r(0) r(1)
- This example calculate the reflection from linear layer (media with
-Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
-The resulting array have 7 columns which contain data for
-{x,y,z,p,q,v,t}.
-
-   The solution of PDE is a bit more complicated. As previous you have
-to specify the equation as pseudo-differential operator \hat H(x,
-\nabla) which is called sometime as "Hamiltonian" (for example, in beam
-tracing). As previously, it is defined by string which may depend on
-coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
-`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
-coordinate is `z' in all cases. So that, the equation look like du/dz =
-ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
-`u'=|u| allows one to solve nonlinear problems too. For example, for
-nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
-you may specify imaginary part for wave absorption, like `ham = 'p^2 +
-i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
-Hre+i*Him).
-
-   Next step is specifing the initial conditions at `z'=`Min.z'. The
-function need 2 arrays for real and for imaginary part. Note, that
-coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
-the data arrays should have corresponding scales. Finally, you may set
-the integration step and paramter k0=k_0. Also keep in mind, that
-internally the 2 times large box is used (for suppressing numerical
-reflection from boundaries) and the equation should well defined even
-in this extended range.
-
-   Final comment is concerning the possible form of pseudo-differential
-operator H. At this moment, simplified form of operator H is supported
-- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
-2D case this operator is effectively H = f(p,z) + g(x,z,u). However
-commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
-
-   So, for example let solve the equation for beam deflected from
-linear layer and absorbed later. The operator will have the form
-`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
-\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
-typical equation for Electron Cyclotron (EC) absorption in magnetized
-plasmas. For initial conditions let me select the beam with plane phase
-front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
-PDE sample::):
-new re 128: new im 128
-fill re 'exp(-48*(x+0.7)^2)'
-pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
-transpose a 'yxz'
-caxis 0 1
-dens a 'wyrRk'
-
-   The last example is example of beam tracing. Beam tracing equation
-is special kind of PDE equation written in coordinates accompanied to a
-ray. Generally this is the same parameters and limitation as for PDE
-solving but the coordinates are defined by the ray and by parameter of
-grid width W in direction transverse the ray. So, you don't need to
-specify the range of coordinates. *BUT* there is limitation. The
-accompanied coordinates are well defined only for smooth enough rays,
-i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
-|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
-grid width: K>>w. So, you may receive incorrect results if this
-condition will be broken.
-
-   You may use following code for obtaining the same solution as in
-previous example:
-new re 128: new im 128
-define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
-ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
-# now start beam tracing
-fill re 'exp(-48*x^2)'
-new xx: new yy
-qo2d a $1 re im r 1 30 xx yy
-caxis 0 1
-dens xx yy a 'wyrRk'
-
-
-File: mgl_ru.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
-
-2.5.13 Stereo image
--------------------
-
-One can easily create stereo image in MathGL. Stereo image can be
-produced by making two subplots with slightly different rotation
-angles. The corresponding code looks like this (*note Stereo image
-sample::):
-subplot 2 1 0   # left image
-rotate 40 60+3
-# draw something here
-subplot 2 1 1   # right image
-rotate 40 60-3
-# draw the same here
-
-
-File: mgl_ru.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
-
-3 Примеры использования MathGL
-**************************************************
-
-Эта глава содержит множество примеров кода для всех типов графиков,
-наиболее важных возможностей библиотеки и советов. Аналогичные примеры
-(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
-
-* Menu:
-
-* 1D plotting samples::
-* 2D plotting samples::
-* 3D plotting samples::
-* Dual plotting samples::
-* Basic features::
-* Additional features::
-* Advanced features::
-
-
-File: mgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
-
-3.1 Примеры 1D графиков
-======================================
-
-* Menu:
-
-* Plot sample::
-* Radar sample::
-* Tens sample::
-* Area sample::
-* Area gradient sample::
-* Bars sample::
-* Bars 2 colors sample::
-* Bars above sample::
-* Bars fall sample::
-* Barh sample::
-* Step sample::
-* Stem sample::
-* Region sample::
-* Region gradient sample::
-* Error sample::
-* BoxPlot sample::
-* Mark sample::
-* TextMark sample::
-* Tube sample::
-* Text sample::
-* Torus sample::
-* Chart sample::
-* Pie chart sample::
-* Ring chart sample::
-
-
-File: mgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
-
-3.1.1 Plot - пример использования
-----------------------------------------------------
-
- [image src="../png/plot.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-box
-plot y
-
-
-File: mgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
-
-3.1.2 Radar - пример использования
------------------------------------------------------
-
- [image src="../png/radar.png" ]
-
-new y 10 3
-modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
-radar y '#'
-
-
-File: mgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
-
-3.1.3 Tens - пример использования
-----------------------------------------------------
-
- [image src="../png/tens.png" ]
-
-new y 50
-new c 50
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify c 'sin(2*pi*x)'
-box
-tens y c
-
-
-File: mgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
-
-3.1.4 Area - пример использования
-----------------------------------------------------
-
- [image src="../png/area.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-origin 0 0
-box
-area y
-
-
-File: mgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
-
-3.1.5 Area с градиентной заливкой - пример использования
------------------------------------------------------------------------------------------------
-
- [image src="../png/area_2.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-origin 0 0
-box
-area y 'cbgGyr'
-
-
-File: mgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
-
-3.1.6 Bars - пример использования
-----------------------------------------------------
-
- [image src="../png/bars.png" ]
-
-new y 10 3
-modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-origin 0 0
-box
-bars y
-
-
-File: mgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
-
-3.1.7 Bars (2 цвета) - пример использования
--------------------------------------------------------------------
-
- [image src="../png/bars_2.png" ]
-
-new y 10 3
-modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-origin 0 0
-box
-bars y 'cbgGyr'
-
-
-File: mgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
-
-3.1.8 Bars (один над другим) - пример использования
------------------------------------------------------------------------------------
-
- [image src="../png/bars_a.png" ]
-
-new y 10 3
-modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-origin 0 0
-box
-bars y 'a'
-
-
-File: mgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
-
-3.1.9 Bars "водопад" - пример использования
----------------------------------------------------------------------
-
- [image src="../png/bars_f.png" ]
-
-new y 10 3
-modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-origin 0 0
-box
-bars y 'f'
-
-
-File: mgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
-
-3.1.10 Barh - пример использования
------------------------------------------------------
-
- [image src="../png/barh.png" ]
-
-new y 10 3
-modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-origin 0 0
-box
-barh y
-
-
-File: mgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
-
-3.1.11 Step - пример использования
------------------------------------------------------
-
- [image src="../png/step.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-box
-step y
-
-
-File: mgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
-
-3.1.12 Stem - пример использования
------------------------------------------------------
-
- [image src="../png/stem.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-origin 0 0
-box
-stem y 'o'
-
-
-File: mgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
-
-3.1.13 Region - пример использования
--------------------------------------------------------
-
- [image src="../png/region.png" ]
-
-new y1 50
-new y2 50
-modify y1 '0.3*sin(2*pi*x)'
-modify y2 '0.5+0.3*cos(2*pi*x)'
-box
-region y1 y2 'r'
-plot y1 'k2'
-plot y2 'k2'
-
-
-File: mgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
-
-3.1.14 Region с градиентной заливкой - пример использования
---------------------------------------------------------------------------------------------------
-
- [image src="../png/region_2.png" ]
-
-new y1 50
-new y2 50
-modify y1 '0.3*sin(2*pi*x)'
-modify y2 '0.5+0.3*cos(2*pi*x)'
-box
-region y1 y2 'yr'
-plot y1 'k2'
-plot y2 'k2'
-
-
-File: mgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
-
-3.1.15 Error - пример использования
-------------------------------------------------------
-
- [image src="../png/error.png" ]
-
-new y 50
-new x0 10
-new y0 10
-new ex 10
-new ey 10
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify x0 '2*x-1 + 0.1*rnd-0.05'
-modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
-modify ey '0.2'
-modify ex '0.1'
-box
-plot y
-error x0 y0 ex ey 'ko'
-
-
-File: mgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
-
-3.1.16 BoxPlot - пример использования
---------------------------------------------------------
-
- [image src="../png/boxplot.png" ]
-
-new a 10 7
-modify a '(2*rnd-1)^3/2'
-box
-boxplot a
-plot a ' ko'
-
-
-File: mgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
-
-3.1.17 Mark - пример использования
------------------------------------------------------
-
- [image src="../png/mark.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-new y1 50
-modify y1 '0.5+0.3*cos(2*pi*x)'
-box
-mark y y1 'bs'
-
-
-File: mgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
-
-3.1.18 TextMark - пример использования
----------------------------------------------------------
-
- [image src="../png/textmark.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-new y1 50
-modify y1 '0.5+0.3*cos(2*pi*x)'
-box
-textmark y y1 '\gamma'
-
-
-File: mgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
-
-3.1.19 Tube - пример использования
------------------------------------------------------
-
- [image src="../png/tube.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-rotate 40 60
-light on
-box
-tube y 0.05
-
-
-File: mgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
-
-3.1.20 Text - пример использования
------------------------------------------------------
-
- [image src="../png/text.png" ]
-
-new y 50 3
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-box
-plot y(:,0)
-text y 'This is very long string drawn along a curve' ':k'
-text y 'Another string drawn above a curve' 'T:r'
-
-
-File: mgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
-
-3.1.21 Torus - пример использования
-------------------------------------------------------
-
- [image src="../png/torus.png" ]
-
-new y1 50
-new y2 50
-modify y1 '0.5+0.3*cos(2*pi*x)'
-modify y2 '0.3*sin(2*pi*x)'
-rotate 40 60
-light on
-box
-torus y1 y2 'pz'
-
-
-File: mgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
-
-3.1.22 Chart - пример использования
-------------------------------------------------------
-
- [image src="../png/chart.png" ]
-
-new ch 7 2
-modify ch 'rnd+0.1'
-rotate 40 60
-light on
-box
-chart ch
-
-
-File: mgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
-
-3.1.23 Pie chart - пример использования
-----------------------------------------------------------
-
- [image src="../png/pie_chart.png" ]
-
-new ch 7 2
-modify ch 'rnd+0.1'
-rotate 40 60
-light on
-axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
-box
-chart ch 'bgr cmy#'
-
-
-File: mgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
-
-3.1.24 Ring chart - пример использования
------------------------------------------------------------
-
- [image src="../png/ring_chart.png" ]
-
-new ch 7 2
-modify ch 'rnd+0.1'
-rotate 40 60
-light on
-axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
-box
-chart ch 'bgr cmy#'
-
-
-File: mgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
-
-3.2 Примеры 2D графиков
-======================================
-
-* Menu:
-
-* Surf sample::
-* Transparent surface sample::
-* Surface in fog sample::
-* Sharp colors sample::
-* Mesh sample::
-* Fall sample::
-* Belt sample::
-* Tile sample::
-* Boxs sample::
-* Dens sample::
-* Cont sample::
-* ContF sample::
-* ContD sample::
-* Axial sample::
-* Grad sample::
-
-
-File: mgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
-
-3.2.1 Surf - пример использования
-----------------------------------------------------
-
- [image src="../png/surf.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-surf a
-
-
-File: mgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
-
-3.2.2 Transparent surface - пример использования
--------------------------------------------------------------------
-
- [image src="../png/surf_alpha.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-alpha on
-box
-surf a
-
-
-File: mgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
-
-3.2.3 Surface in fog - пример использования
---------------------------------------------------------------
-
- [image src="../png/surf_fog.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-fog 1
-box
-surf a
-
-
-File: mgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
-
-3.2.4 Sharp colors - пример использования
-------------------------------------------------------------
-
- [image src="../png/surf_sl.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-surf a 'BbcyrR|'
-
-
-File: mgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
-
-3.2.5 Mesh - пример использования
-----------------------------------------------------
-
- [image src="../png/mesh.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-box
-mesh a
-
-
-File: mgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
-
-3.2.6 Fall - пример использования
-----------------------------------------------------
-
- [image src="../png/fall.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-box
-fall a
-
-
-File: mgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
-
-3.2.7 Belt - пример использования
-----------------------------------------------------
-
- [image src="../png/belt.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-belt a
-
-
-File: mgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
-
-3.2.8 Tile - пример использования
-----------------------------------------------------
-
- [image src="../png/tile.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-tile a
-
-
-File: mgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
-
-3.2.9 Boxs - пример использования
-----------------------------------------------------
-
- [image src="../png/boxs.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-origin 0 0 0
-box
-boxs a
-
-
-File: mgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
-
-3.2.10 Dens - пример использования
------------------------------------------------------
-
- [image src="../png/dens.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-dens a
-colorbar
-
-
-File: mgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
-
-3.2.11 Cont - пример использования
------------------------------------------------------
-
- [image src="../png/cont.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-box
-cont a
-
-
-File: mgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
-
-3.2.12 ContF - пример использования
-------------------------------------------------------
-
- [image src="../png/contf.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-contf a
-
-
-File: mgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
-
-3.2.13 ContD - пример использования
-------------------------------------------------------
-
- [image src="../png/contd.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-var v 9 -1 1
-box
-contd v a
-colorbar v
-
-
-File: mgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
-
-3.2.14 Axial - пример использования
-------------------------------------------------------
-
- [image src="../png/axial.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-alpha on
-box
-axial a
-
-
-File: mgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
-
-3.2.15 Grad - пример использования
------------------------------------------------------
-
- [image src="../png/grad.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box:alpha on:dens a
-grad a
-
-
-File: mgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
-
-3.3 Примеры 3D графиков
-======================================
-
-* Menu:
-
-* Surf3 sample::
-* Cloud sample::
-* CloudP sample::
-* Dens3 sample::
-* Cont3 sample::
-* ContF3 sample::
-* Cont projection sample::
-* Dens projection sample::
-* CutMinMax sample::
-* Isocaps sample::
-* CutOff sample::
-
-
-File: mgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
-
-3.3.1 Surf3 - пример использования
------------------------------------------------------
-
- [image src="../png/surf3.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-light on
-alpha on
-box
-surf3 a
-
-
-File: mgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
-
-3.3.2 Cloud - пример использования
------------------------------------------------------
-
- [image src="../png/cloud.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-alpha on
-box
-cloud a 'wyrRk'
-
-
-File: mgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
-
-3.3.3 CloudP - пример использования
-------------------------------------------------------
-
- [image src="../png/cloudp.png" ]
-
-Not available.
-
-
-File: mgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
-
-3.3.4 Dens3 - пример использования
------------------------------------------------------
-
- [image src="../png/densa.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-alpha on
-origin 0 0 0
-box
-densa a
-axis
-
-
-File: mgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
-
-3.3.5 Cont3 - пример использования
------------------------------------------------------
-
- [image src="../png/conta.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-box
-conta a
-
-
-File: mgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
-
-3.3.6 ContF3 - пример использования
-------------------------------------------------------
-
- [image src="../png/contfa.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-light on
-box
-contfa a
-
-
-File: mgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
-
-3.3.7 Cont projection - пример использования
----------------------------------------------------------------
-
- [image src="../png/cont_xyz.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-box
-sum s a 'x'
-contx s '' -1
-sum s a 'y'
-conty s '' 1
-sum s a 'z'
-contz s '' -1
-
-
-File: mgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
-
-3.3.8 Dens projection - пример использования
----------------------------------------------------------------
-
- [image src="../png/dens_xyz.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-box
-sum s a 'x'
-densx s '' -1
-sum s a 'y'
-densy s '' 1
-sum s a 'z'
-densz s '' -1
-
-
-File: mgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
-
-3.3.9 CutMinMax - пример использования
----------------------------------------------------------
-
- [image src="../png/cutminmax.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-light on
-alpha on
-cut 0 -1 -1 1 0 1
-box
-surf3 a
-
-
-File: mgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
-
-3.3.10 "Isocaps" - пример использования
-----------------------------------------------------------
-
- [image src="../png/cutminmax2.png" ]
-
-new a 61 51 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-light on
-cut 0 -1 -1 1 0 1.1
-box
-surf3 a -1
-contf3 a 'x' -1
-contf3 a 'y' -1
-contf3 a 'z' 0
-contf3 a 'z' 39
-
-
-File: mgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
-
-3.3.11 CutOff - пример использования
--------------------------------------------------------
-
- [image src="../png/surf3_cutoff.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-light on
-alpha on
-cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
-box
-surf3 a
-
-
-File: mgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
-
-3.4 Примеры парных/векторных графиков
-===================================================================
-
-* Menu:
-
-* SurfC sample::
-* SurfA sample::
-* TileS sample::
-* Map sample::
-* Traj sample::
-* Vect sample::
-* VectL sample::
-* VectC sample::
-* Flow sample::
-* Pipe sample::
-* Dew sample::
-* Surf3C sample::
-* Surf3A sample::
-* Vect 3D sample::
-* VectL 3D sample::
-* VectC 3D sample::
-* Flow 3D sample::
-* Pipe 3D sample::
-* Crust sample::
-* Dots sample::
-
-
-File: mgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
-
-3.4.1 SurfC - пример использования
------------------------------------------------------
-
- [image src="../png/surfc.png" ]
-
-new a 50 40
-new b 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-surfc a b
-
-
-File: mgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
-
-3.4.2 SurfA - пример использования
------------------------------------------------------
-
- [image src="../png/surfa.png" ]
-
-new a 50 40
-new b 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-alpha on
-box
-surfa a b
-
-
-File: mgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
-
-3.4.3 TileS - пример использования
------------------------------------------------------
-
- [image src="../png/tiles.png" ]
-
-new a 50 40
-new b 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-tile a b
-
-
-File: mgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
-
-3.4.4 Map - пример использования
----------------------------------------------------
-
- [image src="../png/map.png" ]
-
-new a 50 40
-new b 50 40
-text 0 0 '\to'
-zrange -2 2
-subplot 2 1 0
-text 0 1.1 '\{x, y\}' '' -2
-box
-fill a 'x'
-fill b 'y'
-map a b 'brgk' 0 0
-subplot 2 1 1
-text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
-box
-fill a '(x^3+y^3)/2'
-fill b '(x-y)/2'
-map a b 'brgk' 0 0
-
-
-File: mgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
-
-3.4.5 Traj - пример использования
-----------------------------------------------------
-
- [image src="../png/traj.png" ]
-
-new y 50 3
-new x 50
-new y1 50
-new y2 50
-modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
-modify y 'sin(2*pi*x)' 1
-modify y 'cos(2*pi*x)' 2
-fill x -1 1
-modify y1 '0.5+0.3*cos(2*pi*x)'
-modify y2 '0.3*sin(2*pi*x)'
-box
-plot x y
-traj x y y1 y2
-
-
-File: mgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
-
-3.4.6 Vect - пример использования
-----------------------------------------------------
-
- [image src="../png/vect.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-vect a b
-
-
-File: mgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
-
-3.4.7 VectL - пример использования
------------------------------------------------------
-
- [image src="../png/vectl.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-vectl a b
-
-
-File: mgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
-
-3.4.8 VectC - пример использования
------------------------------------------------------
-
- [image src="../png/vectc.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-vectc a b
-
-
-File: mgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
-
-3.4.9 Flow - пример использования
-----------------------------------------------------
-
- [image src="../png/flow.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-flow a b
-
-
-File: mgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
-
-3.4.10 Pipe - пример использования
------------------------------------------------------
-
- [image src="../png/pipe.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-light on
-box
-pipe a b
-
-
-File: mgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
-
-3.4.11 Dew - пример использования
-----------------------------------------------------
-
- [image src="../png/dew.png" ]
-
-new a 20 30
-new b 20 30
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-light on
-dew a b
-
-
-File: mgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
-
-3.4.12 Surf3C - пример использования
--------------------------------------------------------
-
- [image src="../png/surf3c.png" ]
-
-new a 60 50 40
-new b 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-modify b '1-2*tanh(4*(x+y-1)^2)'
-rotate 40 60
-light on
-alpha on
-box
-surf3c a b
-
-
-File: mgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
-
-3.4.13 Surf3A - пример использования
--------------------------------------------------------
-
- [image src="../png/surf3a.png" ]
-
-new a 60 50 40
-new b 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-modify b '1-2*tanh(4*(x+y-1)^2)'
-rotate 40 60
-light on
-alpha on
-box
-surf3a a b
-
-
-File: mgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
-
-3.4.14 Vect 3D - пример использования
---------------------------------------------------------
-
- [image src="../png/vect3.png" ]
-
-new ex 10 10 10
-new ey 10 10 10
-new ez 10 10 10
-fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
-rotate 40 60
-box
-vect ex ey ez 'bwr'
-
-
-File: mgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
-
-3.4.15 VectL 3D - пример использования
----------------------------------------------------------
-
- [image src="../png/vectl3.png" ]
-
-new ex 10 10 10
-new ey 10 10 10
-new ez 10 10 10
-fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
-rotate 40 60
-box
-vectl ex ey ez 'bwr'
-
-
-File: mgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
-
-3.4.16 VectC 3D - пример использования
----------------------------------------------------------
-
- [image src="../png/vectc3.png" ]
-
-new ex 10 10 10
-new ey 10 10 10
-new ez 10 10 10
-fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
-rotate 40 60
-box
-vectc ex ey ez 'bwr'
-
-
-File: mgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
-
-3.4.17 Flow 3D - пример использования
---------------------------------------------------------
-
- [image src="../png/flow3.png" ]
-
-new ex 30 30 30
-new ey 30 30 30
-new ez 30 30 30
-fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
-rotate 40 60
-box
-flow ex ey ez 'bwr'
-
-
-File: mgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
-
-3.4.18 Pipe 3D - пример использования
---------------------------------------------------------
-
- [image src="../png/pipe3.png" ]
-
-new ex 10 10 10
-new ey 10 10 10
-new ez 10 10 10
-fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
-fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
-rotate 40 60
-light on
-box
-pipe ex ey ez 'bwr'
-
-
-File: mgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
-
-3.4.19 Crust - пример использования
-------------------------------------------------------
-
- [image src="../png/crust.png" ]
-
-read a 'hotdogs.pts'
-norm a -1 1 on
-rotate 40 60
-light on
-box
-crust a 'p'
-
-
-File: mgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
-
-3.4.20 Dots - пример использования
------------------------------------------------------
-
- [image src="../png/dots.png" ]
-
-read a 'hotdogs.pts'
-norm a -1 1 on
-rotate 40 60
-box
-dots a 'p'
-
-
-File: mgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
-
-3.5 Базовые возможности
-=========================================
-
-* Menu:
-
-* 1D plot sample::
-* 2D plot sample::
-* 3D plot sample::
-* Line styles sample::
-* Arrow styles sample::
-* Text styles sample::
-* TeX parsing sample::
-* Font faces sample::
-* Colors sample::
-* Color schemes sample::
-* Normal transparency::
-* Glass-like transparency::
-* Lamp-like transparency::
-
-
-File: mgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
-
-3.5.1 Пример графиков 1D данных
----------------------------------------------------
-
- [image src="../png/sample8.png" ]
-
-new y0 50: modify y0 'sin(pi*(2*x-1))'
-subplot 2 2 0
-plot y0: box
-
-subplot 2 2 1
-new y1 50 2
-modify y1 'sin(pi*2*x-pi)'
-modify y1 'cos(pi*2*x-pi)/2' 1
-plot y1: box
-
-new x 50: modify x 'cos(pi*2*x-pi)'
-plot x y0 'Y+'
-plot y1(:,0) y(:,1) 'q|'
-
-subplot 2 2 2:rotate 60 40
-new z 50:   modify z '2*x-1'
-plot x y0 z 'g':box
-new y2 10 3
-modify y2 'cos(pi*(2*x-1-y))'
-modify y2 '2*x-1' 2
-plot y2(:,0) y2(:,1) y2(:,2) 'bo '
-
-subplot 2 2 3:rotate 60 40
-bars x y0 z 'r':box
-
-
-File: mgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
-
-3.5.2 Пример графиков 2D данных
----------------------------------------------------
-
- [image src="../png/sample9.png" ]
-
-light on
-
-new a0 50 40
-modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
-subplot 2 2 0:rotate 60 40
-surf a0: box
-
-new x 50 40: new y 50 40: new z 50 40
-modify x '0.8*sin(2*pi*x)*sin(pi*y)'
-modify y '0.8*cos(2*pi*x)*sin(pi*y)'
-modify z '0.8*cos(pi*y)'
-subplot 2 2 1:rotate 60 40
-surf x y z 'bbwrr': box
-
-new a1 50 40 3
-modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
-modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
-modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
-subplot 2 2 2:rotate 60 40
-alpha on
-surf a1: box
-
-subplot 2 2 3: rotate 60 40
-dens a1: box
-
-
-File: mgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
-
-3.5.3 Пример графиков 3D данных
----------------------------------------------------
-
- [image src="../png/sampleb.png" ]
-
-alpha on: light on
-light 0 0 0 1
-new a 30 30 30: new b 30 30 30
-modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
-modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
-caxis 0 1
-
-subplot 2 2 0: rotate 40 60
-surf3 a 'wgk': box
-subplot 2 2 1: rotate 40 60
-densa a: box: axis
-subplot 2 2 2: rotate 40 60
-cloud a: box
-subplot 2 2 3: rotate 40 60
-surf3a b a 'q': box
-
-
-File: mgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
-
-3.5.4 Пример стилей линий и маркеров
---------------------------------------------------------------
-
- [image src="../png/sample5.png" ]
-
-NOT AVAILABLE
-
-
-File: mgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
-
-3.5.5 Пример стилей стрелок
-----------------------------------------------
-
- [image src="../png/sampled.png" ]
-
-NOT AVAILABLE
-
-
-File: mgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
-
-3.5.6 Пример стилей текста
---------------------------------------------
-
- [image src="../png/sample4.png" ]
-
-text 0 1 'Text can be in ASCII and in Unicode'
-text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
-text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
-text 0 -0.2 'Easy to \a{overline} or \u{underline}'
-text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
-text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
-
-
-File: mgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
-
-3.5.7 Пример TeX формулы
--------------------------------------
-
- [image src="../png/samplee.png" ]
-
-text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
-
-
-File: mgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
-
-3.5.8 Примеры начертаний шрифта
-------------------------------------------------------
-
- [image src="../png/fonts.png" ]
-
-NOT AVAILABLE
-
-
-File: mgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
-
-3.5.9 Примеры цветов
----------------------------------
-
- [image src="../png/colors.png" ]
-
-#LENUQ
-facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
-facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
-facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
-facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
-facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
-#lenuq
-facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
-facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
-facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
-facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
-facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
-#CMYkP
-facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
-facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
-facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
-facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
-facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
-#lenuq
-facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
-facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
-facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
-facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
-facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
-#BGRHW
-facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
-facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
-facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
-facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
-facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
-#bgrhw
-facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
-facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
-facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
-facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
-facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
-#brighted
-facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
-facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
-facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
-facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
-facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
-
-
-File: mgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
-
-3.5.10 Примеры цветовых схем
------------------------------------------------
-
- [image src="../png/color_schemes.png" ]
-
-new a 256 2: fill a 'x'
-subplot 2 10 0 0.2:dens a 'kw'
-text -1.4 -0.3 'kw' '' -8
-subplot 2 10 1 0.2:dens a 'wk'
-text -1.4 -0.3 'wk' '' -8
-subplot 2 10 2 0.2:dens a 'kHCcw'
-text -1.4 -0.3 'kHCcw' '' -8
-subplot 2 10 3 0.2:dens a 'kBbcw'
-text -1.4 -0.3 'kBbcw' '' -8
-subplot 2 10 4 0.2:dens a 'kRryw'
-text -1.4 -0.3 'kRryw' '' -8
-subplot 2 10 5 0.2:dens a 'kGgew'
-text -1.4 -0.3 'kGgew' '' -8
-subplot 2 10 6 0.2:dens a 'BbwrR'
-text -1.4 -0.3 'BbwrR' '' -8
-subplot 2 10 7 0.2:dens a 'BbwgG'
-text -1.4 -0.3 'BbwgG' '' -8
-subplot 2 10 8 0.2:dens a 'GgwmM'
-text -1.4 -0.3 'GgwmM' '' -8
-subplot 2 10 9 0.2:dens a 'UuwqR'
-text -1.4 -0.3 'UuwqR' '' -8
-subplot 2 10 10 0.2:dens a 'QqwcC'
-text -1.4 -0.3 'QqwcC' '' -8
-subplot 2 10 11 0.2:dens a 'CcwyY'
-text -1.4 -0.3 'CcwyY' '' -8
-subplot 2 10 12 0.2:dens a 'bcwyr'
-text -1.4 -0.3 'bcwyr' '' -8
-subplot 2 10 13 0.2:dens a 'bwr'
-text -1.4 -0.3 'bwr' '' -8
-subplot 2 10 14 0.2:dens a 'BbcyrR'
-text -1.4 -0.3 'BbcyrR' '' -8
-subplot 2 10 15 0.2:dens a 'UbcyqR'
-text -1.4 -0.3 'UbcyqR' '' -8
-subplot 2 10 16 0.2:dens a 'BbcwyrR'
-text -1.4 -0.3 'BbcwyrR' '' -8
-subplot 2 10 17 0.2:dens a 'bcyr'
-text -1.4 -0.3 'bcyr' '' -8
-subplot 2 10 18 0.2:dens a 'BbcyrR|'
-text -1.4 -0.3 'BbcyrR|' '' -8
-subplot 2 10 19 0.2:dens a 'bgr'
-text -1.4 -0.3 'bgr' '' -8
-
-
-File: mgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
-
-3.5.11 Обычная прозрачность
-----------------------------------------------
-
- [image src="../png/type0.png" ]
-
-alpha on: light on
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-
-transptype 0: clf
-subplot 2 2 0: rotate 40 60: surf a:  box
-subplot 2 2 1: rotate 40 60: dens a:  box
-subplot 2 2 2: rotate 40 60: cont a:  box
-subplot 2 2 3: rotate 40 60: axial a: box
-
-
-File: mgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
-
-3.5.12 "Стеклянная" прозрачность
-------------------------------------------------------
-
- [image src="../png/type1.png" ]
-
-alpha on: light on
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-
-transptype 1: clf
-subplot 2 2 0: rotate 40 60: surf a:  box
-subplot 2 2 1: rotate 40 60: dens a:  box
-subplot 2 2 2: rotate 40 60: cont a:  box
-subplot 2 2 3: rotate 40 60: axial a: box
-
-
-File: mgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
-
-3.5.13 "Ламповая" прозрачность
---------------------------------------------------
-
- [image src="../png/type2.png" ]
-
-alpha on: light on
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-
-transptype 2: clf
-subplot 2 2 0: rotate 40 60: surf a:  box
-subplot 2 2 1: rotate 40 60: dens a:  box
-subplot 2 2 2: rotate 40 60: cont a:  box
-subplot 2 2 3: rotate 40 60: axial a: box
-
-
-File: mgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
-
-3.6 Дополнительные возможности
-=======================================================
-
-* Menu:
-
-* Legend sample::
-* Adding mesh sample::
-* Surf & Cont sample::
-* Flow & Dens sample::
-* Several light sample::
-* Mirrored surface sample::
-* Cont with labels sample::
-* Ternary plot sample::
-* Coloring by coordinates sample::
-* Drops sample::
-* Molecules drawing sample::
-
-
-File: mgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
-
-3.6.1 Legend - пример использования
-------------------------------------------------------
-
- [image src="../png/legend.png" ]
-
-new f 50 3
-modify f 'sin(2*pi*x*x)'
-modify f 'sin(2*pi*x)' 1
-modify f 'sin(2*pi*sqrt(x))' 2
-axis 0 -1 1 1
-box
-plot f
-axis
-addlegend 'sin(\pi {x^2})' 'b'
-addlegend 'sin(\pi x)' 'g*'
-addlegend 'sin(\pi \sqrt{\a x})' 'r+'
-legend
-
-
-File: mgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
-
-3.6.2 Добавляем сетку
------------------------------------
-
- [image src="../png/samplea.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-alpha on
-light on
-subplot 2 2 0
-rotate 40 60
-surf a 'BbcyrR#'
-box
-subplot 2 2 1
-rotate 40 60
-dens a 'BbcyrR#'
-box
-subplot 2 2 2
-rotate 40 60
-cont a 'BbcyrR#'
-box
-subplot 2 2 3
-rotate 40 60
-axial a 'BbcyrR#'
-box
-
-
-File: mgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
-
-3.6.3 Surf & Cont - пример использования
------------------------------------------------------------
-
- [image src="../png/surf_cont_y.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-box
-surf a
-cont a 'y'
-
-
-File: mgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
-
-3.6.4 Flow & Dens - пример использования
------------------------------------------------------------
-
- [image src="../png/flow_dens.png" ]
-
-new a 50 40
-new b 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-copy d a
-modify d 'sqrt(v^2+w^2)' a b
-box
-flow a b 'br'
-dens d 'BbcyrR'
-
-
-File: mgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
-
-3.6.5 Несколько источников света
---------------------------------------------------------
-
- [image src="../png/several_light.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-rotate 40 60
-light on
-light 1 0 1 0 'c'
-light 2 1 0 0 'y'
-light 3 0 -1 0 'm'
-box
-surf a 'h'
-
-
-File: mgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
-
-3.6.6 Отражение поверхности
------------------------------------------------
-
- [image src="../png/mirror.png" ]
-
-new a 30 40
-modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
-rotate 40 60
-light on
-surf a 'r'; yrange 0 1
-surf a 'b'; yrange 0 -1
-box
- or
-new a 30 40
-var x 30 -1 1
-var y1 40 0 1
-var y2 40 0 -1
-modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
-rotate 40 60
-light on
-surf x y1 a 'r'
-surf x y2 a 'b'
-box
-
-
-File: mgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
-
-3.6.7 Cont и подписи - пример использования
-----------------------------------------------------------------------
-
- [image src="../png/contt.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-box
-cont a 'BbcyrRt'
-
-
-File: mgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
-
-3.6.8 Ternary plot - пример использования
-------------------------------------------------------------
-
- [image src="../png/ternary.png" ]
-
-new rx 10
-new ry 10
-new x 50
-new y 50
-new a 20 30
-modify a '4*x*y'
-modify x '0.25*(1+cos(2*pi*x))'
-modify y '0.25*(1+sin(2*pi*x))'
-modify rx 'rnd'
-modify ry 'rnd*(1-v)' rx
-text -0.8 1.3 'Ternary plot (x+y+t=1)'
-ternary on
-plot x y 'r2'
-plot rx ry 'q^ '
-cont a
-line 0.5 0 0 0.75 'g2'
-axis
-grid 'xyz' 'B;'
-xlabel 'x comp.'
-ylabel 'y comp.'
-tlabel 't comp.'
-
-
-File: mgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
-
-3.6.9 Окрашивание по положению грани
----------------------------------------------------------------
-
- [image src="../png/surf3_rgbd.png" ]
-
-new a 60 50 40
-modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
-rotate 40 60
-box
-surf3 a 'bgrd'
-
-
-File: mgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
-
-3.6.10 Drops - пример использования
-------------------------------------------------------
-
- [image src="../png/drops.png" ]
-
-light on
-text -1 1.2 'sh=0'
-drop -1 0 0 1 0.5 'r' 0
-text -0.33 1.2 'sh=0.33'
-drop -0.33 0 0 1 0.5 'r' 0.33
-text 0.33 1.2 'sh=0.67'
-drop 0.33 0 0 1 0.5 'r' 0.67
-text 1 1.2 'sh=1'
-drop 1 0 0 1 0.5 'r' 1
-ball -1 0 1 'k'
-ball -0.33 0 1 'k'
-ball 0.33 0 1 'k'
-ball 1 0 1 'k'
-line -1 0 1 1 0 1 'b'
-new h 100
-modify h '0.25*(1+x)^2'
-plot h 'k|'
-text -1 0.6 'h\sim(1+sh)^2' 'rL'
-
-
-File: mgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
-
-3.6.11 Рисование молекул
-----------------------------------------
-
- [image src="../png/molecule.png" ]
-
-alpha on
-light on
-subplot 2 2 0
-text 0 1.2 'Methane, CH_4' '' -3
-rotate 60 120
-sphere 0 0 0 0.25 'k'
-drop 0 0 0 0 0 1 0.35 'h' 1 2
-sphere 0 0 0.7 0.25 'g'
-drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
-sphere -0.66 0 -0.23 0.25 'g'
-drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
-sphere 0.33 0.57 -0.23 0.25 'g'
-drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
-sphere 0.33 -0.57 -0.23 0.25 'g'
-subplot 2 2 1
-text 0 1.2 'Water, H{_2}O' '' -3
-rotate 60 100
-sphere 0 0 0 0.25 'r'
-drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
-sphere 0.3 0.5 0 0.25 'g'
-drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
-sphere 0.3 -0.5 0 0.25 'g'
-subplot 2 2 2
-text 0 1.2 'Oxygen, O_2' '' -3
-rotate 60 120
-drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
-sphere 0 0.5 0 0.25 'r'
-drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
-sphere 0 -0.5 0 0.25 'r'
-subplot 2 2 3
-text 0 1.2 0 'Ammonia, NH_3' '' -3
-rotate 60 120
-sphere 0 0 0 0.25 'b'
-drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
-sphere 0.33 0.57 0 0.25 'g'
-drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
-sphere 0.33 -0.57 0 0.25 'g'
-drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
-sphere -0.65 0 0 0.25 'g'
-
-
-File: mgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
-
-3.7 "Продвинутые" возможности
-===================================================
-
-* Menu:
-
-* Curvelinear coorinates sample::
-* 2-axes sample::
-* Semi-log sample::
-* Log-log sample::
-* Fitting sample::
-* Envelop sample::
-* Sew sample::
-* STFA sample::
-* PDE sample::
-* Beam tracing sample::
-* Parser sample::
-* Manual ticks sample::
-* ColumnPlot sample::
-* StickPlot sample::
-* Stereo image sample::
-
-
-File: mgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
-
-3.7.1 Криволинейные координаты
------------------------------------------------------
-
- [image src="../png/sample3.png" ]
-
-origin -1 1 -1
-subplot 2 2 0
-rotate 60 40
-line -1 0.5 0 1 0.5 0 'r2'
-axis
-grid
-text 0 1.3 1 'Cartesian'
-subplot 2 2 1
-rotate 60 40
-axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
-line -1 0.5 0 1 0.5 0 'r2'
-axis
-grid
-text 0 1.3 1 'Cylindrical'
-subplot 2 2 2
-rotate 60 40
-axis '2*y*x' 'y*y - x*x' ''
-line -1 0.5 0 1 0.5 0 'r2'
-axis
-grid
-text 0 1.3 1 'Parabolic'
-subplot 2 2 3
-rotate 60 40
-axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
-line -1 0.5 0 1 0.5 0 'r2'
-axis
-grid
-text 0 1.3 1 'Spiral'
-axis '' '' '' # set to default Cartesian
-
-
-File: mgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
-
-3.7.2 Несколько осей на одном графике
-----------------------------------------------------------------
-
- [image src="../png/2_axis.png" ]
-
-new y1 50
-new y2 50
-modify y1 '0.3*sin(2*pi*x)'
-modify y2 '0.5+0.3*cos(2*pi*x)'
-axis -1 -1 -1 1 1 1
-origin -1 -1 -1
-axis
-ylabel 'axis 1' 0
-plot y1 'b'
-axis 0 0 0 1 1 1
-origin 1 1 1
-axis
-ylabel 'axis 2' 0
-stem y2 'r'
-
-
-File: mgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
-
-3.7.3 Semi-log - пример использования
---------------------------------------------------------
-
- [image src="../png/semilog.png" ]
-
-new x 2000
-new y 2000
-modify x '0.01/(x+10^(-5))'
-modify y 'sin(1/v)' x
-xrange 0.01 1000
-origin 0.01 -1 0
-xtick 0
-axis 'lg(x)' '' ''
-plot x y 'b2'
-axis
-grid 'xy' 'g'
-xlabel 'x' 0
-ylabel 'y = sin 1/x' 0
-box
-
-
-File: mgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
-
-3.7.4 Log-log - пример использования
--------------------------------------------------------
-
- [image src="../png/loglog.png" ]
-
-new x 100
-new y 100
-modify x 'pow(10,6*x-3)'
-modify y 'sqrt(1+v^2)' x
-axis 0.001 0.1 1000 1000
-xtick 0
-ytick 0
-axis 'lg(x)' 'lg(y)' ''
-plot x y 'b2'
-axis
-grid 'xy' 'g;'
-xlabel 'x' 0
-ylabel 'y=\sqrt{1+x^2}' 0
-box
-
-
-File: mgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
-
-3.7.5 Fitting - пример использования
--------------------------------------------------------
-
- [image src="../png/fit.png" ]
-
-new rnd 100
-fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
-new in 100
-fill in '0.3+sin(2*pi*x)'
-yrange -2 2
-plot rnd '. '
-box
-list ini 1 1 3
-fit res rnd 'a+b*sin(c*x)' 'abc' ini
-plot res 'r'
-plot in 'b'
-text -1 -1.3 'fitted:' 'L:r' -1
-putsfit 0 -1.8 'y = ' 'C:r'
-text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
-
-
-File: mgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
-
-3.7.6 Envelop - пример использования
--------------------------------------------------------
-
- [image src="../png/envelop.png" ]
-
-new a 1000
-fill a 'exp(-8*x^2)*sin(10*pi*x)'
-plot a 'b'
-envelop a
-plot a 'r'
-axis
-
-
-File: mgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
-
-3.7.7 Sew - пример использования
----------------------------------------------------
-
- [image src="../png/sew.png" ]
-
-new a 100 100
-modify a 'mod((y^2-(1-x)^2)/2,0.1)'
-rotate 40 60
-light on
-alpha on
-surf a 'b'
-sew a 'xy' 0.1
-surf a 'r'
-box
-
-
-File: mgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
-
-3.7.8 STFA - пример использования
-----------------------------------------------------
-
- [image src="../png/stfa.png" ]
-
-new a 2000
-new b 2000
-fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
-        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
-subplot 1 2 0
-plot a
-axis
-xlabel '\i t'
-subplot 1 2 1
-stfa a b 64 ''
-axis
-ylabel '\omega' 0
-xlabel '\i t'
-
-
-File: mgl_ru.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
-
-3.7.9 PDE - пример использования
----------------------------------------------------
-
- [image src="../png/pde.png" ]
-
-axis
-xlabel '\i x'
-ylabel '\i z'
-new re 128
-new im 128
-fill re 'exp(-48*(x+0.7)^2)'
-pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
-transpose a
-crange 0 1
-dens a 'wyrRk'
-fplot '-x' 'k|'
-text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
-title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
-
-
-File: mgl_ru.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
-
-3.7.10 Beam tracing - пример использования
--------------------------------------------------------------
-
- [image src="../png/qo2d.png" ]
-
-define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
-ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
-plot r(0) r(1) 'k'
-axis
-xlabel '\i x'
-ylabel '\i z'
-new re 128
-new im 128
-new xx
-new yy
-fill re 'exp(-48*x^2)'
-qo2d a $1 re im r 1 30 xx yy
-crange 0 1
-dens xx yy a 'wyrRk'
-fplot '-x' 'k|'
-text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
-text 0.5 -0.05 'central ray' 'L' -1
-title 'Beam and ray tracing' 'C' -1.5
-
-
-File: mgl_ru.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
-
-3.7.11 Parser - пример использования
--------------------------------------------------------
-
-
-File: mgl_ru.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
-
-3.7.12 Особые метки по осям
---------------------------------------------
-
- [image src="../png/tval.png" ]
-
-axis -pi 0 pi 2
-xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
-axis
-grid
-fplot '2*cos(x^2)^2' 'r2' nan 300
-
-
-File: mgl_ru.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
-
-3.7.13 ColumnPlot - пример использования
------------------------------------------------------------
-
- [image src="../png/column.png" ]
-
-for $1 0 3
-columnplot 4 $1
-box
-text -0.5 0.5 'Plot $1 of 4'
-fplot 'sin(pi*x+pi*$1/2)'
-next
-
-
-File: mgl_ru.info,  Node: StickPlot sample,  Prev: ColumnPlot sample,  Up: Advanced features
-
-3.7.14 StickPlot - пример использования
-----------------------------------------------------------
-
- [image src="../png/stick.png" ]
-
-ranges -1 1 -1 1 0 1:light on
-stickplot 3 0 40 30 : axis 'xyz_'
-fsurf 'exp(-10*y^2-6*x^2)'
-text 0.2 0 1.2 'z=0' '' -2
-stickplot 3 1 40 30 : axis 'xy_'
-fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
-text 0.2 0 1.2 'z=1' '' -2
-stickplot 3 2 40 30 : axis 'xy_'
-fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
-text 0.2 0 1.2 'z=2' '' -2
-xlabel '\tau' 0 : ylabel '\rho'
-
-
-File: mgl_ru.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
-
-3.7.15 Пример стерео изображения
--------------------------------------------------------
-
- [image src="../png/stereo.png" ]
-
-new a 50 40
-modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
-light on
-subplot 2 1 0
-rotate 40 60+3
-box:surf a
-subplot 2 1 1
-rotate 40 60-3
-box:surf a
-
-
-
-Local Variables:
-coding: utf-8
-End:
diff --git a/texinfo/mgl_ru.info-2 b/texinfo/mgl_ru.info-2
deleted file mode 100644
index 82e8068..0000000
--- a/texinfo/mgl_ru.info-2
+++ /dev/null
@@ -1,889 +0,0 @@
-This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
-
-Это документация для MathGL (версии 1.11) - библиотеки классов и
-функций для построения научной графики. Пожалуйста сообщайте о любых
-ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
-
-   Copyright (C) 2009 Алексей Балакин.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
-
-INFO-DIR-SECTION MathGL documentation system
-START-INFO-DIR-ENTRY
-* MathGL: (mathgl). The library for scientific graphics.
-END-INFO-DIR-ENTRY
-
-
-File: mgl_ru.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                      Version 1.2, November 2002
-
-     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
-     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided for under this License.  Any other
-     attempt to copy, modify, sublicense or distribute the Document is
-     void, and will automatically terminate your rights under this
-     License.  However, parties who have received copies, or rights,
-     from you under this License will not have their licenses
-     terminated so long as such parties remain in full compliance.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.2
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: mgl_ru.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
-
-Индекс
-************
-
- [index ]
-* Menu:
-
-* AddLegend:                             Legend sample.       (line   6)
-* addlegend:                             Legend.              (line  29)
-* addto:                                 Operators.           (line  18)
-* adjust:                                Axis settings.       (line 114)
-* Alpha <1>:                             3D plot sample.      (line   6)
-* Alpha <2>:                             2D plot sample.      (line   6)
-* Alpha:                                 Transparent surface sample.
-                                                              (line   6)
-* alpha <1>:                             Command options.     (line  20)
-* alpha:                                 Transparency.        (line  15)
-* alphadef <1>:                          Command options.     (line  20)
-* alphadef:                              Transparency.        (line  19)
-* ambient <1>:                           Command options.     (line  26)
-* ambient:                               Lighting.            (line  25)
-* Area <1>:                              Area gradient sample.
-                                                              (line   6)
-* Area:                                  Area sample.         (line   6)
-* area:                                  1D plotting.         (line  56)
-* arrowsize:                             Default sizes.       (line  18)
-* aspect:                                Transformation matrix.
-                                                              (line  61)
-* Axial <1>:                             Adding mesh sample.  (line   6)
-* Axial:                                 Axial sample.        (line   6)
-* axial:                                 2D plotting.         (line 135)
-* axialdir:                              Other settings.      (line  31)
-* Axis <1>:                              Log-log sample.      (line   6)
-* Axis <2>:                              Semi-log sample.     (line   6)
-* Axis <3>:                              2-axes sample.       (line   6)
-* Axis <4>:                              Curvelinear coorinates sample.
-                                                              (line   6)
-* Axis <5>:                              Dens3 sample.        (line   6)
-* Axis <6>:                              Ring chart sample.   (line   6)
-* Axis:                                  Pie chart sample.    (line   6)
-* axis <1>:                              Axis and Colorbar.   (line  10)
-* axis:                                  Axis settings.       (line  12)
-* ball:                                  Primitives drawing.  (line  12)
-* Barh:                                  Barh sample.         (line   6)
-* barh:                                  1D plotting.         (line 101)
-* Bars <1>:                              1D plot sample.      (line   6)
-* Bars <2>:                              Bars fall sample.    (line   6)
-* Bars <3>:                              Bars above sample.   (line   6)
-* Bars <4>:                              Bars 2 colors sample.
-                                                              (line   6)
-* Bars:                                  Bars sample.         (line   6)
-* bars:                                  1D plotting.         (line  87)
-* barwidth:                              Default sizes.       (line  11)
-* beam:                                  3D plotting.         (line 119)
-* Belt:                                  Belt sample.         (line   6)
-* belt:                                  2D plotting.         (line  57)
-* box:                                   Axis and Colorbar.   (line  43)
-* BoxPlot:                               BoxPlot sample.      (line   6)
-* boxplot:                               1D plotting.         (line 182)
-* Boxs:                                  Boxs sample.         (line   6)
-* boxs:                                  2D plotting.         (line  66)
-* call:                                  Program flow.        (line  34)
-* caxis:                                 Axis settings.       (line  53)
-* Chart <1>:                             Ring chart sample.   (line   6)
-* Chart <2>:                             Pie chart sample.    (line   6)
-* Chart:                                 Chart sample.        (line   6)
-* chart:                                 1D plotting.         (line 115)
-* chdir:                                 Program flow.        (line   9)
-* clearlegend:                           Legend.              (line  34)
-* clf:                                   Primitives drawing.  (line   9)
-* Cloud:                                 Cloud sample.        (line   6)
-* cloud:                                 3D plotting.         (line 109)
-* CloudP:                                CloudP sample.       (line   6)
-* Colorbar <1>:                          Color schemes sample.
-                                                              (line   6)
-* Colorbar:                              Dens sample.         (line   6)
-* colorbar:                              Axis and Colorbar.   (line  17)
-* columnplot:                            Transformation matrix.
-                                                              (line  39)
-* combine:                               Make another data.   (line   6)
-* cone:                                  Primitives drawing.  (line  55)
-* Cont <1>:                              Cont with labels sample.
-                                                              (line   6)
-* Cont <2>:                              Surf & Cont sample.  (line   6)
-* Cont <3>:                              Adding mesh sample.  (line   6)
-* Cont:                                  Cont sample.         (line   6)
-* cont:                                  2D plotting.         (line  89)
-* Cont3:                                 Cont3 sample.        (line   6)
-* cont3:                                 3D plotting.         (line  54)
-* conta:                                 3D plotting.         (line  72)
-* ContD:                                 ContD sample.        (line   6)
-* contd:                                 2D plotting.         (line 119)
-* ContF:                                 ContF sample.        (line   6)
-* contf:                                 2D plotting.         (line 105)
-* ContF3 <1>:                            Isocaps sample.      (line   6)
-* ContF3:                                ContF3 sample.       (line   6)
-* contf3:                                3D plotting.         (line  76)
-* contfa:                                3D plotting.         (line  93)
-* contfx:                                Other plotting.      (line  36)
-* contfy:                                Other plotting.      (line  36)
-* contfz:                                Other plotting.      (line  36)
-* ContX:                                 Cont projection sample.
-                                                              (line   6)
-* contx:                                 Other plotting.      (line  27)
-* ContY:                                 Cont projection sample.
-                                                              (line   6)
-* conty:                                 Other plotting.      (line  27)
-* ContZ:                                 Cont projection sample.
-                                                              (line   6)
-* contz:                                 Other plotting.      (line  27)
-* copy:                                  Data create.         (line  31)
-* cosfft:                                Change data.         (line  40)
-* crange <1>:                            Command options.     (line  30)
-* crange:                                Axis settings.       (line  75)
-* crop:                                  Rearrange data.      (line  31)
-* Crust:                                 Crust sample.        (line   6)
-* crust:                                 Other plotting.      (line  51)
-* ctick:                                 Axis settings.       (line  92)
-* cumsum:                                Change data.         (line  11)
-* curve:                                 Primitives drawing.  (line  22)
-* cut <1>:                               Command options.     (line  42)
-* cut:                                   Cutting.             (line  10)
-* CutMax <1>:                            Isocaps sample.      (line   6)
-* CutMax:                                CutMinMax sample.    (line   6)
-* CutMin <1>:                            Isocaps sample.      (line   6)
-* CutMin:                                CutMinMax sample.    (line   6)
-* CutOff:                                CutOff sample.       (line   6)
-* defchr:                                Program flow.        (line  21)
-* define:                                Program flow.        (line  12)
-* defnum:                                Program flow.        (line  25)
-* defpal:                                Program flow.        (line  29)
-* delete:                                Rearrange data.      (line  35)
-* Dens <1>:                              Flow & Dens sample.  (line   6)
-* Dens <2>:                              Adding mesh sample.  (line   6)
-* Dens <3>:                              3D plot sample.      (line   6)
-* Dens <4>:                              2D plot sample.      (line   6)
-* Dens:                                  Dens sample.         (line   6)
-* dens:                                  2D plotting.         (line  81)
-* Dens3:                                 Dens3 sample.        (line   6)
-* dens3:                                 3D plotting.         (line  41)
-* densa:                                 3D plotting.         (line  50)
-* DensX:                                 Dens projection sample.
-                                                              (line   6)
-* densx:                                 Other plotting.      (line  18)
-* DensY:                                 Dens projection sample.
-                                                              (line   6)
-* densy:                                 Other plotting.      (line  18)
-* DensZ:                                 Dens projection sample.
-                                                              (line   6)
-* densz:                                 Other plotting.      (line  18)
-* Dew:                                   Dew sample.          (line   6)
-* dew:                                   Vector fields.       (line  73)
-* diff:                                  Change data.         (line  17)
-* diff2:                                 Change data.         (line  33)
-* divto:                                 Operators.           (line  12)
-* Dots:                                  Dots sample.         (line   6)
-* dots:                                  Other plotting.      (line  44)
-* Drop <1>:                              Molecules drawing sample.
-                                                              (line   6)
-* Drop:                                  Drops sample.        (line   6)
-* drop:                                  Primitives drawing.  (line  46)
-* else:                                  Program flow.        (line  64)
-* elseif:                                Program flow.        (line  55)
-* endif:                                 Program flow.        (line  68)
-* Envelop:                               Envelop sample.      (line   6)
-* envelop:                               Change data.         (line  72)
-* Error:                                 Error sample.        (line   6)
-* error:                                 1D plotting.         (line 173)
-* evaluate:                              Make another data.   (line  10)
-* export:                                File I/O.            (line  48)
-* extend:                                Rearrange data.      (line  12)
-* facex:                                 Primitives drawing.  (line  30)
-* facey:                                 Primitives drawing.  (line  31)
-* facez:                                 Primitives drawing.  (line  32)
-* Fall:                                  Fall sample.         (line   6)
-* fall:                                  2D plotting.         (line  47)
-* fgets:                                 Text printing.       (line  52)
-* fill:                                  Data filling.        (line   6)
-* Fit:                                   Fitting sample.      (line   6)
-* fit:                                   Nonlinear fitting.   (line  38)
-* fits:                                  Nonlinear fitting.   (line  30)
-* Flow <1>:                              Flow & Dens sample.  (line   6)
-* Flow <2>:                              Flow 3D sample.      (line   6)
-* Flow:                                  Flow sample.         (line   6)
-* flow:                                  Vector fields.       (line  82)
-* Fog:                                   Surface in fog sample.
-                                                              (line   6)
-* fog:                                   Fog.                 (line   6)
-* font:                                  Other settings.      (line   6)
-* fontsize:                              Command options.     (line  46)
-* for:                                   Program flow.        (line  72)
-* fplot:                                 Other plotting.      (line  94)
-* fsurf:                                 Other plotting.      (line 105)
-* func:                                  Program flow.        (line  38)
-* Grad:                                  Grad sample.         (line   6)
-* grad:                                  2D plotting.         (line 151)
-* grid:                                  Axis and Colorbar.   (line  38)
-* grid2:                                 2D plotting.         (line 161)
-* grid3:                                 3D plotting.         (line  98)
-* grida:                                 3D plotting.         (line 105)
-* hankel:                                Change data.         (line  44)
-* hist:                                  Make another data.   (line  20)
-* idset:                                 Data create.         (line  38)
-* if:                                    Program flow.        (line  49)
-* import:                                File I/O.            (line  43)
-* info:                                  Data create.         (line  42)
-* inplot:                                Transformation matrix.
-                                                              (line  30)
-* insert:                                Rearrange data.      (line  42)
-* integrate:                             Change data.         (line  13)
-* jacobian:                              Make another data.   (line 140)
-* Legend:                                Legend sample.       (line   6)
-* legend <1>:                            Command options.     (line  56)
-* legend:                                Legend.              (line  18)
-* legendbox:                             Legend.              (line  37)
-* legendmarks:                           Legend.              (line  41)
-* Light:                                 Several light sample.
-                                                              (line   6)
-* light:                                 Lighting.            (line  13)
-* Line <1>:                              Arrow styles sample. (line   6)
-* Line:                                  Line styles sample.  (line   6)
-* line:                                  Primitives drawing.  (line  16)
-* linewidth:                             Default sizes.       (line  22)
-* list:                                  Data create.         (line  16)
-* Map:                                   Map sample.          (line   6)
-* map:                                   Dual plotting.       (line  76)
-* Mark <1>:                              Line styles sample.  (line   6)
-* Mark:                                  Mark sample.         (line   6)
-* mark:                                  1D plotting.         (line 153)
-* marksize <1>:                          Command options.     (line  49)
-* marksize:                              Default sizes.       (line  15)
-* max:                                   Make another data.   (line  47)
-* Mesh:                                  Mesh sample.         (line   6)
-* mesh:                                  2D plotting.         (line  40)
-* meshnum <1>:                           Command options.     (line  52)
-* meshnum:                               Other settings.      (line  25)
-* mglParse:                              Parser sample.       (line   6)
-* mglPDE:                                PDE sample.          (line   6)
-* mglQO2d:                               Beam tracing sample. (line   6)
-* mglRay <1>:                            Beam tracing sample. (line   6)
-* mglRay:                                PDE sample.          (line   6)
-* min:                                   Make another data.   (line  52)
-* mirror:                                Change data.         (line  57)
-* modify:                                Data filling.        (line   6)
-* momentum:                              Make another data.   (line  36)
-* multo:                                 Operators.           (line   6)
-* new:                                   Data create.         (line   6)
-* next:                                  Program flow.        (line  81)
-* norm:                                  Change data.         (line  83)
-* normsl:                                Change data.         (line  76)
-* once:                                  Program flow.        (line  85)
-* origin:                                Axis settings.       (line  58)
-* palette:                               Other settings.      (line  15)
-* pde:                                   Make another data.   (line  94)
-* perspective:                           Transformation matrix.
-                                                              (line  65)
-* Pipe <1>:                              Pipe 3D sample.      (line   6)
-* Pipe:                                  Pipe sample.         (line   6)
-* pipe:                                  Vector fields.       (line 114)
-* Plot <1>:                              Log-log sample.      (line   6)
-* Plot <2>:                              Semi-log sample.     (line   6)
-* Plot <3>:                              Legend sample.       (line   6)
-* Plot <4>:                              1D plot sample.      (line   6)
-* Plot:                                  Plot sample.         (line   6)
-* plot:                                  1D plotting.         (line  30)
-* plotfactor:                            Zooming.             (line  10)
-* put:                                   Data filling.        (line  29)
-* Puts <1>:                              Font faces sample.   (line   6)
-* Puts <2>:                              TeX parsing sample.  (line   6)
-* Puts:                                  Text styles sample.  (line   6)
-* PutsFit:                               Fitting sample.      (line   6)
-* putsfit:                               Nonlinear fitting.   (line  46)
-* qo2d:                                  Make another data.   (line 125)
-* quadplot:                              Other plotting.      (line  83)
-* Radar:                                 Radar sample.        (line   6)
-* radar:                                 1D plotting.         (line  38)
-* ranges:                                Axis settings.       (line  14)
-* ray:                                   Make another data.   (line 114)
-* read:                                  File I/O.            (line   6)
-* readall:                               File I/O.            (line  21)
-* readhdf:                               File I/O.            (line  37)
-* readmat:                               File I/O.            (line  16)
-* rearrange:                             Rearrange data.      (line   6)
-* rect:                                  Primitives drawing.  (line  61)
-* Region <1>:                            Region gradient sample.
-                                                              (line   6)
-* Region:                                Region sample.       (line   6)
-* region:                                1D plotting.         (line  69)
-* resize:                                Make another data.   (line  56)
-* return:                                Program flow.        (line  45)
-* roll:                                  Change data.         (line  52)
-* rotate:                                Transformation matrix.
-                                                              (line  53)
-* rotatetext:                            Other settings.      (line  11)
-* save:                                  File I/O.            (line  34)
-* savehdf:                               File I/O.            (line  40)
-* setsize:                               Export to file.      (line  12)
-* SetTicks <1>:                          Log-log sample.      (line   6)
-* SetTicks:                              Semi-log sample.     (line   6)
-* SetTicksVal <1>:                       StickPlot sample.    (line   6)
-* SetTicksVal <2>:                       ColumnPlot sample.   (line   6)
-* SetTicksVal:                           Manual ticks sample. (line   6)
-* Sew:                                   Sew sample.          (line   6)
-* sew:                                   Change data.         (line  61)
-* sinfft:                                Change data.         (line  37)
-* smooth:                                Change data.         (line  66)
-* Sphere:                                Molecules drawing sample.
-                                                              (line   6)
-* sphere:                                Primitives drawing.  (line  42)
-* squeeze:                               Rearrange data.      (line  25)
-* Stem:                                  Stem sample.         (line   6)
-* stem:                                  1D plotting.         (line  79)
-* Step:                                  Step sample.         (line   6)
-* step:                                  1D plotting.         (line 128)
-* STFA:                                  STFA sample.         (line   6)
-* stfa:                                  Dual plotting.       (line  86)
-* stfad:                                 Make another data.   (line  87)
-* stickplot:                             Transformation matrix.
-                                                              (line  46)
-* stop:                                  Program flow.        (line  89)
-* subdata:                               Make another data.   (line  60)
-* SubPlot <1>:                           Adding mesh sample.  (line   6)
-* SubPlot:                               1D plot sample.      (line   6)
-* subplot:                               Transformation matrix.
-                                                              (line  15)
-* subto:                                 Operators.           (line  24)
-* sum:                                   Make another data.   (line  43)
-* Surf <1>:                              Mirrored surface sample.
-                                                              (line   6)
-* Surf <2>:                              Several light sample.
-                                                              (line   6)
-* Surf <3>:                              Surf & Cont sample.  (line   6)
-* Surf <4>:                              Adding mesh sample.  (line   6)
-* Surf <5>:                              3D plot sample.      (line   6)
-* Surf <6>:                              2D plot sample.      (line   6)
-* Surf <7>:                              Sharp colors sample. (line   6)
-* Surf <8>:                              Surface in fog sample.
-                                                              (line   6)
-* Surf <9>:                              Transparent surface sample.
-                                                              (line   6)
-* Surf:                                  Surf sample.         (line   6)
-* surf:                                  2D plotting.         (line  32)
-* Surf3 <1>:                             Coloring by coordinates sample.
-                                                              (line   6)
-* Surf3 <2>:                             CutOff sample.       (line   6)
-* Surf3 <3>:                             Isocaps sample.      (line   6)
-* Surf3 <4>:                             CutMinMax sample.    (line   6)
-* Surf3:                                 Surf3 sample.        (line   6)
-* surf3:                                 3D plotting.         (line  27)
-* Surf3A:                                Surf3A sample.       (line   6)
-* surf3a:                                Dual plotting.       (line  53)
-* Surf3C:                                Surf3C sample.       (line   6)
-* surf3c:                                Dual plotting.       (line  31)
-* SurfA:                                 SurfA sample.        (line   6)
-* surfa:                                 Dual plotting.       (line  45)
-* SurfC:                                 SurfC sample.        (line   6)
-* surfc:                                 Dual plotting.       (line  23)
-* swap:                                  Change data.         (line  49)
-* Tens:                                  Tens sample.         (line   6)
-* tens:                                  1D plotting.         (line  48)
-* Ternary:                               Ternary plot sample. (line   6)
-* ternary:                               Axis settings.       (line  63)
-* Text:                                  Text sample.         (line   6)
-* text:                                  Text printing.       (line  28)
-* TextMark:                              TextMark sample.     (line   6)
-* textmark:                              1D plotting.         (line 163)
-* ticklen:                               Default sizes.       (line  28)
-* tickstl:                               Default sizes.       (line  33)
-* Tile:                                  Tile sample.         (line   6)
-* tile:                                  2D plotting.         (line  73)
-* TileS:                                 TileS sample.        (line   6)
-* tiles:                                 Dual plotting.       (line  68)
-* title:                                 Text printing.       (line  48)
-* tlabel:                                Axis and Colorbar.   (line  51)
-* Torus:                                 Torus sample.        (line   6)
-* torus:                                 1D plotting.         (line 135)
-* trace:                                 Make another data.   (line  67)
-* Traj:                                  Traj sample.         (line   6)
-* traj:                                  Vector fields.       (line  20)
-* transform:                             Make another data.   (line  73)
-* transforma:                            Make another data.   (line  83)
-* transparent:                           Transparency.        (line  23)
-* transpose:                             Rearrange data.      (line  21)
-* TranspType <1>:                        Lamp-like transparency.
-                                                              (line   6)
-* TranspType <2>:                        Glass-like transparency.
-                                                              (line   6)
-* TranspType:                            Normal transparency. (line   6)
-* transptype:                            Transparency.        (line  26)
-* tricont:                               Other plotting.      (line  70)
-* triplot:                               Other plotting.      (line  58)
-* Tube:                                  Tube sample.         (line   6)
-* tube:                                  1D plotting.         (line 143)
-* var:                                   Data create.         (line  11)
-* Vect <1>:                              Vect 3D sample.      (line   6)
-* Vect:                                  Vect sample.         (line   6)
-* vect:                                  Vector fields.       (line  30)
-* VectC <1>:                             VectC 3D sample.     (line   6)
-* VectC:                                 VectC sample.        (line   6)
-* vectc:                                 Vector fields.       (line  49)
-* VectL <1>:                             VectL 3D sample.     (line   6)
-* VectL:                                 VectL sample.        (line   6)
-* vectl:                                 Vector fields.       (line  61)
-* write:                                 Export to file.      (line   6)
-* xlabel:                                Axis and Colorbar.   (line  48)
-* xrange <1>:                            Command options.     (line  33)
-* xrange:                                Axis settings.       (line  72)
-* xtick:                                 Axis settings.       (line  89)
-* ylabel:                                Axis and Colorbar.   (line  49)
-* yrange <1>:                            Command options.     (line  36)
-* yrange:                                Axis settings.       (line  73)
-* ytick:                                 Axis settings.       (line  90)
-* zlabel:                                Axis and Colorbar.   (line  50)
-* zoom:                                  Zooming.             (line  16)
-* zrange <1>:                            Command options.     (line  39)
-* zrange:                                Axis settings.       (line  74)
-* ztick:                                 Axis settings.       (line  91)
-* Стиль линий:                           Line styles.         (line   6)
-* Стиль маркеров:                        Line styles.         (line   6)
-* Стиль стрелок:                         Line styles.         (line   6)
-* Стиль текста:                          Font styles.         (line   6)
-* Текстовые формулы:                     Textual formulas.    (line   6)
-* Цветовая схема:                        Color scheme.        (line   6)
-
-
-
-
-Local Variables:
-coding: utf-8
-End:
diff --git a/texinfo/png/Makefile.in b/texinfo/png/Makefile.in
index cb37e08..b4d2d29 100644
--- a/texinfo/png/Makefile.in
+++ b/texinfo/png/Makefile.in
@@ -38,11 +38,7 @@ subdir = texinfo/png
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 1cf4370..8057592 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -42,11 +42,7 @@ subdir = utils
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/widgets/Makefile.in b/widgets/Makefile.in
index 31a9c75..250f511 100644
--- a/widgets/Makefile.in
+++ b/widgets/Makefile.in
@@ -62,11 +62,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = widgets
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d

-- 
Packaging for mathgl



More information about the debian-science-commits mailing list