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@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@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@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@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@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@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
]) # _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])
+++ /dev/null
-Description: Upstream changes introduced in version 1.11-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-1) unstable; urgency=low
- .
- * New upstream release (Closes: #603004)
- * Remove .pdf sample pictures from the html documentation since they
- are not 3d.
- .
- The person named in the Author field signed this changelog entry.
-Author: Dimitrios Eftaxiopoulos <eftaxi12@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.orig/Makefile.in
-+++ mathgl-1.11/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.orig/aclocal.m4
-+++ mathgl-1.11/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@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@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@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@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@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@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.orig/configure
-+++ mathgl-1.11/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.orig/widgets/Makefile.in
-+++ mathgl-1.11/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/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@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
-+
-+\1f
-+File: mgl_ru.info, Node: Top, Next: MGL interface, Up: (dir)
-+
-+Язык MGL
-+************
-+
-+Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
-+любых ошибках в этом руководстве на <mathgl.abalakin@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::
-+
-+\1f
-+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::
-+
-+\1f
-+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::
-+
-+\1f
-+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()'.
-+
-+\1f
-+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' - косой крест в квадрате,
-+`#.' - точка в окружности. Если в строке присутствует символ `#', то
-+используются символы с заполнением.
-+
-+\0\b[image src="../png/sample5.png"\0\b]
-+
-+Стили линий и маркеров.
-+
-+ На конце и в начале линии можно выводить специальный символ
-+(стрелку), если в строке указать один из символов: `A' - стрелка
-+наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
-+чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
-+нет стрелки (по умолчанию). При этом действует следующее правило:
-+первый символ определяет стрелку на конце линии, второй символ -
-+стрелку в начале линии. Например, `r-A' - красная сплошная линия со
-+стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
-+вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
-+действуют и при построении графиков (например, *note 1D plotting::).
-+
-+\0\b[image src="../png/sampled.png"\0\b]
-+
-+Стили стрелок.
-+
-+\1f
-+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'.
-+
-+\0\b[image src="../png/colors.png"\0\b]
-+
-+Цвета и их идентификаторы.
-+
-+ При определении цвета по _амплитуде_ (наиболее часто используется)
-+окончательный цвет определяется путем линейной интерполяции массива
-+цветов. Массив цветов формируется из цветов, указанных в строке
-+спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
-+(*note Axis settings::). Например, строка из 4 символов `bcyr'
-+соответствует изменению цвета от синего (минимальное значение) через
-+голубой и желтый (промежуточные значения) к красному (максимальное
-+значение). Строка `kw' соответствует изменению цвета от черного
-+(минимальное значение) к белому (максимальное значение). Строка из
-+одного символа (например, `g') соответствует однотонному цвету (в
-+данному случае зеленому).
-+
-+ Есть несколько полезных цветовых схем. Строка `kw' дает обычную
-+серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
-+представляет обратную серую схему, когда большие значения темнее.
-+Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
-+схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
-+рисовать двухцветные фигуры на белом или черном фоне, когда
-+отрицательные значения показаны синим цветом, а положительные -
-+красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
-+известной схеме _jet_.
-+
-+\0\b[image src="../png/color_schemes.png"\0\b]
-+
-+Наиболее популярные цветовые схемы.
-+
-+ При определении цвета по _положению точки в пространстве_
-+окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
-+Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
-+координаты точки, нормированные на MINxMAX. Такой тип определения цвета
-+полезен, например, при построении поверхностей уровня, когда цвет дает
-+представление о положении точки в пространстве.
-+
-+\1f
-+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()'
-+позволяют задавать его в более "привычных" единицах.
-+
-+\1f
-+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>’(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.
-+
-+\1f
-+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 ::
-+
-+\1f
-+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::.
-+
-+\1f
-+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].
-+
-+\1f
-+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::, для
-+ примеров кода и графика.
-+
-+\1f
-+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).
-+
-+\1f
-+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' для перехода в масштаб по умолчанию.
-+
-+\1f
-+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::, для примеров кода и графика.
-+
-+\1f
-+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'.
-+
-+\1f
-+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 в виде наиболее удобном для
-+ человека.
-+
-+\1f
-+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') перспектива отключена.
-+
-+\1f
-+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'
-+ Изменяет размер картинки в пикселях. Функция должна вызываться
-+ *перед* любыми функциями построения потому что полностью очищает
-+ содержимое рисунка. В некоторых программах исполнение этой команды
-+ может запрещено.
-+
-+\1f
-+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'). Грань будет нарисована даже если часть ее лежит
-+ вне диапазона осей координат.
-+
-+\1f
-+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.
-+
-+\1f
-+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::.
-+
-+\1f
-+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
-+ маркер.
-+
-+\1f
-+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::, для примеров кода и графика.
-+
-+\1f
-+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::.
-+
-+\1f
-+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::.
-+
-+\1f
-+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::,
-+ для примеров кода и графика.
-+
-+\1f
-+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::, для примеров кода и графика.
-+
-+\1f
-+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::.
-+
-+\1f
-+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::.
-+
-+\1f
-+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 как информацию (предупреждение).
-+
-+\1f
-+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 выполнено.
-+
-+\1f
-+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 и
-+ заполняет их нулями.
-+
-+\1f
-+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 определяются автоматически как
-+ минимальное и максимальное значение данных.
-+
-+\1f
-+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}.
-+
-+\1f
-+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.
-+
-+\1f
-+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'
-+ Вычитает число из каждого элемента.
-+
-+\1f
-+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
-+ Останавливает выполнение скрипта.
-+
-+\1f
-+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::
-+
-+\1f
-+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 соответственно или элементов массива.
-+
-+\1f
-+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
-+''' в конце скрипта.
-+
-+\1f
-+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::
-+
-+\1f
-+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.
-+
-+\1f
-+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::
-+
-+\1f
-+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.
-+
-+\0\b[image src="../png/sample1.png"\0\b]
-+
-+Example of several subplots on the single picture.
-+
-+\1f
-+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.
-+
-+\0\b[image src="../png/sample2.png"\0\b]
-+
-+Example of setting up axis range and axis ticks.
-+
-+\1f
-+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'
-+
-+\0\b[image src="../png/sample3.png"\0\b]
-+
-+Example of curvilinear coordinates
-+
-+\1f
-+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'
-+
-+\0\b[image src="../png/sample4.png"\0\b]
-+
-+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
-+
-+\0\b[image src="../png/samplee.png"\0\b]
-+
-+Example of TeX formula parsing
-+
-+\1f
-+File: mgl_ru.info, Node: Data handling, Next: Data plotting, Prev: Advanced usage, Up: Examples
-+
-+2.3 Data handling
-+=================
-+
-+* Menu:
-+
-+* Array creation::
-+* Data changing::
-+
-+\1f
-+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.
-+
-+\1f
-+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'
-+
-+\0\b[image src="../png/sample6.png"\0\b]
-+
-+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
-+
-+\0\b[image src="../png/sample7.png"\0\b]
-+
-+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.
-+
-+\1f
-+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::
-+
-+\1f
-+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
-+
-+\0\b[image src="../png/sample8.png"\0\b]
-+
-+Example of 1D data plot
-+
-+\1f
-+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.
-+
-+\0\b[image src="../png/sample9.png"\0\b]
-+
-+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
-+
-+\0\b[image src="../png/samplea.png"\0\b]
-+
-+Example of 2D data plot with color scheme contained `#' symbol
-+
-+\1f
-+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
-+
-+\0\b[image src="../png/sampleb.png"\0\b]
-+
-+Example of Gaussian beam diffraction (3D data)
-+
-+\1f
-+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.
-+\0\b[image src="../png/type0.png"\0\b]
-+
-+Example of `TranspType=0'.
-+
-+\0\b[image src="../png/type1.png"\0\b]
-+
-+Example of `TranspType=1'.
-+
-+\0\b[image src="../png/type2.png"\0\b]
-+
-+Example of `TranspType=2'.
-+
-+\1f
-+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::
-+
-+\1f
-+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.
-+
-+\1f
-+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.
-+
-+\1f
-+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.
-+
-+\1f
-+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
-+
-+\1f
-+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?
-+
-+\1f
-+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.
-+
-+\1f
-+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::).
-+
-+\1f
-+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".
-+
-+\1f
-+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
-+:).
-+
-+\1f
-+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::.
-+
-+\1f
-+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.
-+
-+\1f
-+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'
-+
-+\1f
-+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
-+
-+\1f
-+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::
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: Plot sample, Next: Radar sample, Up: 1D plotting samples
-+
-+3.1.1 Plot - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/plot.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Radar sample, Next: Tens sample, Prev: Plot sample, Up: 1D plotting samples
-+
-+3.1.2 Radar - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/radar.png"\0\b]
-+
-+new y 10 3
-+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
-+radar y '#'
-+
-+\1f
-+File: mgl_ru.info, Node: Tens sample, Next: Area sample, Prev: Radar sample, Up: 1D plotting samples
-+
-+3.1.3 Tens - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/tens.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Area sample, Next: Area gradient sample, Prev: Tens sample, Up: 1D plotting samples
-+
-+3.1.4 Area - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/area.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Area gradient sample, Next: Bars sample, Prev: Tens sample, Up: 1D plotting samples
-+
-+3.1.5 Area с градиентной заливкой - пример использования
-+-----------------------------------------------------------------------------------------------
-+
-+\0\b[image src="../png/area_2.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Bars sample, Next: Bars 2 colors sample, Prev: Area gradient sample, Up: 1D plotting samples
-+
-+3.1.6 Bars - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/bars.png"\0\b]
-+
-+new y 10 3
-+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-+origin 0 0
-+box
-+bars y
-+
-+\1f
-+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 цвета) - пример использования
-+-------------------------------------------------------------------
-+
-+\0\b[image src="../png/bars_2.png"\0\b]
-+
-+new y 10 3
-+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-+origin 0 0
-+box
-+bars y 'cbgGyr'
-+
-+\1f
-+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 (один над другим) - пример использования
-+-----------------------------------------------------------------------------------
-+
-+\0\b[image src="../png/bars_a.png"\0\b]
-+
-+new y 10 3
-+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-+origin 0 0
-+box
-+bars y 'a'
-+
-+\1f
-+File: mgl_ru.info, Node: Bars fall sample, Next: Bars above sample, Prev: Bars above sample, Up: 1D plotting samples
-+
-+3.1.9 Bars "водопад" - пример использования
-+---------------------------------------------------------------------
-+
-+\0\b[image src="../png/bars_f.png"\0\b]
-+
-+new y 10 3
-+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-+origin 0 0
-+box
-+bars y 'f'
-+
-+\1f
-+File: mgl_ru.info, Node: Barh sample, Next: Step sample, Prev: Bars fall sample, Up: 1D plotting samples
-+
-+3.1.10 Barh - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/barh.png"\0\b]
-+
-+new y 10 3
-+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
-+origin 0 0
-+box
-+barh y
-+
-+\1f
-+File: mgl_ru.info, Node: Step sample, Next: Stem sample, Prev: Barh sample, Up: 1D plotting samples
-+
-+3.1.11 Step - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/step.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Stem sample, Next: Region sample, Prev: Step sample, Up: 1D plotting samples
-+
-+3.1.12 Stem - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/stem.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Region sample, Next: Region gradient sample, Prev: Stem sample, Up: 1D plotting samples
-+
-+3.1.13 Region - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/region.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Region gradient sample, Next: Error sample, Prev: Region sample, Up: 1D plotting samples
-+
-+3.1.14 Region с градиентной заливкой - пример использования
-+--------------------------------------------------------------------------------------------------
-+
-+\0\b[image src="../png/region_2.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Error sample, Next: BoxPlot sample, Prev: Region gradient sample, Up: 1D plotting samples
-+
-+3.1.15 Error - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/error.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: BoxPlot sample, Next: Mark sample, Prev: Error sample, Up: 1D plotting samples
-+
-+3.1.16 BoxPlot - пример использования
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/boxplot.png"\0\b]
-+
-+new a 10 7
-+modify a '(2*rnd-1)^3/2'
-+box
-+boxplot a
-+plot a ' ko'
-+
-+\1f
-+File: mgl_ru.info, Node: Mark sample, Next: TextMark sample, Prev: BoxPlot sample, Up: 1D plotting samples
-+
-+3.1.17 Mark - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/mark.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: TextMark sample, Next: Tube sample, Prev: Mark sample, Up: 1D plotting samples
-+
-+3.1.18 TextMark - пример использования
-+---------------------------------------------------------
-+
-+\0\b[image src="../png/textmark.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Tube sample, Next: Text sample, Prev: TextMark sample, Up: 1D plotting samples
-+
-+3.1.19 Tube - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/tube.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Text sample, Next: Torus sample, Prev: Tube sample, Up: 1D plotting samples
-+
-+3.1.20 Text - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/text.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Torus sample, Next: Chart sample, Prev: Text sample, Up: 1D plotting samples
-+
-+3.1.21 Torus - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/torus.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Chart sample, Next: Pie chart sample, Prev: Torus sample, Up: 1D plotting samples
-+
-+3.1.22 Chart - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/chart.png"\0\b]
-+
-+new ch 7 2
-+modify ch 'rnd+0.1'
-+rotate 40 60
-+light on
-+box
-+chart ch
-+
-+\1f
-+File: mgl_ru.info, Node: Pie chart sample, Next: Ring chart sample, Prev: Chart sample, Up: 1D plotting samples
-+
-+3.1.23 Pie chart - пример использования
-+----------------------------------------------------------
-+
-+\0\b[image src="../png/pie_chart.png"\0\b]
-+
-+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#'
-+
-+\1f
-+File: mgl_ru.info, Node: Ring chart sample, Prev: Pie chart sample, Up: 1D plotting samples
-+
-+3.1.24 Ring chart - пример использования
-+-----------------------------------------------------------
-+
-+\0\b[image src="../png/ring_chart.png"\0\b]
-+
-+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#'
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: Surf sample, Next: Transparent surface sample, Up: 2D plotting samples
-+
-+3.2.1 Surf - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/surf.png"\0\b]
-+
-+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
-+
-+\1f
-+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 - пример использования
-+-------------------------------------------------------------------
-+
-+\0\b[image src="../png/surf_alpha.png"\0\b]
-+
-+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
-+
-+\1f
-+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 - пример использования
-+--------------------------------------------------------------
-+
-+\0\b[image src="../png/surf_fog.png"\0\b]
-+
-+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
-+
-+\1f
-+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 - пример использования
-+------------------------------------------------------------
-+
-+\0\b[image src="../png/surf_sl.png"\0\b]
-+
-+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|'
-+
-+\1f
-+File: mgl_ru.info, Node: Mesh sample, Next: Fall sample, Prev: Sharp colors sample, Up: 2D plotting samples
-+
-+3.2.5 Mesh - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/mesh.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Fall sample, Next: Belt sample, Prev: Mesh sample, Up: 2D plotting samples
-+
-+3.2.6 Fall - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/fall.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Belt sample, Next: Tile sample, Prev: Fall sample, Up: 2D plotting samples
-+
-+3.2.7 Belt - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/belt.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Tile sample, Next: Boxs sample, Prev: Belt sample, Up: 2D plotting samples
-+
-+3.2.8 Tile - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/tile.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Boxs sample, Next: Dens sample, Prev: Tile sample, Up: 2D plotting samples
-+
-+3.2.9 Boxs - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/boxs.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Dens sample, Next: Cont sample, Prev: Boxs sample, Up: 2D plotting samples
-+
-+3.2.10 Dens - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/dens.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Cont sample, Next: ContF sample, Prev: Dens sample, Up: 2D plotting samples
-+
-+3.2.11 Cont - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/cont.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: ContF sample, Next: ContD sample, Prev: Cont sample, Up: 2D plotting samples
-+
-+3.2.12 ContF - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/contf.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: ContD sample, Next: Axial sample, Prev: ContF sample, Up: 2D plotting samples
-+
-+3.2.13 ContD - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/contd.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Axial sample, Next: Grad sample, Prev: ContD sample, Up: 2D plotting samples
-+
-+3.2.14 Axial - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/axial.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Grad sample, Prev: Axial sample, Up: 2D plotting samples
-+
-+3.2.15 Grad - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/grad.png"\0\b]
-+
-+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
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: Surf3 sample, Next: Cloud sample, Up: 3D plotting samples
-+
-+3.3.1 Surf3 - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/surf3.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Cloud sample, Next: CloudP sample, Prev: Surf3 sample, Up: 3D plotting samples
-+
-+3.3.2 Cloud - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/cloud.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: CloudP sample, Next: Dens3 sample, Prev: Cloud sample, Up: 3D plotting samples
-+
-+3.3.3 CloudP - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/cloudp.png"\0\b]
-+
-+Not available.
-+
-+\1f
-+File: mgl_ru.info, Node: Dens3 sample, Next: Cont3 sample, Prev: CloudP sample, Up: 3D plotting samples
-+
-+3.3.4 Dens3 - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/densa.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Cont3 sample, Next: ContF3 sample, Prev: Dens3 sample, Up: 3D plotting samples
-+
-+3.3.5 Cont3 - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/conta.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: ContF3 sample, Next: Cont projection sample, Prev: Cont3 sample, Up: 3D plotting samples
-+
-+3.3.6 ContF3 - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/contfa.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Cont projection sample, Next: Dens projection sample, Prev: ContF3 sample, Up: 3D plotting samples
-+
-+3.3.7 Cont projection - пример использования
-+---------------------------------------------------------------
-+
-+\0\b[image src="../png/cont_xyz.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Dens projection sample, Next: CutMinMax sample, Prev: Cont projection sample, Up: 3D plotting samples
-+
-+3.3.8 Dens projection - пример использования
-+---------------------------------------------------------------
-+
-+\0\b[image src="../png/dens_xyz.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: CutMinMax sample, Next: Isocaps sample, Prev: Dens projection sample, Up: 3D plotting samples
-+
-+3.3.9 CutMinMax - пример использования
-+---------------------------------------------------------
-+
-+\0\b[image src="../png/cutminmax.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Isocaps sample, Next: CutOff sample, Prev: CutMinMax sample, Up: 3D plotting samples
-+
-+3.3.10 "Isocaps" - пример использования
-+----------------------------------------------------------
-+
-+\0\b[image src="../png/cutminmax2.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: CutOff sample, Prev: Isocaps sample, Up: 3D plotting samples
-+
-+3.3.11 CutOff - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/surf3_cutoff.png"\0\b]
-+
-+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
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: SurfC sample, Next: SurfA sample, Up: Dual plotting samples
-+
-+3.4.1 SurfC - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/surfc.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: SurfA sample, Next: TileS sample, Prev: SurfC sample, Up: Dual plotting samples
-+
-+3.4.2 SurfA - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/surfa.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: TileS sample, Next: Map sample, Prev: SurfA sample, Up: Dual plotting samples
-+
-+3.4.3 TileS - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/tiles.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Map sample, Next: Traj sample, Prev: TileS sample, Up: Dual plotting samples
-+
-+3.4.4 Map - пример использования
-+---------------------------------------------------
-+
-+\0\b[image src="../png/map.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Traj sample, Next: Vect sample, Prev: Map sample, Up: Dual plotting samples
-+
-+3.4.5 Traj - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/traj.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Vect sample, Next: VectL sample, Prev: Traj sample, Up: Dual plotting samples
-+
-+3.4.6 Vect - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/vect.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: VectL sample, Next: VectC sample, Prev: Vect sample, Up: Dual plotting samples
-+
-+3.4.7 VectL - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/vectl.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: VectC sample, Next: Flow sample, Prev: VectL sample, Up: Dual plotting samples
-+
-+3.4.8 VectC - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/vectc.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Flow sample, Next: Pipe sample, Prev: VectC sample, Up: Dual plotting samples
-+
-+3.4.9 Flow - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/flow.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Pipe sample, Next: Dew sample, Prev: Flow sample, Up: Dual plotting samples
-+
-+3.4.10 Pipe - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/pipe.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Dew sample, Next: Surf3C sample, Prev: Pipe sample, Up: Dual plotting samples
-+
-+3.4.11 Dew - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/dew.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Surf3C sample, Next: Surf3A sample, Prev: Dew sample, Up: Dual plotting samples
-+
-+3.4.12 Surf3C - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/surf3c.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Surf3A sample, Next: Vect 3D sample, Prev: Surf3C sample, Up: Dual plotting samples
-+
-+3.4.13 Surf3A - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/surf3a.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Vect 3D sample, Next: VectL 3D sample, Prev: Surf3A sample, Up: Dual plotting samples
-+
-+3.4.14 Vect 3D - пример использования
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/vect3.png"\0\b]
-+
-+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'
-+
-+\1f
-+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 - пример использования
-+---------------------------------------------------------
-+
-+\0\b[image src="../png/vectl3.png"\0\b]
-+
-+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'
-+
-+\1f
-+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 - пример использования
-+---------------------------------------------------------
-+
-+\0\b[image src="../png/vectc3.png"\0\b]
-+
-+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'
-+
-+\1f
-+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 - пример использования
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/flow3.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Pipe 3D sample, Next: Crust sample, Prev: Flow 3D sample, Up: Dual plotting samples
-+
-+3.4.18 Pipe 3D - пример использования
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/pipe3.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Crust sample, Next: Dots sample, Prev: Pipe 3D sample, Up: Dual plotting samples
-+
-+3.4.19 Crust - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/crust.png"\0\b]
-+
-+read a 'hotdogs.pts'
-+norm a -1 1 on
-+rotate 40 60
-+light on
-+box
-+crust a 'p'
-+
-+\1f
-+File: mgl_ru.info, Node: Dots sample, Prev: Crust sample, Up: Dual plotting samples
-+
-+3.4.20 Dots - пример использования
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/dots.png"\0\b]
-+
-+read a 'hotdogs.pts'
-+norm a -1 1 on
-+rotate 40 60
-+box
-+dots a 'p'
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: 1D plot sample, Next: 2D plot sample, Up: Basic features
-+
-+3.5.1 Пример графиков 1D данных
-+---------------------------------------------------
-+
-+\0\b[image src="../png/sample8.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: 2D plot sample, Next: 3D plot sample, Prev: 1D plot sample, Up: Basic features
-+
-+3.5.2 Пример графиков 2D данных
-+---------------------------------------------------
-+
-+\0\b[image src="../png/sample9.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: 3D plot sample, Next: Line styles sample, Prev: 2D plot sample, Up: Basic features
-+
-+3.5.3 Пример графиков 3D данных
-+---------------------------------------------------
-+
-+\0\b[image src="../png/sampleb.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Line styles sample, Next: Arrow styles sample, Prev: 3D plot sample, Up: Basic features
-+
-+3.5.4 Пример стилей линий и маркеров
-+--------------------------------------------------------------
-+
-+\0\b[image src="../png/sample5.png"\0\b]
-+
-+NOT AVAILABLE
-+
-+\1f
-+File: mgl_ru.info, Node: Arrow styles sample, Next: Text styles sample, Prev: Line styles sample, Up: Basic features
-+
-+3.5.5 Пример стилей стрелок
-+----------------------------------------------
-+
-+\0\b[image src="../png/sampled.png"\0\b]
-+
-+NOT AVAILABLE
-+
-+\1f
-+File: mgl_ru.info, Node: Text styles sample, Next: TeX parsing sample, Prev: Arrow styles sample, Up: Basic features
-+
-+3.5.6 Пример стилей текста
-+--------------------------------------------
-+
-+\0\b[image src="../png/sample4.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: TeX parsing sample, Next: Font faces sample, Prev: Text styles sample, Up: Basic features
-+
-+3.5.7 Пример TeX формулы
-+-------------------------------------
-+
-+\0\b[image src="../png/samplee.png"\0\b]
-+
-+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
-+
-+\1f
-+File: mgl_ru.info, Node: Font faces sample, Next: Colors sample, Prev: TeX parsing sample, Up: Basic features
-+
-+3.5.8 Примеры начертаний шрифта
-+------------------------------------------------------
-+
-+\0\b[image src="../png/fonts.png"\0\b]
-+
-+NOT AVAILABLE
-+
-+\1f
-+File: mgl_ru.info, Node: Colors sample, Next: Color schemes sample, Prev: Font faces sample, Up: Basic features
-+
-+3.5.9 Примеры цветов
-+---------------------------------
-+
-+\0\b[image src="../png/colors.png"\0\b]
-+
-+#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'
-+
-+\1f
-+File: mgl_ru.info, Node: Color schemes sample, Next: Normal transparency, Prev: Colors sample, Up: Basic features
-+
-+3.5.10 Примеры цветовых схем
-+-----------------------------------------------
-+
-+\0\b[image src="../png/color_schemes.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Normal transparency, Next: Glass-like transparency, Prev: Color schemes sample, Up: Basic features
-+
-+3.5.11 Обычная прозрачность
-+----------------------------------------------
-+
-+\0\b[image src="../png/type0.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Glass-like transparency, Next: Lamp-like transparency, Prev: Normal transparency, Up: Basic features
-+
-+3.5.12 "Стеклянная" прозрачность
-+------------------------------------------------------
-+
-+\0\b[image src="../png/type1.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Lamp-like transparency, Prev: Glass-like transparency, Up: Basic features
-+
-+3.5.13 "Ламповая" прозрачность
-+--------------------------------------------------
-+
-+\0\b[image src="../png/type2.png"\0\b]
-+
-+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
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: Legend sample, Next: Adding mesh sample, Up: Additional features
-+
-+3.6.1 Legend - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/legend.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Adding mesh sample, Next: Surf & Cont sample, Prev: Legend sample, Up: Additional features
-+
-+3.6.2 Добавляем сетку
-+-----------------------------------
-+
-+\0\b[image src="../png/samplea.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Surf & Cont sample, Next: Flow & Dens sample, Prev: Adding mesh sample, Up: Additional features
-+
-+3.6.3 Surf & Cont - пример использования
-+-----------------------------------------------------------
-+
-+\0\b[image src="../png/surf_cont_y.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Flow & Dens sample, Next: Several light sample, Prev: Surf & Cont sample, Up: Additional features
-+
-+3.6.4 Flow & Dens - пример использования
-+-----------------------------------------------------------
-+
-+\0\b[image src="../png/flow_dens.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Several light sample, Next: Mirrored surface sample, Prev: Flow & Dens sample, Up: Additional features
-+
-+3.6.5 Несколько источников света
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/several_light.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Mirrored surface sample, Next: Cont with labels sample, Prev: Several light sample, Up: Additional features
-+
-+3.6.6 Отражение поверхности
-+-----------------------------------------------
-+
-+\0\b[image src="../png/mirror.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Cont with labels sample, Next: Ternary plot sample, Prev: Mirrored surface sample, Up: Additional features
-+
-+3.6.7 Cont и подписи - пример использования
-+----------------------------------------------------------------------
-+
-+\0\b[image src="../png/contt.png"\0\b]
-+
-+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'
-+
-+\1f
-+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 - пример использования
-+------------------------------------------------------------
-+
-+\0\b[image src="../png/ternary.png"\0\b]
-+
-+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.'
-+
-+\1f
-+File: mgl_ru.info, Node: Coloring by coordinates sample, Next: Drops sample, Prev: Ternary plot sample, Up: Additional features
-+
-+3.6.9 Окрашивание по положению грани
-+---------------------------------------------------------------
-+
-+\0\b[image src="../png/surf3_rgbd.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Drops sample, Next: Molecules drawing sample, Prev: Coloring by coordinates sample, Up: Additional features
-+
-+3.6.10 Drops - пример использования
-+------------------------------------------------------
-+
-+\0\b[image src="../png/drops.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Molecules drawing sample, Prev: Drops sample, Up: Additional features
-+
-+3.6.11 Рисование молекул
-+----------------------------------------
-+
-+\0\b[image src="../png/molecule.png"\0\b]
-+
-+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'
-+
-+\1f
-+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::
-+
-+\1f
-+File: mgl_ru.info, Node: Curvelinear coorinates sample, Next: 2-axes sample, Up: Advanced features
-+
-+3.7.1 Криволинейные координаты
-+-----------------------------------------------------
-+
-+\0\b[image src="../png/sample3.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: 2-axes sample, Next: Semi-log sample, Prev: Curvelinear coorinates sample, Up: Advanced features
-+
-+3.7.2 Несколько осей на одном графике
-+----------------------------------------------------------------
-+
-+\0\b[image src="../png/2_axis.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Semi-log sample, Next: Log-log sample, Prev: 2-axes sample, Up: Advanced features
-+
-+3.7.3 Semi-log - пример использования
-+--------------------------------------------------------
-+
-+\0\b[image src="../png/semilog.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Log-log sample, Next: Fitting sample, Prev: Semi-log sample, Up: Advanced features
-+
-+3.7.4 Log-log - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/loglog.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Fitting sample, Next: Envelop sample, Prev: Log-log sample, Up: Advanced features
-+
-+3.7.5 Fitting - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/fit.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Envelop sample, Next: Sew sample, Prev: Fitting sample, Up: Advanced features
-+
-+3.7.6 Envelop - пример использования
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/envelop.png"\0\b]
-+
-+new a 1000
-+fill a 'exp(-8*x^2)*sin(10*pi*x)'
-+plot a 'b'
-+envelop a
-+plot a 'r'
-+axis
-+
-+\1f
-+File: mgl_ru.info, Node: Sew sample, Next: STFA sample, Prev: Envelop sample, Up: Advanced features
-+
-+3.7.7 Sew - пример использования
-+---------------------------------------------------
-+
-+\0\b[image src="../png/sew.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: STFA sample, Next: PDE sample, Prev: Sew sample, Up: Advanced features
-+
-+3.7.8 STFA - пример использования
-+----------------------------------------------------
-+
-+\0\b[image src="../png/stfa.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: PDE sample, Next: Beam tracing sample, Prev: STFA sample, Up: Advanced features
-+
-+3.7.9 PDE - пример использования
-+---------------------------------------------------
-+
-+\0\b[image src="../png/pde.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Beam tracing sample, Next: Parser sample, Prev: PDE sample, Up: Advanced features
-+
-+3.7.10 Beam tracing - пример использования
-+-------------------------------------------------------------
-+
-+\0\b[image src="../png/qo2d.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: Parser sample, Next: Manual ticks sample, Prev: Beam tracing sample, Up: Advanced features
-+
-+3.7.11 Parser - пример использования
-+-------------------------------------------------------
-+
-+\1f
-+File: mgl_ru.info, Node: Manual ticks sample, Next: ColumnPlot sample, Prev: Parser sample, Up: Advanced features
-+
-+3.7.12 Особые метки по осям
-+--------------------------------------------
-+
-+\0\b[image src="../png/tval.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: ColumnPlot sample, Next: StickPlot sample, Prev: Manual ticks sample, Up: Advanced features
-+
-+3.7.13 ColumnPlot - пример использования
-+-----------------------------------------------------------
-+
-+\0\b[image src="../png/column.png"\0\b]
-+
-+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
-+
-+\1f
-+File: mgl_ru.info, Node: StickPlot sample, Prev: ColumnPlot sample, Up: Advanced features
-+
-+3.7.14 StickPlot - пример использования
-+----------------------------------------------------------
-+
-+\0\b[image src="../png/stick.png"\0\b]
-+
-+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'
-+
-+\1f
-+File: mgl_ru.info, Node: Stereo image sample, Prev: StickPlot sample, Up: Advanced features
-+
-+3.7.15 Пример стерео изображения
-+-------------------------------------------------------
-+
-+\0\b[image src="../png/stereo.png"\0\b]
-+
-+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
-+
-+
-+\1f
-+Local Variables:
-+coding: utf-8
-+End:
---- mathgl-1.11.orig/texinfo/Makefile.in
-+++ mathgl-1.11/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
---- mathgl-1.11.orig/texinfo/mathgl_ru.texi
-+++ mathgl-1.11/texinfo/mathgl_ru.texi
-@@ -27,10 +27,10 @@ supports it in developing GNU and promot
- @end quotation
- @end copying
-
--@c @dircategory MathGL documentation system
--@c @direntry
--@c * MathGL: (mathgl). The library for scientific graphics.
--@c @end direntry
-+@dircategory MathGL documentation system
-+@direntry
-+* MathGL: (mathgl). The library for scientific graphics.
-+@end direntry
-
- @titlepage
- @title MathGL
---- mathgl-1.11.orig/texinfo/mgl_ru.texi
-+++ mathgl-1.11/texinfo/mgl_ru.texi
-@@ -27,10 +27,10 @@ supports it in developing GNU and promot
- @end quotation
- @end copying
-
--@c @dircategory MathGL documentation system
--@c @direntry
--@c * MathGL: (mathgl). The library for scientific graphics.
--@c @end direntry
-+@dircategory MathGL documentation system
-+@direntry
-+* MathGL: (mathgl). The library for scientific graphics.
-+@end direntry
-
- @titlepage
- @title Язык MGL
---- mathgl-1.11.orig/texinfo/mgl_en.texi
-+++ mathgl-1.11/texinfo/mgl_en.texi
-@@ -25,10 +25,10 @@ supports it in developing GNU and promot
- @end quotation
- @end copying
-
--@c @dircategory MathGL documentation system
--@c @direntry
--@c * MathGL: (mathgl). The library for scientific graphics.
--@c @end direntry
-+@dircategory MathGL documentation system
-+@direntry
-+* MathGL: (mathgl). The library for scientific graphics.
-+@end direntry
-
- @titlepage
- @title MGL script language
---- /dev/null
-+++ mathgl-1.11/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@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
-+
-+\1f
-+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.
-+
-+\1f
-+File: mgl_ru.info, Node: Index, Prev: Copying This Manual, Up: Top
-+
-+Индекс
-+************
-+
-+\0\b[index\0\b]
-+* 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)
-+
-+
-+
-+\1f
-+Local Variables:
-+coding: utf-8
-+End:
---- mathgl-1.11.orig/texinfo/mathgl_en.texi
-+++ mathgl-1.11/texinfo/mathgl_en.texi
-@@ -25,10 +25,10 @@ supports it in developing GNU and promot
- @end quotation
- @end copying
-
--@c @dircategory MathGL documentation system
--@c @direntry
--@c * MathGL: (mathgl). The library for scientific graphics.
--@c @end direntry
-+@dircategory MathGL documentation system
-+@direntry
-+* MathGL: (mathgl). The library for scientific graphics.
-+@end direntry
-
- @titlepage
- @title MathGL
---- mathgl-1.11.orig/texinfo/png/Makefile.in
-+++ mathgl-1.11/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.orig/include/Makefile.in
-+++ mathgl-1.11/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.orig/lang/numpy.i
-+++ mathgl-1.11/lang/numpy.i
-@@ -111,7 +111,7 @@
- if (PyModule_Check( py_obj)) return "module" ;
- if (PyInstance_Check(py_obj)) return "instance" ;
-
-- return "unkown type";
-+ return "unknown type";
- }
-
- /* Given a NumPy typecode, return a string describing the type.
---- mathgl-1.11.orig/lang/Makefile.in
-+++ mathgl-1.11/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.orig/examples/Makefile.in
-+++ mathgl-1.11/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.orig/mgl/Makefile.in
-+++ mathgl-1.11/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.orig/utils/Makefile.in
-+++ mathgl-1.11/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
--- /dev/null
+This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin@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
+
+\1f
+File: mgl_ru.info, Node: Top, Next: MGL interface, Up: (dir)
+
+Язык MGL
+************
+
+Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
+любых ошибках в этом руководстве на <mathgl.abalakin@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::
+
+\1f
+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::
+
+\1f
+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::
+
+\1f
+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()'.
+
+\1f
+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' - косой крест в квадрате,
+`#.' - точка в окружности. Если в строке присутствует символ `#', то
+используются символы с заполнением.
+
+\0\b[image src="../png/sample5.png"\0\b]
+
+Стили линий и маркеров.
+
+ На конце и в начале линии можно выводить специальный символ
+(стрелку), если в строке указать один из символов: `A' - стрелка
+наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
+чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
+нет стрелки (по умолчанию). При этом действует следующее правило:
+первый символ определяет стрелку на конце линии, второй символ -
+стрелку в начале линии. Например, `r-A' - красная сплошная линия со
+стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
+вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
+действуют и при построении графиков (например, *note 1D plotting::).
+
+\0\b[image src="../png/sampled.png"\0\b]
+
+Стили стрелок.
+
+\1f
+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'.
+
+\0\b[image src="../png/colors.png"\0\b]
+
+Цвета и их идентификаторы.
+
+ При определении цвета по _амплитуде_ (наиболее часто используется)
+окончательный цвет определяется путем линейной интерполяции массива
+цветов. Массив цветов формируется из цветов, указанных в строке
+спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
+(*note Axis settings::). Например, строка из 4 символов `bcyr'
+соответствует изменению цвета от синего (минимальное значение) через
+голубой и желтый (промежуточные значения) к красному (максимальное
+значение). Строка `kw' соответствует изменению цвета от черного
+(минимальное значение) к белому (максимальное значение). Строка из
+одного символа (например, `g') соответствует однотонному цвету (в
+данному случае зеленому).
+
+ Есть несколько полезных цветовых схем. Строка `kw' дает обычную
+серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
+представляет обратную серую схему, когда большие значения темнее.
+Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
+схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
+рисовать двухцветные фигуры на белом или черном фоне, когда
+отрицательные значения показаны синим цветом, а положительные -
+красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
+известной схеме _jet_.
+
+\0\b[image src="../png/color_schemes.png"\0\b]
+
+Наиболее популярные цветовые схемы.
+
+ При определении цвета по _положению точки в пространстве_
+окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
+Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
+координаты точки, нормированные на MINxMAX. Такой тип определения цвета
+полезен, например, при построении поверхностей уровня, когда цвет дает
+представление о положении точки в пространстве.
+
+\1f
+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()'
+позволяют задавать его в более "привычных" единицах.
+
+\1f
+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>’(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.
+
+\1f
+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 ::
+
+\1f
+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::.
+
+\1f
+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].
+
+\1f
+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::, для
+ примеров кода и графика.
+
+\1f
+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).
+
+\1f
+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' для перехода в масштаб по умолчанию.
+
+\1f
+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::, для примеров кода и графика.
+
+\1f
+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'.
+
+\1f
+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 в виде наиболее удобном для
+ человека.
+
+\1f
+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') перспектива отключена.
+
+\1f
+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'
+ Изменяет размер картинки в пикселях. Функция должна вызываться
+ *перед* любыми функциями построения потому что полностью очищает
+ содержимое рисунка. В некоторых программах исполнение этой команды
+ может запрещено.
+
+\1f
+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'). Грань будет нарисована даже если часть ее лежит
+ вне диапазона осей координат.
+
+\1f
+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.
+
+\1f
+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::.
+
+\1f
+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
+ маркер.
+
+\1f
+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::, для примеров кода и графика.
+
+\1f
+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::.
+
+\1f
+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::.
+
+\1f
+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::,
+ для примеров кода и графика.
+
+\1f
+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::, для примеров кода и графика.
+
+\1f
+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::.
+
+\1f
+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::.
+
+\1f
+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 как информацию (предупреждение).
+
+\1f
+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 выполнено.
+
+\1f
+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 и
+ заполняет их нулями.
+
+\1f
+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 определяются автоматически как
+ минимальное и максимальное значение данных.
+
+\1f
+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}.
+
+\1f
+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.
+
+\1f
+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'
+ Вычитает число из каждого элемента.
+
+\1f
+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
+ Останавливает выполнение скрипта.
+
+\1f
+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::
+
+\1f
+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 соответственно или элементов массива.
+
+\1f
+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
+''' в конце скрипта.
+
+\1f
+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::
+
+\1f
+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.
+
+\1f
+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::
+
+\1f
+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.
+
+\0\b[image src="../png/sample1.png"\0\b]
+
+Example of several subplots on the single picture.
+
+\1f
+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.
+
+\0\b[image src="../png/sample2.png"\0\b]
+
+Example of setting up axis range and axis ticks.
+
+\1f
+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'
+
+\0\b[image src="../png/sample3.png"\0\b]
+
+Example of curvilinear coordinates
+
+\1f
+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'
+
+\0\b[image src="../png/sample4.png"\0\b]
+
+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
+
+\0\b[image src="../png/samplee.png"\0\b]
+
+Example of TeX formula parsing
+
+\1f
+File: mgl_ru.info, Node: Data handling, Next: Data plotting, Prev: Advanced usage, Up: Examples
+
+2.3 Data handling
+=================
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+\1f
+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.
+
+\1f
+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'
+
+\0\b[image src="../png/sample6.png"\0\b]
+
+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
+
+\0\b[image src="../png/sample7.png"\0\b]
+
+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.
+
+\1f
+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::
+
+\1f
+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
+
+\0\b[image src="../png/sample8.png"\0\b]
+
+Example of 1D data plot
+
+\1f
+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.
+
+\0\b[image src="../png/sample9.png"\0\b]
+
+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
+
+\0\b[image src="../png/samplea.png"\0\b]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+\1f
+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
+
+\0\b[image src="../png/sampleb.png"\0\b]
+
+Example of Gaussian beam diffraction (3D data)
+
+\1f
+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.
+\0\b[image src="../png/type0.png"\0\b]
+
+Example of `TranspType=0'.
+
+\0\b[image src="../png/type1.png"\0\b]
+
+Example of `TranspType=1'.
+
+\0\b[image src="../png/type2.png"\0\b]
+
+Example of `TranspType=2'.
+
+\1f
+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::
+
+\1f
+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.
+
+\1f
+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.
+
+\1f
+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.
+
+\1f
+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
+
+\1f
+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?
+
+\1f
+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.
+
+\1f
+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::).
+
+\1f
+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".
+
+\1f
+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
+:).
+
+\1f
+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::.
+
+\1f
+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.
+
+\1f
+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'
+
+\1f
+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
+
+\1f
+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::
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: Plot sample, Next: Radar sample, Up: 1D plotting samples
+
+3.1.1 Plot - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/plot.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Radar sample, Next: Tens sample, Prev: Plot sample, Up: 1D plotting samples
+
+3.1.2 Radar - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/radar.png"\0\b]
+
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+
+\1f
+File: mgl_ru.info, Node: Tens sample, Next: Area sample, Prev: Radar sample, Up: 1D plotting samples
+
+3.1.3 Tens - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/tens.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Area sample, Next: Area gradient sample, Prev: Tens sample, Up: 1D plotting samples
+
+3.1.4 Area - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/area.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Area gradient sample, Next: Bars sample, Prev: Tens sample, Up: 1D plotting samples
+
+3.1.5 Area с градиентной заливкой - пример использования
+-----------------------------------------------------------------------------------------------
+
+\0\b[image src="../png/area_2.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Bars sample, Next: Bars 2 colors sample, Prev: Area gradient sample, Up: 1D plotting samples
+
+3.1.6 Bars - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/bars.png"\0\b]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+
+\1f
+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 цвета) - пример использования
+-------------------------------------------------------------------
+
+\0\b[image src="../png/bars_2.png"\0\b]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+
+\1f
+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 (один над другим) - пример использования
+-----------------------------------------------------------------------------------
+
+\0\b[image src="../png/bars_a.png"\0\b]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+
+\1f
+File: mgl_ru.info, Node: Bars fall sample, Next: Bars above sample, Prev: Bars above sample, Up: 1D plotting samples
+
+3.1.9 Bars "водопад" - пример использования
+---------------------------------------------------------------------
+
+\0\b[image src="../png/bars_f.png"\0\b]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+
+\1f
+File: mgl_ru.info, Node: Barh sample, Next: Step sample, Prev: Bars fall sample, Up: 1D plotting samples
+
+3.1.10 Barh - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/barh.png"\0\b]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+
+\1f
+File: mgl_ru.info, Node: Step sample, Next: Stem sample, Prev: Barh sample, Up: 1D plotting samples
+
+3.1.11 Step - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/step.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Stem sample, Next: Region sample, Prev: Step sample, Up: 1D plotting samples
+
+3.1.12 Stem - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/stem.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Region sample, Next: Region gradient sample, Prev: Stem sample, Up: 1D plotting samples
+
+3.1.13 Region - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/region.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Region gradient sample, Next: Error sample, Prev: Region sample, Up: 1D plotting samples
+
+3.1.14 Region с градиентной заливкой - пример использования
+--------------------------------------------------------------------------------------------------
+
+\0\b[image src="../png/region_2.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Error sample, Next: BoxPlot sample, Prev: Region gradient sample, Up: 1D plotting samples
+
+3.1.15 Error - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/error.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: BoxPlot sample, Next: Mark sample, Prev: Error sample, Up: 1D plotting samples
+
+3.1.16 BoxPlot - пример использования
+--------------------------------------------------------
+
+\0\b[image src="../png/boxplot.png"\0\b]
+
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+
+\1f
+File: mgl_ru.info, Node: Mark sample, Next: TextMark sample, Prev: BoxPlot sample, Up: 1D plotting samples
+
+3.1.17 Mark - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/mark.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: TextMark sample, Next: Tube sample, Prev: Mark sample, Up: 1D plotting samples
+
+3.1.18 TextMark - пример использования
+---------------------------------------------------------
+
+\0\b[image src="../png/textmark.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Tube sample, Next: Text sample, Prev: TextMark sample, Up: 1D plotting samples
+
+3.1.19 Tube - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/tube.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Text sample, Next: Torus sample, Prev: Tube sample, Up: 1D plotting samples
+
+3.1.20 Text - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/text.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Torus sample, Next: Chart sample, Prev: Text sample, Up: 1D plotting samples
+
+3.1.21 Torus - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/torus.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Chart sample, Next: Pie chart sample, Prev: Torus sample, Up: 1D plotting samples
+
+3.1.22 Chart - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/chart.png"\0\b]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+
+\1f
+File: mgl_ru.info, Node: Pie chart sample, Next: Ring chart sample, Prev: Chart sample, Up: 1D plotting samples
+
+3.1.23 Pie chart - пример использования
+----------------------------------------------------------
+
+\0\b[image src="../png/pie_chart.png"\0\b]
+
+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#'
+
+\1f
+File: mgl_ru.info, Node: Ring chart sample, Prev: Pie chart sample, Up: 1D plotting samples
+
+3.1.24 Ring chart - пример использования
+-----------------------------------------------------------
+
+\0\b[image src="../png/ring_chart.png"\0\b]
+
+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#'
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: Surf sample, Next: Transparent surface sample, Up: 2D plotting samples
+
+3.2.1 Surf - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/surf.png"\0\b]
+
+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
+
+\1f
+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 - пример использования
+-------------------------------------------------------------------
+
+\0\b[image src="../png/surf_alpha.png"\0\b]
+
+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
+
+\1f
+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 - пример использования
+--------------------------------------------------------------
+
+\0\b[image src="../png/surf_fog.png"\0\b]
+
+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
+
+\1f
+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 - пример использования
+------------------------------------------------------------
+
+\0\b[image src="../png/surf_sl.png"\0\b]
+
+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|'
+
+\1f
+File: mgl_ru.info, Node: Mesh sample, Next: Fall sample, Prev: Sharp colors sample, Up: 2D plotting samples
+
+3.2.5 Mesh - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/mesh.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Fall sample, Next: Belt sample, Prev: Mesh sample, Up: 2D plotting samples
+
+3.2.6 Fall - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/fall.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Belt sample, Next: Tile sample, Prev: Fall sample, Up: 2D plotting samples
+
+3.2.7 Belt - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/belt.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Tile sample, Next: Boxs sample, Prev: Belt sample, Up: 2D plotting samples
+
+3.2.8 Tile - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/tile.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Boxs sample, Next: Dens sample, Prev: Tile sample, Up: 2D plotting samples
+
+3.2.9 Boxs - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/boxs.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Dens sample, Next: Cont sample, Prev: Boxs sample, Up: 2D plotting samples
+
+3.2.10 Dens - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/dens.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Cont sample, Next: ContF sample, Prev: Dens sample, Up: 2D plotting samples
+
+3.2.11 Cont - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/cont.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: ContF sample, Next: ContD sample, Prev: Cont sample, Up: 2D plotting samples
+
+3.2.12 ContF - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/contf.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: ContD sample, Next: Axial sample, Prev: ContF sample, Up: 2D plotting samples
+
+3.2.13 ContD - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/contd.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Axial sample, Next: Grad sample, Prev: ContD sample, Up: 2D plotting samples
+
+3.2.14 Axial - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/axial.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Grad sample, Prev: Axial sample, Up: 2D plotting samples
+
+3.2.15 Grad - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/grad.png"\0\b]
+
+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
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: Surf3 sample, Next: Cloud sample, Up: 3D plotting samples
+
+3.3.1 Surf3 - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/surf3.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Cloud sample, Next: CloudP sample, Prev: Surf3 sample, Up: 3D plotting samples
+
+3.3.2 Cloud - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/cloud.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: CloudP sample, Next: Dens3 sample, Prev: Cloud sample, Up: 3D plotting samples
+
+3.3.3 CloudP - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/cloudp.png"\0\b]
+
+Not available.
+
+\1f
+File: mgl_ru.info, Node: Dens3 sample, Next: Cont3 sample, Prev: CloudP sample, Up: 3D plotting samples
+
+3.3.4 Dens3 - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/densa.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Cont3 sample, Next: ContF3 sample, Prev: Dens3 sample, Up: 3D plotting samples
+
+3.3.5 Cont3 - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/conta.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: ContF3 sample, Next: Cont projection sample, Prev: Cont3 sample, Up: 3D plotting samples
+
+3.3.6 ContF3 - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/contfa.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Cont projection sample, Next: Dens projection sample, Prev: ContF3 sample, Up: 3D plotting samples
+
+3.3.7 Cont projection - пример использования
+---------------------------------------------------------------
+
+\0\b[image src="../png/cont_xyz.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Dens projection sample, Next: CutMinMax sample, Prev: Cont projection sample, Up: 3D plotting samples
+
+3.3.8 Dens projection - пример использования
+---------------------------------------------------------------
+
+\0\b[image src="../png/dens_xyz.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: CutMinMax sample, Next: Isocaps sample, Prev: Dens projection sample, Up: 3D plotting samples
+
+3.3.9 CutMinMax - пример использования
+---------------------------------------------------------
+
+\0\b[image src="../png/cutminmax.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Isocaps sample, Next: CutOff sample, Prev: CutMinMax sample, Up: 3D plotting samples
+
+3.3.10 "Isocaps" - пример использования
+----------------------------------------------------------
+
+\0\b[image src="../png/cutminmax2.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: CutOff sample, Prev: Isocaps sample, Up: 3D plotting samples
+
+3.3.11 CutOff - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/surf3_cutoff.png"\0\b]
+
+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
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: SurfC sample, Next: SurfA sample, Up: Dual plotting samples
+
+3.4.1 SurfC - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/surfc.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: SurfA sample, Next: TileS sample, Prev: SurfC sample, Up: Dual plotting samples
+
+3.4.2 SurfA - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/surfa.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: TileS sample, Next: Map sample, Prev: SurfA sample, Up: Dual plotting samples
+
+3.4.3 TileS - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/tiles.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Map sample, Next: Traj sample, Prev: TileS sample, Up: Dual plotting samples
+
+3.4.4 Map - пример использования
+---------------------------------------------------
+
+\0\b[image src="../png/map.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Traj sample, Next: Vect sample, Prev: Map sample, Up: Dual plotting samples
+
+3.4.5 Traj - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/traj.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Vect sample, Next: VectL sample, Prev: Traj sample, Up: Dual plotting samples
+
+3.4.6 Vect - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/vect.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: VectL sample, Next: VectC sample, Prev: Vect sample, Up: Dual plotting samples
+
+3.4.7 VectL - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/vectl.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: VectC sample, Next: Flow sample, Prev: VectL sample, Up: Dual plotting samples
+
+3.4.8 VectC - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/vectc.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Flow sample, Next: Pipe sample, Prev: VectC sample, Up: Dual plotting samples
+
+3.4.9 Flow - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/flow.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Pipe sample, Next: Dew sample, Prev: Flow sample, Up: Dual plotting samples
+
+3.4.10 Pipe - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/pipe.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Dew sample, Next: Surf3C sample, Prev: Pipe sample, Up: Dual plotting samples
+
+3.4.11 Dew - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/dew.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Surf3C sample, Next: Surf3A sample, Prev: Dew sample, Up: Dual plotting samples
+
+3.4.12 Surf3C - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/surf3c.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Surf3A sample, Next: Vect 3D sample, Prev: Surf3C sample, Up: Dual plotting samples
+
+3.4.13 Surf3A - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/surf3a.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Vect 3D sample, Next: VectL 3D sample, Prev: Surf3A sample, Up: Dual plotting samples
+
+3.4.14 Vect 3D - пример использования
+--------------------------------------------------------
+
+\0\b[image src="../png/vect3.png"\0\b]
+
+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'
+
+\1f
+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 - пример использования
+---------------------------------------------------------
+
+\0\b[image src="../png/vectl3.png"\0\b]
+
+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'
+
+\1f
+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 - пример использования
+---------------------------------------------------------
+
+\0\b[image src="../png/vectc3.png"\0\b]
+
+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'
+
+\1f
+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 - пример использования
+--------------------------------------------------------
+
+\0\b[image src="../png/flow3.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Pipe 3D sample, Next: Crust sample, Prev: Flow 3D sample, Up: Dual plotting samples
+
+3.4.18 Pipe 3D - пример использования
+--------------------------------------------------------
+
+\0\b[image src="../png/pipe3.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Crust sample, Next: Dots sample, Prev: Pipe 3D sample, Up: Dual plotting samples
+
+3.4.19 Crust - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/crust.png"\0\b]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+
+\1f
+File: mgl_ru.info, Node: Dots sample, Prev: Crust sample, Up: Dual plotting samples
+
+3.4.20 Dots - пример использования
+-----------------------------------------------------
+
+\0\b[image src="../png/dots.png"\0\b]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: 1D plot sample, Next: 2D plot sample, Up: Basic features
+
+3.5.1 Пример графиков 1D данных
+---------------------------------------------------
+
+\0\b[image src="../png/sample8.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: 2D plot sample, Next: 3D plot sample, Prev: 1D plot sample, Up: Basic features
+
+3.5.2 Пример графиков 2D данных
+---------------------------------------------------
+
+\0\b[image src="../png/sample9.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: 3D plot sample, Next: Line styles sample, Prev: 2D plot sample, Up: Basic features
+
+3.5.3 Пример графиков 3D данных
+---------------------------------------------------
+
+\0\b[image src="../png/sampleb.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Line styles sample, Next: Arrow styles sample, Prev: 3D plot sample, Up: Basic features
+
+3.5.4 Пример стилей линий и маркеров
+--------------------------------------------------------------
+
+\0\b[image src="../png/sample5.png"\0\b]
+
+NOT AVAILABLE
+
+\1f
+File: mgl_ru.info, Node: Arrow styles sample, Next: Text styles sample, Prev: Line styles sample, Up: Basic features
+
+3.5.5 Пример стилей стрелок
+----------------------------------------------
+
+\0\b[image src="../png/sampled.png"\0\b]
+
+NOT AVAILABLE
+
+\1f
+File: mgl_ru.info, Node: Text styles sample, Next: TeX parsing sample, Prev: Arrow styles sample, Up: Basic features
+
+3.5.6 Пример стилей текста
+--------------------------------------------
+
+\0\b[image src="../png/sample4.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: TeX parsing sample, Next: Font faces sample, Prev: Text styles sample, Up: Basic features
+
+3.5.7 Пример TeX формулы
+-------------------------------------
+
+\0\b[image src="../png/samplee.png"\0\b]
+
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+\1f
+File: mgl_ru.info, Node: Font faces sample, Next: Colors sample, Prev: TeX parsing sample, Up: Basic features
+
+3.5.8 Примеры начертаний шрифта
+------------------------------------------------------
+
+\0\b[image src="../png/fonts.png"\0\b]
+
+NOT AVAILABLE
+
+\1f
+File: mgl_ru.info, Node: Colors sample, Next: Color schemes sample, Prev: Font faces sample, Up: Basic features
+
+3.5.9 Примеры цветов
+---------------------------------
+
+\0\b[image src="../png/colors.png"\0\b]
+
+#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'
+
+\1f
+File: mgl_ru.info, Node: Color schemes sample, Next: Normal transparency, Prev: Colors sample, Up: Basic features
+
+3.5.10 Примеры цветовых схем
+-----------------------------------------------
+
+\0\b[image src="../png/color_schemes.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Normal transparency, Next: Glass-like transparency, Prev: Color schemes sample, Up: Basic features
+
+3.5.11 Обычная прозрачность
+----------------------------------------------
+
+\0\b[image src="../png/type0.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Glass-like transparency, Next: Lamp-like transparency, Prev: Normal transparency, Up: Basic features
+
+3.5.12 "Стеклянная" прозрачность
+------------------------------------------------------
+
+\0\b[image src="../png/type1.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Lamp-like transparency, Prev: Glass-like transparency, Up: Basic features
+
+3.5.13 "Ламповая" прозрачность
+--------------------------------------------------
+
+\0\b[image src="../png/type2.png"\0\b]
+
+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
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: Legend sample, Next: Adding mesh sample, Up: Additional features
+
+3.6.1 Legend - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/legend.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Adding mesh sample, Next: Surf & Cont sample, Prev: Legend sample, Up: Additional features
+
+3.6.2 Добавляем сетку
+-----------------------------------
+
+\0\b[image src="../png/samplea.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Surf & Cont sample, Next: Flow & Dens sample, Prev: Adding mesh sample, Up: Additional features
+
+3.6.3 Surf & Cont - пример использования
+-----------------------------------------------------------
+
+\0\b[image src="../png/surf_cont_y.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Flow & Dens sample, Next: Several light sample, Prev: Surf & Cont sample, Up: Additional features
+
+3.6.4 Flow & Dens - пример использования
+-----------------------------------------------------------
+
+\0\b[image src="../png/flow_dens.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Several light sample, Next: Mirrored surface sample, Prev: Flow & Dens sample, Up: Additional features
+
+3.6.5 Несколько источников света
+--------------------------------------------------------
+
+\0\b[image src="../png/several_light.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Mirrored surface sample, Next: Cont with labels sample, Prev: Several light sample, Up: Additional features
+
+3.6.6 Отражение поверхности
+-----------------------------------------------
+
+\0\b[image src="../png/mirror.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Cont with labels sample, Next: Ternary plot sample, Prev: Mirrored surface sample, Up: Additional features
+
+3.6.7 Cont и подписи - пример использования
+----------------------------------------------------------------------
+
+\0\b[image src="../png/contt.png"\0\b]
+
+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'
+
+\1f
+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 - пример использования
+------------------------------------------------------------
+
+\0\b[image src="../png/ternary.png"\0\b]
+
+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.'
+
+\1f
+File: mgl_ru.info, Node: Coloring by coordinates sample, Next: Drops sample, Prev: Ternary plot sample, Up: Additional features
+
+3.6.9 Окрашивание по положению грани
+---------------------------------------------------------------
+
+\0\b[image src="../png/surf3_rgbd.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Drops sample, Next: Molecules drawing sample, Prev: Coloring by coordinates sample, Up: Additional features
+
+3.6.10 Drops - пример использования
+------------------------------------------------------
+
+\0\b[image src="../png/drops.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Molecules drawing sample, Prev: Drops sample, Up: Additional features
+
+3.6.11 Рисование молекул
+----------------------------------------
+
+\0\b[image src="../png/molecule.png"\0\b]
+
+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'
+
+\1f
+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::
+
+\1f
+File: mgl_ru.info, Node: Curvelinear coorinates sample, Next: 2-axes sample, Up: Advanced features
+
+3.7.1 Криволинейные координаты
+-----------------------------------------------------
+
+\0\b[image src="../png/sample3.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: 2-axes sample, Next: Semi-log sample, Prev: Curvelinear coorinates sample, Up: Advanced features
+
+3.7.2 Несколько осей на одном графике
+----------------------------------------------------------------
+
+\0\b[image src="../png/2_axis.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Semi-log sample, Next: Log-log sample, Prev: 2-axes sample, Up: Advanced features
+
+3.7.3 Semi-log - пример использования
+--------------------------------------------------------
+
+\0\b[image src="../png/semilog.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Log-log sample, Next: Fitting sample, Prev: Semi-log sample, Up: Advanced features
+
+3.7.4 Log-log - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/loglog.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Fitting sample, Next: Envelop sample, Prev: Log-log sample, Up: Advanced features
+
+3.7.5 Fitting - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/fit.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Envelop sample, Next: Sew sample, Prev: Fitting sample, Up: Advanced features
+
+3.7.6 Envelop - пример использования
+-------------------------------------------------------
+
+\0\b[image src="../png/envelop.png"\0\b]
+
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+
+\1f
+File: mgl_ru.info, Node: Sew sample, Next: STFA sample, Prev: Envelop sample, Up: Advanced features
+
+3.7.7 Sew - пример использования
+---------------------------------------------------
+
+\0\b[image src="../png/sew.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: STFA sample, Next: PDE sample, Prev: Sew sample, Up: Advanced features
+
+3.7.8 STFA - пример использования
+----------------------------------------------------
+
+\0\b[image src="../png/stfa.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: PDE sample, Next: Beam tracing sample, Prev: STFA sample, Up: Advanced features
+
+3.7.9 PDE - пример использования
+---------------------------------------------------
+
+\0\b[image src="../png/pde.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Beam tracing sample, Next: Parser sample, Prev: PDE sample, Up: Advanced features
+
+3.7.10 Beam tracing - пример использования
+-------------------------------------------------------------
+
+\0\b[image src="../png/qo2d.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: Parser sample, Next: Manual ticks sample, Prev: Beam tracing sample, Up: Advanced features
+
+3.7.11 Parser - пример использования
+-------------------------------------------------------
+
+\1f
+File: mgl_ru.info, Node: Manual ticks sample, Next: ColumnPlot sample, Prev: Parser sample, Up: Advanced features
+
+3.7.12 Особые метки по осям
+--------------------------------------------
+
+\0\b[image src="../png/tval.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: ColumnPlot sample, Next: StickPlot sample, Prev: Manual ticks sample, Up: Advanced features
+
+3.7.13 ColumnPlot - пример использования
+-----------------------------------------------------------
+
+\0\b[image src="../png/column.png"\0\b]
+
+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
+
+\1f
+File: mgl_ru.info, Node: StickPlot sample, Prev: ColumnPlot sample, Up: Advanced features
+
+3.7.14 StickPlot - пример использования
+----------------------------------------------------------
+
+\0\b[image src="../png/stick.png"\0\b]
+
+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'
+
+\1f
+File: mgl_ru.info, Node: Stereo image sample, Prev: StickPlot sample, Up: Advanced features
+
+3.7.15 Пример стерео изображения
+-------------------------------------------------------
+
+\0\b[image src="../png/stereo.png"\0\b]
+
+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
+
+
+\1f
+Local Variables:
+coding: utf-8
+End: