summaryrefslogtreecommitdiffstats
path: root/Lib/__phello__.foo.py
blob: 8e8623ee1daacbd61475bb84a840813dd99da18d (plain)
1
# This file exists as a helper for the test.test_frozen module.
neric/tkbltGrPostscript.C | 84 - tkblt/generic/tkbltGrPostscript.h | 73 - tkblt/generic/tkbltGrPostscriptOp.C | 183 - tkblt/generic/tkbltGrPostscriptOp.h | 41 - tkblt/generic/tkbltGrText.C | 233 - tkblt/generic/tkbltGrText.h | 79 - tkblt/generic/tkbltGrXAxisOp.C | 222 - tkblt/generic/tkbltGrXAxisOp.h | 39 - tkblt/generic/tkbltGraph.C | 1458 ----- tkblt/generic/tkbltGraph.h | 256 - tkblt/generic/tkbltGraphBar.C | 516 -- tkblt/generic/tkbltGraphBar.h | 119 - tkblt/generic/tkbltGraphLine.C | 267 - tkblt/generic/tkbltGraphLine.h | 76 - tkblt/generic/tkbltGraphOp.C | 464 -- tkblt/generic/tkbltGraphOp.h | 44 - tkblt/generic/tkbltGraphSup.C | 690 --- tkblt/generic/tkbltInt.C | 74 - tkblt/generic/tkbltInt.h | 58 - tkblt/generic/tkbltNsUtil.C | 129 - tkblt/generic/tkbltNsUtil.h | 64 - tkblt/generic/tkbltOp.C | 171 - tkblt/generic/tkbltOp.h | 67 - tkblt/generic/tkbltParse.C | 388 -- tkblt/generic/tkbltParse.h | 55 - tkblt/generic/tkbltStubInit.c | 30 - tkblt/generic/tkbltStubLib.C | 15 - tkblt/generic/tkbltSwitch.C | 407 -- tkblt/generic/tkbltSwitch.h | 129 - tkblt/generic/tkbltVecCmd.C | 1821 ------ tkblt/generic/tkbltVecInt.h | 202 - tkblt/generic/tkbltVecMath.C | 1612 ----- tkblt/generic/tkbltVecOp.C | 56 - tkblt/generic/tkbltVector.C | 1875 ------ tkblt/generic/tkbltVector.h | 140 - tkblt/library/graph.tcl | 554 -- tkblt/pkgIndex.tcl.in | 5 - tkblt/tclconfig/ChangeLog | 1003 --- tkblt/tclconfig/README.txt | 26 - tkblt/tclconfig/install-sh | 528 -- tkblt/tclconfig/tcl.m4 | 4176 ------------- tkblt/tests/all.tcl | 11 - tkblt/tests/axis.tcl | 105 - tkblt/tests/barelement.tcl | 97 - tkblt/tests/bargraph.tcl | 80 - tkblt/tests/barpen.tcl | 51 - tkblt/tests/base.tcl | 142 - tkblt/tests/crosshairs.tcl | 26 - tkblt/tests/legend.tcl | 101 - tkblt/tests/lineelement.tcl | 105 - tkblt/tests/linegraph.tcl | 75 - tkblt/tests/linemarker.tcl | 34 - tkblt/tests/linepen.tcl | 55 - tkblt/tests/marker.tcl | 33 - tkblt/tests/markers.tcl | 4 - tkblt/tests/polygonmarker.tcl | 30 - tkblt/tests/ps.tcl | 29 - tkblt/tests/test.tcl | 10 - tkblt/tests/textmarker.tcl | 44 - tkblt/tkbltConfig.sh.in | 45 - tkblt/tools/genStubs.tcl | 1179 ---- 135 files changed, 60291 deletions(-) delete mode 100644 tkblt/.gitignore delete mode 100644 tkblt/LICENSE delete mode 100644 tkblt/Makefile.in delete mode 100644 tkblt/README.md delete mode 100644 tkblt/aclocal.m4 delete mode 100755 tkblt/configure delete mode 100644 tkblt/configure.ac delete mode 100644 tkblt/doc/BLT.html delete mode 100644 tkblt/doc/BLT.n delete mode 100644 tkblt/doc/barchart.html delete mode 100644 tkblt/doc/barchart.n delete mode 100644 tkblt/doc/graph.html delete mode 100644 tkblt/doc/graph.n delete mode 100644 tkblt/doc/vector.html delete mode 100644 tkblt/doc/vector.n delete mode 100644 tkblt/generic/tkblt.decls delete mode 100644 tkblt/generic/tkbltChain.C delete mode 100644 tkblt/generic/tkbltChain.h delete mode 100644 tkblt/generic/tkbltConfig.C delete mode 100644 tkblt/generic/tkbltConfig.h delete mode 100644 tkblt/generic/tkbltDecls.h delete mode 100644 tkblt/generic/tkbltGrAxis.C delete mode 100644 tkblt/generic/tkbltGrAxis.h delete mode 100644 tkblt/generic/tkbltGrAxisOp.C delete mode 100644 tkblt/generic/tkbltGrAxisOp.h delete mode 100644 tkblt/generic/tkbltGrAxisOption.C delete mode 100644 tkblt/generic/tkbltGrAxisOption.h delete mode 100644 tkblt/generic/tkbltGrBind.C delete mode 100644 tkblt/generic/tkbltGrBind.h delete mode 100644 tkblt/generic/tkbltGrDef.h delete mode 100644 tkblt/generic/tkbltGrElem.C delete mode 100644 tkblt/generic/tkbltGrElem.h delete mode 100644 tkblt/generic/tkbltGrElemBar.C delete mode 100644 tkblt/generic/tkbltGrElemBar.h delete mode 100644 tkblt/generic/tkbltGrElemLine.C delete mode 100644 tkblt/generic/tkbltGrElemLine.h delete mode 100644 tkblt/generic/tkbltGrElemLineSpline.C delete mode 100644 tkblt/generic/tkbltGrElemOp.C delete mode 100644 tkblt/generic/tkbltGrElemOp.h delete mode 100644 tkblt/generic/tkbltGrElemOption.C delete mode 100644 tkblt/generic/tkbltGrElemOption.h delete mode 100644 tkblt/generic/tkbltGrHairs.C delete mode 100644 tkblt/generic/tkbltGrHairs.h delete mode 100644 tkblt/generic/tkbltGrHairsOp.C delete mode 100644 tkblt/generic/tkbltGrHairsOp.h delete mode 100644 tkblt/generic/tkbltGrLegd.C delete mode 100644 tkblt/generic/tkbltGrLegd.h delete mode 100644 tkblt/generic/tkbltGrLegdOp.C delete mode 100644 tkblt/generic/tkbltGrLegdOp.h delete mode 100644 tkblt/generic/tkbltGrMarker.C delete mode 100644 tkblt/generic/tkbltGrMarker.h delete mode 100644 tkblt/generic/tkbltGrMarkerLine.C delete mode 100644 tkblt/generic/tkbltGrMarkerLine.h delete mode 100644 tkblt/generic/tkbltGrMarkerOp.C delete mode 100644 tkblt/generic/tkbltGrMarkerOp.h delete mode 100644 tkblt/generic/tkbltGrMarkerOption.C delete mode 100644 tkblt/generic/tkbltGrMarkerOption.h delete mode 100644 tkblt/generic/tkbltGrMarkerPolygon.C delete mode 100644 tkblt/generic/tkbltGrMarkerPolygon.h delete mode 100644 tkblt/generic/tkbltGrMarkerText.C delete mode 100644 tkblt/generic/tkbltGrMarkerText.h delete mode 100644 tkblt/generic/tkbltGrMisc.C delete mode 100644 tkblt/generic/tkbltGrMisc.h delete mode 100644 tkblt/generic/tkbltGrPSOutput.C delete mode 100644 tkblt/generic/tkbltGrPSOutput.h delete mode 100644 tkblt/generic/tkbltGrPen.C delete mode 100644 tkblt/generic/tkbltGrPen.h delete mode 100644 tkblt/generic/tkbltGrPenBar.C delete mode 100644 tkblt/generic/tkbltGrPenBar.h delete mode 100644 tkblt/generic/tkbltGrPenLine.C delete mode 100644 tkblt/generic/tkbltGrPenLine.h delete mode 100644 tkblt/generic/tkbltGrPenOp.C delete mode 100644 tkblt/generic/tkbltGrPenOp.h delete mode 100644 tkblt/generic/tkbltGrPenOption.C delete mode 100644 tkblt/generic/tkbltGrPostscript.C delete mode 100644 tkblt/generic/tkbltGrPostscript.h delete mode 100644 tkblt/generic/tkbltGrPostscriptOp.C delete mode 100644 tkblt/generic/tkbltGrPostscriptOp.h delete mode 100644 tkblt/generic/tkbltGrText.C delete mode 100644 tkblt/generic/tkbltGrText.h delete mode 100644 tkblt/generic/tkbltGrXAxisOp.C delete mode 100644 tkblt/generic/tkbltGrXAxisOp.h delete mode 100644 tkblt/generic/tkbltGraph.C delete mode 100644 tkblt/generic/tkbltGraph.h delete mode 100644 tkblt/generic/tkbltGraphBar.C delete mode 100644 tkblt/generic/tkbltGraphBar.h delete mode 100644 tkblt/generic/tkbltGraphLine.C delete mode 100644 tkblt/generic/tkbltGraphLine.h delete mode 100644 tkblt/generic/tkbltGraphOp.C delete mode 100644 tkblt/generic/tkbltGraphOp.h delete mode 100644 tkblt/generic/tkbltGraphSup.C delete mode 100644 tkblt/generic/tkbltInt.C delete mode 100644 tkblt/generic/tkbltInt.h delete mode 100644 tkblt/generic/tkbltNsUtil.C delete mode 100644 tkblt/generic/tkbltNsUtil.h delete mode 100644 tkblt/generic/tkbltOp.C delete mode 100644 tkblt/generic/tkbltOp.h delete mode 100644 tkblt/generic/tkbltParse.C delete mode 100644 tkblt/generic/tkbltParse.h delete mode 100644 tkblt/generic/tkbltStubInit.c delete mode 100644 tkblt/generic/tkbltStubLib.C delete mode 100644 tkblt/generic/tkbltSwitch.C delete mode 100644 tkblt/generic/tkbltSwitch.h delete mode 100644 tkblt/generic/tkbltVecCmd.C delete mode 100644 tkblt/generic/tkbltVecInt.h delete mode 100644 tkblt/generic/tkbltVecMath.C delete mode 100644 tkblt/generic/tkbltVecOp.C delete mode 100644 tkblt/generic/tkbltVector.C delete mode 100644 tkblt/generic/tkbltVector.h delete mode 100644 tkblt/library/graph.tcl delete mode 100644 tkblt/pkgIndex.tcl.in delete mode 100644 tkblt/tclconfig/ChangeLog delete mode 100644 tkblt/tclconfig/README.txt delete mode 100755 tkblt/tclconfig/install-sh delete mode 100644 tkblt/tclconfig/tcl.m4 delete mode 100644 tkblt/tests/all.tcl delete mode 100644 tkblt/tests/axis.tcl delete mode 100644 tkblt/tests/barelement.tcl delete mode 100644 tkblt/tests/bargraph.tcl delete mode 100644 tkblt/tests/barpen.tcl delete mode 100644 tkblt/tests/base.tcl delete mode 100644 tkblt/tests/crosshairs.tcl delete mode 100644 tkblt/tests/legend.tcl delete mode 100644 tkblt/tests/lineelement.tcl delete mode 100644 tkblt/tests/linegraph.tcl delete mode 100644 tkblt/tests/linemarker.tcl delete mode 100644 tkblt/tests/linepen.tcl delete mode 100644 tkblt/tests/marker.tcl delete mode 100644 tkblt/tests/markers.tcl delete mode 100644 tkblt/tests/polygonmarker.tcl delete mode 100644 tkblt/tests/ps.tcl delete mode 100644 tkblt/tests/test.tcl delete mode 100644 tkblt/tests/textmarker.tcl delete mode 100755 tkblt/tkbltConfig.sh.in delete mode 100644 tkblt/tools/genStubs.tcl diff --git a/tkblt/.gitignore b/tkblt/.gitignore deleted file mode 100644 index c8694d4..0000000 --- a/tkblt/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Compiled Object files -*.slo -*.lo -*.o -*.obj - -# Precompiled Headers -*.gch -*.pch - -# Compiled Dynamic libraries -*.so -*.dylib -*.dll - -# Fortran module files -*.mod - -# Compiled Static libraries -*.lai -*.la -*.a -*.lib - -# Executables -*.exe -*.out -*.app - -*~ diff --git a/tkblt/LICENSE b/tkblt/LICENSE deleted file mode 100644 index ffe507e..0000000 --- a/tkblt/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Smithsonian Astrophysical Observatory, Cambridge, MA, USA -This code has been modified under the terms listed below and is made -available under the same terms. - -Copyright 1991-2004 George A Howlett. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tkblt/Makefile.in b/tkblt/Makefile.in deleted file mode 100644 index 953beba..0000000 --- a/tkblt/Makefile.in +++ /dev/null @@ -1,468 +0,0 @@ -# Makefile.in -- -# -# This file is a Makefile for Sample TEA Extension. If it has the name -# "Makefile.in" then it is a template for a Makefile; to generate the -# actual Makefile, run "./configure", which is a configuration script -# generated by the "autoconf" program (constructs like "@foo@" will get -# replaced in the actual Makefile. -# -# Copyright (c) 1999 Scriptics Corporation. -# Copyright (c) 2002-2005 ActiveState Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -#======================================================================== -# Add additional lines to handle any additional AC_SUBST cases that -# have been added in a customized configure script. -#======================================================================== - -#SAMPLE_NEW_VAR = @SAMPLE_NEW_VAR@ - -#======================================================================== -# Nothing of the variables below this line should need to be changed. -# Please check the TARGETS section below to make sure the make targets -# are correct. -#======================================================================== - -#======================================================================== -# The names of the source files is defined in the configure script. -# The object files are used for linking into the final library. -# This will be used when a dist target is added to the Makefile. -# It is not important to specify the directory, as long as it is the -# $(srcdir) or in the generic, win or unix subdirectory. -#======================================================================== - -PKG_SOURCES = @PKG_SOURCES@ -PKG_OBJECTS = @PKG_OBJECTS@ - -PKG_STUB_SOURCES = @PKG_STUB_SOURCES@ -PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@ - -#======================================================================== -# PKG_TCL_SOURCES identifies Tcl runtime files that are associated with -# this package that need to be installed, if any. -#======================================================================== - -PKG_TCL_SOURCES = @PKG_TCL_SOURCES@ - -#======================================================================== -# This is a list of public header files to be installed, if any. -#======================================================================== - -PKG_HEADERS = @PKG_HEADERS@ - -#======================================================================== -# "PKG_LIB_FILE" refers to the library (dynamic or static as per -# configuration options) composed of the named objects. -#======================================================================== - -PKG_LIB_FILE = @PKG_LIB_FILE@ -PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@ - -#lib_BINARIES = $(PKG_LIB_FILE) -lib_BINARIES = $(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE) -BINARIES = $(lib_BINARIES) - -SHELL = @SHELL@ - -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -libdir = @libdir@ -includedir = @includedir@ -datarootdir = @datarootdir@ -datadir = @datadir@ -mandir = @mandir@ - -DESTDIR = - -PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION) -pkgdatadir = $(datadir)/$(PKG_DIR) -pkglibdir = $(libdir)/$(PKG_DIR) -pkgincludedir = $(includedir)/$(PKG_DIR) - -top_builddir = @abs_top_builddir@ - -INSTALL_OPTIONS = -INSTALL = @INSTALL@ $(INSTALL_OPTIONS) -INSTALL_DATA_DIR = ${INSTALL} -d -m 755 -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_LIBRARY = ${INSTALL_DATA} - -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -CC = @CC@ -CXX = @CXX@ -CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ -CFLAGS_WARNING = @CFLAGS_WARNING@ -EXEEXT = @EXEEXT@ -LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ -MAKE_LIB = @MAKE_LIB@ -MAKE_SHARED_LIB = @MAKE_SHARED_LIB@ -MAKE_STATIC_LIB = @MAKE_STATIC_LIB@ -MAKE_STUB_LIB = @MAKE_STUB_LIB@ -OBJEXT = @OBJEXT@ -RANLIB = @RANLIB@ -RANLIB_STUB = @RANLIB_STUB@ -SHLIB_CFLAGS = @SHLIB_CFLAGS@ -SHLIB_LD = @SHLIB_LD@ -SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ -STLIB_LD = @STLIB_LD@ -#TCL_DEFS = @TCL_DEFS@ -TCL_BIN_DIR = @TCL_BIN_DIR@ -TCL_SRC_DIR = @TCL_SRC_DIR@ -#TK_BIN_DIR = @TK_BIN_DIR@ -#TK_SRC_DIR = @TK_SRC_DIR@ - -# Not used, but retained for reference of what libs Tcl required -#TCL_LIBS = @TCL_LIBS@ - -#======================================================================== -# TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our -# package without installing. The other environment variables allow us -# to test against an uninstalled Tcl. Add special env vars that you -# require for testing here (like TCLX_LIBRARY). -#======================================================================== - -EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR) -#EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR):$(TK_BIN_DIR) -TCLLIBPATH = $(top_builddir) -TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` -PKG_ENV = @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \ - PATH="$(EXTRA_PATH):$(PATH)" \ - TCLLIBPATH="$(TCLLIBPATH)" - -TCLSH_PROG = @TCLSH_PROG@ -TCLSH = $(TCLSH_ENV) $(PKG_ENV) $(TCLSH_PROG) - -#WISH_ENV = TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library` -#WISH_PROG = @WISH_PROG@ -#WISH = $(TCLSH_ENV) $(WISH_ENV) $(PKG_ENV) $(WISH_PROG) - -SHARED_BUILD = @SHARED_BUILD@ - -#INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ -INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ @TK_INCLUDES@ @TK_XINCLUDES@ - -PKG_CFLAGS = @PKG_CFLAGS@ - -# TCL_DEFS is not strictly need here, but if you remove it, then you -# must make sure that configure.ac checks for the necessary components -# that your library may use. TCL_DEFS can actually be a problem if -# you do not compile with a similar machine setup as the Tcl core was -# compiled with. -#DEFS = $(TCL_DEFS) @DEFS@ $(PKG_CFLAGS) -DEFS = @DEFS@ $(PKG_CFLAGS) - -# Move pkgIndex.tcl to 'BINARIES' var if it is generated in the Makefile -CONFIG_CLEAN_FILES = Makefile pkgIndex.tcl -CLEANFILES = @CLEANFILES@ - -CPPFLAGS = @CPPFLAGS@ -LIBS = @PKG_LIBS@ @LIBS@ -AR = @AR@ -CFLAGS = @CFLAGS@ -CXXFLAGS = @CXXFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_DEFAULT) $(CFLAGS_WARNING) $(SHLIB_CFLAGS) $(CFLAGS) -COMPILE_CXX = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_DEFAULT) $(CFLAGS_WARNING) $(SHLIB_CFLAGS) $(CXXFLAGS) - -GDB = gdb -VALGRIND = valgrind -VALGRINDARGS = --tool=memcheck --num-callers=8 --leak-resolution=high \ - --leak-check=yes --show-reachable=yes -v - -.SUFFIXES: .c .C .$(OBJEXT) - -#======================================================================== -# Start of user-definable TARGETS section -#======================================================================== - -#======================================================================== -# TEA TARGETS. Please note that the "libraries:" target refers to platform -# independent files, and the "binaries:" target includes executable programs and -# platform-dependent libraries. Modify these targets so that they install -# the various pieces of your package. The make and install rules -# for the BINARIES that you specified above have already been done. -#======================================================================== - -all: binaries libraries doc - -#======================================================================== -# The binaries target builds executable programs, Windows .dll's, unix -# shared/static libraries, and any other platform-dependent files. -# The list of targets to build for "binaries:" is specified at the top -# of the Makefile, in the "BINARIES" variable. -#======================================================================== - -binaries: $(BINARIES) - -libraries: - -#======================================================================== -# Your doc target should differentiate from doc builds (by the developer) -# and doc installs (see install-doc), which just install the docs on the -# end user machine when building from source. -#======================================================================== - -doc: - @echo "If you have documentation to create, place the commands to" - @echo "build the docs in the 'doc:' target. For example:" - @echo " xml2nroff sample.xml > sample.n" - @echo " xml2html sample.xml > sample.html" - -install: all install-binaries install-libraries install-doc - -install-binaries: binaries install-lib-binaries install-bin-binaries - -#======================================================================== -# This rule installs platform-independent files, such as header files. -# The list=...; for p in $$list handles the empty list case x-platform. -#======================================================================== - -install-libraries: libraries - @$(INSTALL_DATA_DIR) $(DESTDIR)$(includedir) - @echo "Installing header files in $(DESTDIR)$(includedir)" - @list='$(PKG_HEADERS)'; for i in $$list; do \ - echo "Installing $(srcdir)/$$i" ; \ - $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) ; \ - done; - -#======================================================================== -# Install documentation. Unix manpages should go in the $(mandir) -# directory. -#======================================================================== - -install-doc: doc - @$(INSTALL_DATA_DIR) $(DESTDIR)$(mandir)/mann - @echo "Installing documentation in $(DESTDIR)$(mandir)" - @list='$(srcdir)/doc/*.n'; for i in $$list; do \ - echo "Installing $$i"; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \ - done - -test: binaries libraries - $(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS) \ - -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ - [list load `@CYGPATH@ $(PKG_LIB_FILE)` $(PACKAGE_NAME)]" - -genstubs: $(srcdir)/tools/genStubs.tcl $(srcdir)/src/tkblt.decls - @echo $(TCLSH) $(srcdir)/tools/genStubs.tcl $(srcdir)/src $(srcdir)/src/tkblt.decls - @$(TCLSH) $(srcdir)/tools/genStubs.tcl $(srcdir)/src $(srcdir)/src/tkblt.decls -shell: binaries libraries - @$(TCLSH) $(SCRIPT) - -gdb: - $(TCLSH_ENV) $(PKG_ENV) $(GDB) $(TCLSH_PROG) $(SCRIPT) - -gdb-test: binaries libraries - $(TCLSH_ENV) $(PKG_ENV) $(GDB) \ - --args $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \ - $(TESTFLAGS) -singleproc 1 \ - -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ - [list load `@CYGPATH@ $(PKG_LIB_FILE)` $(PACKAGE_NAME)]" - -valgrind: binaries libraries - $(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) \ - `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS) - -valgrindshell: binaries libraries - $(TCLSH_ENV) $(PKG_ENV) $(VALGRIND) $(VALGRINDARGS) $(TCLSH_PROG) $(SCRIPT) - -depend: - -#======================================================================== -# $(PKG_LIB_FILE) should be listed as part of the BINARIES variable -# mentioned above. That will ensure that this target is built when you -# run "make binaries". -# -# The $(PKG_OBJECTS) objects are created and linked into the final -# library. In most cases these object files will correspond to the -# source files above. -#======================================================================== - -$(PKG_LIB_FILE): $(PKG_OBJECTS) - -rm -f $(PKG_LIB_FILE) - ${MAKE_LIB} - $(RANLIB) $(PKG_LIB_FILE) - -$(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS) - -rm -f $(PKG_STUB_LIB_FILE) - ${MAKE_STUB_LIB} - $(RANLIB_STUB) $(PKG_STUB_LIB_FILE) - -#======================================================================== -# We need to enumerate the list of .c to .o lines here. -# -# In the following lines, $(srcdir) refers to the toplevel directory -# containing your extension. If your sources are in a subdirectory, -# you will have to modify the paths to reflect this: -# -# sample.$(OBJEXT): $(srcdir)/generic/sample.c -# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/sample.c` -o $@ -# -# Setting the VPATH variable to a list of paths will cause the makefile -# to look into these paths when resolving .c to .obj dependencies. -# As necessary, add $(srcdir):$(srcdir)/compat:.... -#======================================================================== - -VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win:$(srcdir)/macosx - -.c.@OBJEXT@: - $(COMPILE) -c `@CYGPATH@ $<` -o $@ - -.C.@OBJEXT@: - $(COMPILE_CXX) -c `@CYGPATH@ $<` -o $@ - -#======================================================================== -# Distribution creation -# You may need to tweak this target to make it work correctly. -#======================================================================== - -#COMPRESS = tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar -COMPRESS = tar zcvf $(PKG_DIR).tar.gz $(PKG_DIR) -DIST_ROOT = /tmp/dist -DIST_DIR = $(DIST_ROOT)/$(PKG_DIR) - -DIST_INSTALL_DATA = CPPROG='cp -p' $(INSTALL) -m 644 -DIST_INSTALL_SCRIPT = CPPROG='cp -p' $(INSTALL) -m 755 - -dist-clean: - rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.* - -dist: dist-clean - $(INSTALL_DATA_DIR) $(DIST_DIR) - - # TEA files - $(DIST_INSTALL_DATA) $(srcdir)/Makefile.in \ - $(srcdir)/aclocal.m4 $(srcdir)/configure.ac \ - $(DIST_DIR)/ - $(DIST_INSTALL_SCRIPT) $(srcdir)/configure $(DIST_DIR)/ - - $(INSTALL_DATA_DIR) $(DIST_DIR)/tclconfig - $(DIST_INSTALL_DATA) $(srcdir)/tclconfig/README.txt \ - $(srcdir)/tclconfig/tcl.m4 $(srcdir)/tclconfig/install-sh \ - $(DIST_DIR)/tclconfig/ - - # Extension files - $(DIST_INSTALL_DATA) \ - $(srcdir)/ChangeLog \ - $(srcdir)/README.sha \ - $(srcdir)/license.terms \ - $(srcdir)/README \ - $(srcdir)/pkgIndex.tcl.in \ - $(DIST_DIR)/ - - list='demos doc generic library mac tests unix win'; \ - for p in $$list; do \ - if test -d $(srcdir)/$$p ; then \ - $(INSTALL_DATA_DIR) $(DIST_DIR)/$$p; \ - $(DIST_INSTALL_DATA) $(srcdir)/$$p/* $(DIST_DIR)/$$p/; \ - fi; \ - done - - (cd $(DIST_ROOT); $(COMPRESS);) - -#======================================================================== -# End of user-definable section -#======================================================================== - -#======================================================================== -# Don't modify the file to clean here. Instead, set the "CLEANFILES" -# variable in configure.ac -#======================================================================== - -clean: - -test -z "$(BINARIES)" || rm -f $(BINARIES) - -rm -f *.$(OBJEXT) core *.core - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean: clean - -rm -f *.tab.c - -rm -f $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log config.status - -#======================================================================== -# Install binary object libraries. On Windows this includes both .dll and -# .lib files. Because the .lib files are not explicitly listed anywhere, -# we need to deduce their existence from the .dll file of the same name. -# Library files go into the lib directory. -# In addition, this will generate the pkgIndex.tcl -# file in the install location (assuming it can find a usable tclsh shell) -# -# You should not have to modify this target. -#======================================================================== - -install-lib-binaries: binaries - @$(INSTALL_DATA_DIR) $(DESTDIR)$(pkglibdir) - @list='$(lib_BINARIES)'; for p in $$list; do \ - if test -f $$p; then \ - echo " $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p"; \ - $(INSTALL_LIBRARY) $$p $(DESTDIR)$(pkglibdir)/$$p; \ - ext=`echo $$p|sed -e "s/.*\.//"`; \ - if test "x$$ext" = "xdll"; then \ - lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \ - if test -f $$lib; then \ - echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \ - $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \ - fi; \ - fi; \ - fi; \ - done - @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - destp=`basename $$p`; \ - echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkglibdir)/$$destp; \ - fi; \ - done - @if test "x$(SHARED_BUILD)" = "x1"; then \ - echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \ - $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \ - fi - $(INSTALL_DATA) tkbltConfig.sh $(DESTDIR)$(libdir) - -#======================================================================== -# Install binary executables (e.g. .exe files and dependent .dll files) -# This is for files that must go in the bin directory (located next to -# wish and tclsh), like dependent .dll files on Windows. -# -# You should not have to modify this target, except to define bin_BINARIES -# above if necessary. -#======================================================================== - -install-bin-binaries: binaries - @$(INSTALL_DATA_DIR) $(DESTDIR)$(bindir) - @list='$(bin_BINARIES)'; for p in $$list; do \ - if test -f $$p; then \ - echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \ - $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \ - fi; \ - done - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -uninstall-binaries: - list='$(lib_BINARIES)'; for p in $$list; do \ - rm -f $(DESTDIR)$(pkglibdir)/$$p; \ - done - list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ - p=`basename $$p`; \ - rm -f $(DESTDIR)$(pkglibdir)/$$p; \ - done - list='$(bin_BINARIES)'; for p in $$list; do \ - rm -f $(DESTDIR)$(bindir)/$$p; \ - done - -.PHONY: all binaries clean depend distclean doc install libraries test -.PHONY: gdb gdb-test valgrind valgrindshell - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/tkblt/README.md b/tkblt/README.md deleted file mode 100644 index c5a5b74..0000000 --- a/tkblt/README.md +++ /dev/null @@ -1,28 +0,0 @@ -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1041783.svg)](https://doi.org/10.5281/zenodo.1041783) -# tkblt -Introduction to the TkBLT library - -TkBLT is a library of extensions to the Tk library. It adds new -commands and variables to the application's interpreter. - -TkBLT is a derived version of the BLT Toolkit by George A. Howlett, -for Tcl/Tk 8.5/8.6, is TEA compatible, with full support for MacOSX and -Windows, and is fully compatible with the Tk API. TkBLT is released -under the original BSD license. TkBLT includes only the Graph and -Barchart Tk widgets, and the Tcl Vector command. - -The following commands are added to the interpreter from the TkBLT library: - -Graph: A 2D plotting widget. Plots two variable data in a window with an optional -legend and annotations. It has of several components; coordinate axes, -crosshairs, a legend, and a collection of elements and tags. - -Barchart: A barchart widget. Plots two-variable data as rectangular bars in a -window. The x-coordinate values designate the position of the bar along -the x-axis, while the y-coordinate values designate the magnitude. -The barchart widget has of several components; coordinate axes, -crosshairs, a legend, and a collection of elements and tags. - -Vector: Creates a vector of floating point values. The vector's components -can be manipulated in three ways: through a Tcl array variable, a Tcl -command, or the C API. diff --git a/tkblt/aclocal.m4 b/tkblt/aclocal.m4 deleted file mode 100644 index 0b05739..0000000 --- a/tkblt/aclocal.m4 +++ /dev/null @@ -1,9 +0,0 @@ -# -# Include the TEA standard macro set -# - -builtin(include,tclconfig/tcl.m4) - -# -# Add here whatever m4 macros you want to define for your package -# diff --git a/tkblt/configure b/tkblt/configure deleted file mode 100755 index 639d770..0000000 --- a/tkblt/configure +++ /dev/null @@ -1,10581 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for tkblt 3.2. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='tkblt' -PACKAGE_TARNAME='tkblt' -PACKAGE_VERSION='3.2' -PACKAGE_STRING='tkblt 3.2' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='LTLIBOBJS -LIBOBJS -PATCHLEVEL -MINOR_VERSION -MAJOR_VERSION -tkblt_STUB_LIB_PATH -tkblt_BUILD_STUB_LIB_PATH -tkblt_STUB_LIB_SPEC -tkblt_BUILD_STUB_LIB_SPEC -tkblt_LIB_SPEC -tkblt_BUILD_LIB_SPEC -WISH_PROG -TCLSH_PROG -VC_MANIFEST_EMBED_EXE -VC_MANIFEST_EMBED_DLL -RANLIB_STUB -MAKE_STUB_LIB -MAKE_STATIC_LIB -MAKE_SHARED_LIB -MAKE_LIB -TCL_DBGX -LDFLAGS_DEFAULT -CFLAGS_DEFAULT -LD_LIBRARY_PATH_VAR -SHLIB_CFLAGS -SHLIB_LD_LIBS -SHLIB_LD -STLIB_LD -CFLAGS_WARNING -CFLAGS_OPTIMIZE -CFLAGS_DEBUG -RC -CELIB_DIR -AR -STUBS_BUILD -SHARED_BUILD -TCL_THREADS -XMKMF -TK_XLIB_DIR_NATIVE -TK_TOP_DIR_NATIVE -TK_INCLUDES -TCL_TOP_DIR_NATIVE -TCL_INCLUDES -PKG_OBJECTS -PKG_SOURCES -ac_ct_CXX -CXXFLAGS -CXX -EGREP -GREP -RANLIB -SET_MAKE -CPP -TK_XINCLUDES -TK_LIBS -TK_STUB_LIB_SPEC -TK_STUB_LIB_FLAG -TK_STUB_LIB_FILE -TK_LIB_SPEC -TK_LIB_FLAG -TK_LIB_FILE -TK_SRC_DIR -TK_BIN_DIR -TK_VERSION -TCL_SHLIB_LD_LIBS -TCL_LD_FLAGS -TCL_EXTRA_CFLAGS -TCL_DEFS -TCL_LIBS -CLEANFILES -OBJEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -TCL_STUB_LIB_SPEC -TCL_STUB_LIB_FLAG -TCL_STUB_LIB_FILE -TCL_LIB_SPEC -TCL_LIB_FLAG -TCL_LIB_FILE -TCL_SRC_DIR -TCL_BIN_DIR -TCL_PATCH_LEVEL -TCL_VERSION -INSTALL_LIBRARY -INSTALL_SCRIPT -INSTALL_PROGRAM -INSTALL_DATA -INSTALL_DATA_DIR -INSTALL -PKG_CFLAGS -PKG_LIBS -PKG_INCLUDES -PKG_HEADERS -PKG_TCL_SOURCES -PKG_STUB_OBJECTS -PKG_STUB_SOURCES -PKG_STUB_LIB_FILE -PKG_LIB_FILE -EXEEXT -CYGPATH -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_tcl -with_tk -with_tclinclude -with_tkinclude -with_x -enable_threads -enable_shared -enable_stubs -enable_64bit -enable_64bit_vis -enable_rpath -enable_wince -with_celib -enable_symbols -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -CXX -CXXFLAGS -CCC -XMKMF' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures tkblt 3.2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/tkblt] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of tkblt 3.2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-threads build with threads (default: on) - --enable-shared build and link with shared libraries (default: on) - --enable-stubs build and link with stub libraries. Always true for - shared builds (default: on) - --enable-64bit enable 64bit support (default: off) - --enable-64bit-vis enable 64bit Sparc VIS support (default: off) - --disable-rpath disable rpath support (default: on) - --enable-wince enable Win/CE support (where applicable) - --enable-symbols build with debugging symbols (default: off) - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-tcl directory containing tcl configuration - (tclConfig.sh) - --with-tk directory containing tk configuration (tkConfig.sh) - --with-tclinclude directory containing the public Tcl header files - --with-tkinclude directory containing the public Tk header files - --with-x use the X Window System - --with-celib=DIR use Windows/CE support library from DIR - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - XMKMF Path to xmkmf, Makefile generator for X Window System - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -tkblt configure 3.2 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by tkblt $as_me 3.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -#-------------------------------------------------------------------- -# Call TEA_INIT as the first TEA_ macro to set up initial vars. -# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" -# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. -#-------------------------------------------------------------------- - - - TEA_VERSION="3.13" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking TEA configuration" >&5 -$as_echo_n "checking TEA configuration... " >&6; } - if test x"${PACKAGE_NAME}" = x ; then - as_fn_error $? " -The PACKAGE_NAME variable must be defined by your TEA configure.ac" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (TEA ${TEA_VERSION})" >&5 -$as_echo "ok (TEA ${TEA_VERSION})" >&6; } - - # If the user did not set CFLAGS, set it now to keep macros - # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2". - if test "${CFLAGS+set}" != "set" ; then - CFLAGS="" - fi - - case "`uname -s`" in - *win32*|*WIN32*|*MINGW32_*|*MINGW64_*) - # Extract the first word of "cygpath", so it can be a program name with args. -set dummy cygpath; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CYGPATH+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CYGPATH"; then - ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CYGPATH="cygpath -m" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo" -fi -fi -CYGPATH=$ac_cv_prog_CYGPATH -if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 -$as_echo "$CYGPATH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - EXEEXT=".exe" - TEA_PLATFORM="windows" - ;; - *CYGWIN_*) - EXEEXT=".exe" - # CYGPATH and TEA_PLATFORM are determined later in LOAD_TCLCONFIG - ;; - *) - CYGPATH=echo - # Maybe we are cross-compiling.... - case ${host_alias} in - *mingw32*) - EXEEXT=".exe" - TEA_PLATFORM="windows" - ;; - *) - EXEEXT="" - TEA_PLATFORM="unix" - ;; - esac - ;; - esac - - # Check if exec_prefix is set. If not use fall back to prefix. - # Note when adjusted, so that TEA_PREFIX can correct for this. - # This is needed for recursive configures, since autoconf propagates - # $prefix, but not $exec_prefix (doh!). - if test x$exec_prefix = xNONE ; then - exec_prefix_default=yes - exec_prefix=$prefix - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 -$as_echo "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} - - - - - # This package name must be replaced statically for AC_SUBST to work - - # Substitute STUB_LIB_FILE in case package creates a stub library too. - - - # We AC_SUBST these here to ensure they are subst'ed, - # in case the user doesn't call TEA_ADD_... - - - - - - - - - # Configure the installer. - - INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c' - INSTALL_DATA_DIR='${INSTALL} -d -m 755' - INSTALL_DATA='${INSTALL} -m 644' - INSTALL_PROGRAM='${INSTALL} -m 755' - INSTALL_SCRIPT='${INSTALL} -m 755' - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - - # TEA specific: - if test "${TEA_PLATFORM}" = "windows" ; then - tcl_cv_sys_version=windows - else - tcl_cv_sys_version=`uname -s`-`uname -r` - if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} - tcl_cv_sys_version=unknown - else - if test "`uname -s`" = "AIX" ; then - tcl_cv_sys_version=AIX-`uname -v`.`uname -r` - fi - fi - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } - system=$tcl_cv_sys_version - - case $system in - HP-UX-*) INSTALL_LIBRARY='${INSTALL} -m 755' ;; - *) INSTALL_LIBRARY='${INSTALL} -m 644' ;; - esac - - - - - - - - - - -ac_aux_dir= -for ac_dir in tclconfig "$srcdir"/tclconfig; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in tclconfig \"$srcdir\"/tclconfig" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - -#-------------------------------------------------------------------- -# Load the tclConfig.sh file -#-------------------------------------------------------------------- - - - - # - # Ok, lets find the tcl configuration - # First, look for one uninstalled. - # the alternative search directory is invoked by --with-tcl - # - - if test x"${no_tcl}" = x ; then - # we reset no_tcl in case something fails here - no_tcl=true - -# Check whether --with-tcl was given. -if test "${with_tcl+set}" = set; then : - withval=$with_tcl; with_tclconfig="${withval}" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl configuration" >&5 -$as_echo_n "checking for Tcl configuration... " >&6; } - if ${ac_cv_c_tclconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else - - - # First check to see if --with-tcl was specified. - if test x"${with_tclconfig}" != x ; then - case "${with_tclconfig}" in - */tclConfig.sh ) - if test -f "${with_tclconfig}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 -$as_echo "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;} - with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" - fi ;; - esac - if test -f "${with_tclconfig}/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`" - else - as_fn_error $? "${with_tclconfig} directory doesn't contain tclConfig.sh" "$LINENO" 5 - fi - fi - - # then check for a private Tcl installation - if test x"${ac_cv_c_tclconfig}" = x ; then - for i in \ - ../tcl \ - `ls -dr ../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \ - ../../tcl \ - `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \ - ../../../tcl \ - `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do - if test "${TEA_PLATFORM}" = "windows" \ - -a -f "$i/win/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i/win; pwd)`" - break - fi - if test -f "$i/unix/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" - break - fi - done - fi - - # on Darwin, check in Framework installation locations - if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then - for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ - `ls -d /Library/Frameworks 2>/dev/null` \ - `ls -d /Network/Library/Frameworks 2>/dev/null` \ - `ls -d /System/Library/Frameworks 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ - ; do - if test -f "$i/Tcl.framework/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`" - break - fi - done - fi - - # TEA specific: on Windows, check in common installation locations - if test "${TEA_PLATFORM}" = "windows" \ - -a x"${ac_cv_c_tclconfig}" = x ; then - for i in `ls -d C:/Tcl/lib 2>/dev/null` \ - `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ - ; do - if test -f "$i/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i; pwd)`" - break - fi - done - fi - - # check in a few common install locations - if test x"${ac_cv_c_tclconfig}" = x ; then - for i in `ls -d ${libdir} 2>/dev/null` \ - `ls -d ${exec_prefix}/lib 2>/dev/null` \ - `ls -d ${prefix}/lib 2>/dev/null` \ - `ls -d /usr/local/lib 2>/dev/null` \ - `ls -d /usr/contrib/lib 2>/dev/null` \ - `ls -d /usr/pkg/lib 2>/dev/null` \ - `ls -d /usr/lib 2>/dev/null` \ - `ls -d /usr/lib64 2>/dev/null` \ - `ls -d /usr/lib/tcl8.6 2>/dev/null` \ - `ls -d /usr/lib/tcl8.5 2>/dev/null` \ - `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \ - `ls -d /usr/local/lib/tcl8.5 2>/dev/null` \ - `ls -d /usr/local/lib/tcl/tcl8.6 2>/dev/null` \ - `ls -d /usr/local/lib/tcl/tcl8.5 2>/dev/null` \ - ; do - if test -f "$i/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i; pwd)`" - break - fi - done - fi - - # check in a few other private locations - if test x"${ac_cv_c_tclconfig}" = x ; then - for i in \ - ${srcdir}/../tcl \ - `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \ - `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do - if test "${TEA_PLATFORM}" = "windows" \ - -a -f "$i/win/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i/win; pwd)`" - break - fi - if test -f "$i/unix/tclConfig.sh" ; then - ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" - break - fi - done - fi - -fi - - - if test x"${ac_cv_c_tclconfig}" = x ; then - TCL_BIN_DIR="# no Tcl configs found" - as_fn_error $? "Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh" "$LINENO" 5 - else - no_tcl= - TCL_BIN_DIR="${ac_cv_c_tclconfig}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo "found ${TCL_BIN_DIR}/tclConfig.sh" >&6; } - fi - fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo_n "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... " >&6; } - - if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: loading" >&5 -$as_echo "loading" >&6; } - . "${TCL_BIN_DIR}/tclConfig.sh" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 -$as_echo "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } - fi - - # eval is required to do the TCL_DBGX substitution - eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" - eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" - - # If the TCL_BIN_DIR is the build directory (not the install directory), - # then set the common variable name to the value of the build variables. - # For example, the variable TCL_LIB_SPEC will be set to the value - # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC - # instead of TCL_BUILD_LIB_SPEC since it will work with both an - # installed and uninstalled version of Tcl. - if test -f "${TCL_BIN_DIR}/Makefile" ; then - TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" - TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" - TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" - elif test "`uname -s`" = "Darwin"; then - # If Tcl was built as a framework, attempt to use the libraries - # from the framework at the given location so that linking works - # against Tcl.framework installed in an arbitrary location. - case ${TCL_DEFS} in - *TCL_FRAMEWORK*) - if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then - for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ - "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do - if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then - TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}" - break - fi - done - fi - if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then - TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}" - TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" - fi - ;; - esac - fi - - # eval is required to do the TCL_DBGX substitution - eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" - eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" - eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" - eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking platform" >&5 -$as_echo_n "checking platform... " >&6; } - hold_cc=$CC; CC="$TCL_CC" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - #ifdef _WIN32 - #error win32 - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - TEA_PLATFORM="unix" - CYGPATH=echo - -else - - TEA_PLATFORM="windows" - # Extract the first word of "cygpath", so it can be a program name with args. -set dummy cygpath; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CYGPATH+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CYGPATH"; then - ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CYGPATH="cygpath -m" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo" -fi -fi -CYGPATH=$ac_cv_prog_CYGPATH -if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 -$as_echo "$CYGPATH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CC=$hold_cc - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEA_PLATFORM" >&5 -$as_echo "$TEA_PLATFORM" >&6; } - - # The BUILD_$pkg is to define the correct extern storage class - # handling when making this package - -cat >>confdefs.h <<_ACEOF -#define BUILD_${PACKAGE_NAME} /**/ -_ACEOF - - # Do this here as we have fully defined TEA_PLATFORM now - if test "${TEA_PLATFORM}" = "windows" ; then - EXEEXT=".exe" - CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp" - fi - - # TEA specific: - - - - - - - - -#-------------------------------------------------------------------- -# Load the tkConfig.sh file if necessary (Tk extension) -#-------------------------------------------------------------------- - - - # - # Ok, lets find the tk configuration - # First, look for one uninstalled. - # the alternative search directory is invoked by --with-tk - # - - if test x"${no_tk}" = x ; then - # we reset no_tk in case something fails here - no_tk=true - -# Check whether --with-tk was given. -if test "${with_tk+set}" = set; then : - withval=$with_tk; with_tkconfig="${withval}" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk configuration" >&5 -$as_echo_n "checking for Tk configuration... " >&6; } - if ${ac_cv_c_tkconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else - - - # First check to see if --with-tkconfig was specified. - if test x"${with_tkconfig}" != x ; then - case "${with_tkconfig}" in - */tkConfig.sh ) - if test -f "${with_tkconfig}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&5 -$as_echo "$as_me: WARNING: --with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself" >&2;} - with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`" - fi ;; - esac - if test -f "${with_tkconfig}/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`" - else - as_fn_error $? "${with_tkconfig} directory doesn't contain tkConfig.sh" "$LINENO" 5 - fi - fi - - # then check for a private Tk library - if test x"${ac_cv_c_tkconfig}" = x ; then - for i in \ - ../tk \ - `ls -dr ../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../tk[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../tk[8-9].[0-9]* 2>/dev/null` \ - ../../tk \ - `ls -dr ../../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../../tk[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../../tk[8-9].[0-9]* 2>/dev/null` \ - ../../../tk \ - `ls -dr ../../../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ../../../tk[8-9].[0-9] 2>/dev/null` \ - `ls -dr ../../../tk[8-9].[0-9]* 2>/dev/null` ; do - if test "${TEA_PLATFORM}" = "windows" \ - -a -f "$i/win/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i/win; pwd)`" - break - fi - if test -f "$i/unix/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" - break - fi - done - fi - - # on Darwin, check in Framework installation locations - if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then - for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ - `ls -d /Library/Frameworks 2>/dev/null` \ - `ls -d /Network/Library/Frameworks 2>/dev/null` \ - `ls -d /System/Library/Frameworks 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks/Tcl.framework 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Network/Library/Frameworks/Tcl.framework 2>/dev/null` \ - `ls -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework 2>/dev/null` \ - ; do - if test -f "$i/Tk.framework/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`" - break - fi - done - fi - - # check in a few common install locations - if test x"${ac_cv_c_tkconfig}" = x ; then - for i in `ls -d ${libdir} 2>/dev/null` \ - `ls -d ${exec_prefix}/lib 2>/dev/null` \ - `ls -d ${prefix}/lib 2>/dev/null` \ - `ls -d /usr/local/lib 2>/dev/null` \ - `ls -d /usr/contrib/lib 2>/dev/null` \ - `ls -d /usr/pkg/lib 2>/dev/null` \ - `ls -d /usr/lib 2>/dev/null` \ - `ls -d /usr/lib64 2>/dev/null` \ - `ls -d /usr/lib/tk8.6 2>/dev/null` \ - `ls -d /usr/lib/tk8.5 2>/dev/null` \ - `ls -d /usr/local/lib/tk8.6 2>/dev/null` \ - `ls -d /usr/local/lib/tk8.5 2>/dev/null` \ - `ls -d /usr/local/lib/tcl/tk8.6 2>/dev/null` \ - `ls -d /usr/local/lib/tcl/tk8.5 2>/dev/null` \ - ; do - if test -f "$i/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i; pwd)`" - break - fi - done - fi - - # TEA specific: on Windows, check in common installation locations - if test "${TEA_PLATFORM}" = "windows" \ - -a x"${ac_cv_c_tkconfig}" = x ; then - for i in `ls -d C:/Tcl/lib 2>/dev/null` \ - `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ - ; do - if test -f "$i/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i; pwd)`" - break - fi - done - fi - - # check in a few other private locations - if test x"${ac_cv_c_tkconfig}" = x ; then - for i in \ - ${srcdir}/../tk \ - `ls -dr ${srcdir}/../tk[8-9].[0-9].[0-9]* 2>/dev/null` \ - `ls -dr ${srcdir}/../tk[8-9].[0-9] 2>/dev/null` \ - `ls -dr ${srcdir}/../tk[8-9].[0-9]* 2>/dev/null` ; do - if test "${TEA_PLATFORM}" = "windows" \ - -a -f "$i/win/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i/win; pwd)`" - break - fi - if test -f "$i/unix/tkConfig.sh" ; then - ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" - break - fi - done - fi - -fi - - - if test x"${ac_cv_c_tkconfig}" = x ; then - TK_BIN_DIR="# no Tk configs found" - as_fn_error $? "Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh" "$LINENO" 5 - else - no_tk= - TK_BIN_DIR="${ac_cv_c_tkconfig}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo "found ${TK_BIN_DIR}/tkConfig.sh" >&6; } - fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo_n "checking for existence of ${TK_BIN_DIR}/tkConfig.sh... " >&6; } - - if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: loading" >&5 -$as_echo "loading" >&6; } - . "${TK_BIN_DIR}/tkConfig.sh" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find ${TK_BIN_DIR}/tkConfig.sh" >&5 -$as_echo "could not find ${TK_BIN_DIR}/tkConfig.sh" >&6; } - fi - - # eval is required to do the TK_DBGX substitution - eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" - eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" - - # If the TK_BIN_DIR is the build directory (not the install directory), - # then set the common variable name to the value of the build variables. - # For example, the variable TK_LIB_SPEC will be set to the value - # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC - # instead of TK_BUILD_LIB_SPEC since it will work with both an - # installed and uninstalled version of Tcl. - if test -f "${TK_BIN_DIR}/Makefile" ; then - TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}" - TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}" - TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}" - elif test "`uname -s`" = "Darwin"; then - # If Tk was built as a framework, attempt to use the libraries - # from the framework at the given location so that linking works - # against Tk.framework installed in an arbitrary location. - case ${TK_DEFS} in - *TK_FRAMEWORK*) - if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then - for i in "`cd "${TK_BIN_DIR}"; pwd`" \ - "`cd "${TK_BIN_DIR}"/../..; pwd`"; do - if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then - TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}" - break - fi - done - fi - if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then - TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}" - TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" - fi - ;; - esac - fi - - # eval is required to do the TK_DBGX substitution - eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" - eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" - eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" - eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" - - # TEA specific: Ensure windowingsystem is defined - if test "${TEA_PLATFORM}" = "unix" ; then - case ${TK_DEFS} in - *MAC_OSX_TK*) - -$as_echo "#define MAC_OSX_TK 1" >>confdefs.h - - TEA_WINDOWINGSYSTEM="aqua" - ;; - *) - TEA_WINDOWINGSYSTEM="x11" - ;; - esac - elif test "${TEA_PLATFORM}" = "windows" ; then - TEA_WINDOWINGSYSTEM="win32" - fi - - - - - - - - - - - - - - # TEA specific: - - - - -#----------------------------------------------------------------------- -# Handle the --prefix=... option by defaulting to what Tcl gave. -# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. -#----------------------------------------------------------------------- - - - if test "${prefix}" = "NONE"; then - prefix_default=yes - if test x"${TCL_PREFIX}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 -$as_echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} - prefix=${TCL_PREFIX} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: --prefix defaulting to /usr/local" >&5 -$as_echo "$as_me: --prefix defaulting to /usr/local" >&6;} - prefix=/usr/local - fi - fi - if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ - -o x"${exec_prefix_default}" = x"yes" ; then - if test x"${TCL_EXEC_PREFIX}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 -$as_echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} - exec_prefix=${TCL_EXEC_PREFIX} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: --exec-prefix defaulting to ${prefix}" >&5 -$as_echo "$as_me: --exec-prefix defaulting to ${prefix}" >&6;} - exec_prefix=$prefix - fi - fi - - -#----------------------------------------------------------------------- -# Standard compiler checks. -# This sets up CC by using the CC env var, or looks for gcc otherwise. -# This also calls AC_PROG_CC and a few others to create the basic setup -# necessary to compile executables. -#----------------------------------------------------------------------- - - - # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) - # in this macro, they need to go into TEA_SETUP_COMPILER instead. - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - #-------------------------------------------------------------------- - # Checks to see if the make program sets the $MAKE variable. - #-------------------------------------------------------------------- - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - - #-------------------------------------------------------------------- - # Find ranlib - #-------------------------------------------------------------------- - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - #-------------------------------------------------------------------- - # Determines the correct binary file extension (.o, .obj, .exe etc.) - #-------------------------------------------------------------------- - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. - - - #------------------------------------------------------------------------ - # If we're using GCC, see if the compiler understands -pipe. If so, use it. - # It makes compiling go faster. (This is only a performance feature.) - #------------------------------------------------------------------------ - - if test -z "$no_pipe" -a -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -pipe" >&5 -$as_echo_n "checking if the compiler understands -pipe... " >&6; } -if ${tcl_cv_cc_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_cc_pipe=yes -else - tcl_cv_cc_pipe=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$hold_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_pipe" >&5 -$as_echo "$tcl_cv_cc_pipe" >&6; } - if test $tcl_cv_cc_pipe = yes; then - CFLAGS="$CFLAGS -pipe" - fi - fi - - #-------------------------------------------------------------------- - # Common compiler flag setup - #-------------------------------------------------------------------- - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - - -if test "${TEA_PLATFORM}" != "windows" ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -#----------------------------------------------------------------------- -# __CHANGE__ -# Specify the C source files to compile in TEA_ADD_SOURCES, -# public headers that need to be installed in TEA_ADD_HEADERS, -# stub library C source files to compile in TEA_ADD_STUB_SOURCES, -# and runtime Tcl library files in TEA_ADD_TCL_SOURCES. -# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS -# and PKG_TCL_SOURCES. -#----------------------------------------------------------------------- - - - vars=" -tkbltChain.C -tkbltConfig.C -tkbltGrAxis.C -tkbltGrAxisOp.C -tkbltGrAxisOption.C -tkbltGrBind.C -tkbltGrElemOp.C -tkbltGrElemOption.C -tkbltGrElem.C -tkbltGrElemBar.C -tkbltGrElemLine.C -tkbltGrElemLineSpline.C -tkbltGrHairs.C -tkbltGrHairsOp.C -tkbltGrLegd.C -tkbltGrLegdOp.C -tkbltGrMarkerOp.C -tkbltGrMarkerOption.C -tkbltGrMarker.C -tkbltGrMarkerLine.C -tkbltGrMarkerPolygon.C -tkbltGrMarkerText.C -tkbltGrMisc.C -tkbltGrPenOp.C -tkbltGrPenOption.C -tkbltGrPen.C -tkbltGrPenBar.C -tkbltGrPenLine.C -tkbltGrPostscript.C -tkbltGrPostscriptOp.C -tkbltGrPSOutput.C -tkbltGrText.C -tkbltGrXAxisOp.C -tkbltGraph.C -tkbltGraphBar.C -tkbltGraphLine.C -tkbltGraphOp.C -tkbltGraphSup.C -tkbltInt.C -tkbltNsUtil.C -tkbltParse.C -tkbltOp.C -tkbltStubInit.c -tkbltStubLib.C -tkbltSwitch.C -tkbltVecCmd.C -tkbltVecOp.C -tkbltVecMath.C -tkbltVector.C -" - for i in $vars; do - case $i in - \$*) - # allow $-var names - PKG_SOURCES="$PKG_SOURCES $i" - PKG_OBJECTS="$PKG_OBJECTS $i" - ;; - *) - # check for existence - allows for generic/win/unix VPATH - # To add more dirs here (like 'src'), you have to update VPATH - # in Makefile.in as well - if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ - -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ - -a ! -f "${srcdir}/macosx/$i" \ - ; then - as_fn_error $? "could not find source file '$i'" "$LINENO" 5 - fi - PKG_SOURCES="$PKG_SOURCES $i" - # this assumes it is in a VPATH dir - i=`basename $i` - # handle user calling this before or after TEA_SETUP_COMPILER - if test x"${OBJEXT}" != x ; then - j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" - else - j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" - fi - PKG_OBJECTS="$PKG_OBJECTS $j" - ;; - esac - done - - - - - vars=" -generic/tkbltVector.h -generic/tkbltDecls.h -" - for i in $vars; do - # check for existence, be strict because it is installed - if test ! -f "${srcdir}/$i" ; then - as_fn_error $? "could not find header file '${srcdir}/$i'" "$LINENO" 5 - fi - PKG_HEADERS="$PKG_HEADERS $i" - done - - - - vars="" - for i in $vars; do - PKG_INCLUDES="$PKG_INCLUDES $i" - done - - - - vars="-lstdc++" - for i in $vars; do - if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then - # Convert foo.lib to -lfoo for GCC. No-op if not *.lib - i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` - fi - PKG_LIBS="$PKG_LIBS $i" - done - - -if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then - - PKG_CFLAGS="$PKG_CFLAGS -TP -EHsc -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES" - - -fi - - vars="tkbltStubLib.C" - for i in $vars; do - # check for existence - allows for generic/win/unix VPATH - if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ - -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ - -a ! -f "${srcdir}/macosx/$i" \ - ; then - as_fn_error $? "could not find stub source file '$i'" "$LINENO" 5 - fi - PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" - # this assumes it is in a VPATH dir - i=`basename $i` - # handle user calling this before or after TEA_SETUP_COMPILER - if test x"${OBJEXT}" != x ; then - j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" - else - j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" - fi - PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j" - done - - - - - vars="library/graph.tcl" - for i in $vars; do - # check for existence, be strict because it is installed - if test ! -f "${srcdir}/$i" ; then - as_fn_error $? "could not find tcl source file '${srcdir}/$i'" "$LINENO" 5 - fi - PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" - done - - - -#-------------------------------------------------------------------- -# __CHANGE__ -# -# You can add more files to clean if your extension creates any extra -# files by extending CLEANFILES. -# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure -# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var. -# -# A few miscellaneous platform-specific items: -# TEA_ADD_* any platform specific compiler/build info here. -#-------------------------------------------------------------------- - -#CLEANFILES="$CLEANFILES pkgIndex.tcl" -if test "${TEA_PLATFORM}" = "windows" ; then - # Ensure no empty if clauses - : - #TEA_ADD_SOURCES([win/winFile.c]) - #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"]) -else - # Ensure no empty else clauses - : - #TEA_ADD_SOURCES([unix/unixFile.c]) - #TEA_ADD_LIBS([-lsuperfly]) -fi - -#-------------------------------------------------------------------- -# __CHANGE__ -# Choose which headers you need. Extension authors should try very -# hard to only rely on the Tcl public header files. Internal headers -# contain private data structures and are subject to change without -# notice. -# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG -#-------------------------------------------------------------------- - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl public headers" >&5 -$as_echo_n "checking for Tcl public headers... " >&6; } - - -# Check whether --with-tclinclude was given. -if test "${with_tclinclude+set}" = set; then : - withval=$with_tclinclude; with_tclinclude=${withval} -fi - - - if ${ac_cv_c_tclh+:} false; then : - $as_echo_n "(cached) " >&6 -else - - # Use the value from --with-tclinclude, if it was given - - if test x"${with_tclinclude}" != x ; then - if test -f "${with_tclinclude}/tcl.h" ; then - ac_cv_c_tclh=${with_tclinclude} - else - as_fn_error $? "${with_tclinclude} directory does not contain tcl.h" "$LINENO" 5 - fi - else - list="" - if test "`uname -s`" = "Darwin"; then - # If Tcl was built as a framework, attempt to use - # the framework's Headers directory - case ${TCL_DEFS} in - *TCL_FRAMEWORK*) - list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`" - ;; - esac - fi - - # Look in the source dir only if Tcl is not installed, - # and in that situation, look there before installed locations. - if test -f "${TCL_BIN_DIR}/Makefile" ; then - list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`" - fi - - # Check order: pkg --prefix location, Tcl's --prefix location, - # relative to directory of tclConfig.sh. - - eval "temp_includedir=${includedir}" - list="$list \ - `ls -d ${temp_includedir} 2>/dev/null` \ - `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ - `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" - if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then - list="$list /usr/local/include /usr/include" - if test x"${TCL_INCLUDE_SPEC}" != x ; then - d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'` - list="$list `ls -d ${d} 2>/dev/null`" - fi - fi - for i in $list ; do - if test -f "$i/tcl.h" ; then - ac_cv_c_tclh=$i - break - fi - done - fi - -fi - - - # Print a message based on how we determined the include path - - if test x"${ac_cv_c_tclh}" = x ; then - as_fn_error $? "tcl.h not found. Please specify its location with --with-tclinclude" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tclh}" >&5 -$as_echo "${ac_cv_c_tclh}" >&6; } - fi - - # Convert to a native path and substitute into the output files. - - INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` - - TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" - - - - - # Allow for --with-tclinclude to take effect and define ${ac_cv_c_tclh} - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl private include files" >&5 -$as_echo_n "checking for Tcl private include files... " >&6; } - - TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}` - TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\" - - # Check to see if tclPort.h isn't already with the public headers - # Don't look for tclInt.h because that resides with tcl.h in the core - # sources, but the Port headers are in a different directory - if test "${TEA_PLATFORM}" = "windows" -a \ - -f "${ac_cv_c_tclh}/tclWinPort.h"; then - result="private headers found with public headers" - elif test "${TEA_PLATFORM}" = "unix" -a \ - -f "${ac_cv_c_tclh}/tclUnixPort.h"; then - result="private headers found with public headers" - else - TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\" - if test "${TEA_PLATFORM}" = "windows"; then - TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\" - else - TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\" - fi - # Overwrite the previous TCL_INCLUDES as this should capture both - # public and private headers in the same set. - # We want to ensure these are substituted so as not to require - # any *_NATIVE vars be defined in the Makefile - TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}" - if test "`uname -s`" = "Darwin"; then - # If Tcl was built as a framework, attempt to use - # the framework's Headers and PrivateHeaders directories - case ${TCL_DEFS} in - *TCL_FRAMEWORK*) - if test -d "${TCL_BIN_DIR}/Headers" -a \ - -d "${TCL_BIN_DIR}/PrivateHeaders"; then - TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}" - else - TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" - fi - ;; - esac - result="Using ${TCL_INCLUDES}" - else - if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then - as_fn_error $? "Cannot find private header tclInt.h in ${TCL_SRC_DIR}" "$LINENO" 5 - fi - result="Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" - fi - fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${result}" >&5 -$as_echo "${result}" >&6; } - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk public headers" >&5 -$as_echo_n "checking for Tk public headers... " >&6; } - - -# Check whether --with-tkinclude was given. -if test "${with_tkinclude+set}" = set; then : - withval=$with_tkinclude; with_tkinclude=${withval} -fi - - - if ${ac_cv_c_tkh+:} false; then : - $as_echo_n "(cached) " >&6 -else - - # Use the value from --with-tkinclude, if it was given - - if test x"${with_tkinclude}" != x ; then - if test -f "${with_tkinclude}/tk.h" ; then - ac_cv_c_tkh=${with_tkinclude} - else - as_fn_error $? "${with_tkinclude} directory does not contain tk.h" "$LINENO" 5 - fi - else - list="" - if test "`uname -s`" = "Darwin"; then - # If Tk was built as a framework, attempt to use - # the framework's Headers directory. - case ${TK_DEFS} in - *TK_FRAMEWORK*) - list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`" - ;; - esac - fi - - # Look in the source dir only if Tk is not installed, - # and in that situation, look there before installed locations. - if test -f "${TK_BIN_DIR}/Makefile" ; then - list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`" - fi - - # Check order: pkg --prefix location, Tk's --prefix location, - # relative to directory of tkConfig.sh, Tcl's --prefix location, - # relative to directory of tclConfig.sh. - - eval "temp_includedir=${includedir}" - list="$list \ - `ls -d ${temp_includedir} 2>/dev/null` \ - `ls -d ${TK_PREFIX}/include 2>/dev/null` \ - `ls -d ${TK_BIN_DIR}/../include 2>/dev/null` \ - `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ - `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" - if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then - list="$list /usr/local/include /usr/include" - if test x"${TK_INCLUDE_SPEC}" != x ; then - d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'` - list="$list `ls -d ${d} 2>/dev/null`" - fi - fi - for i in $list ; do - if test -f "$i/tk.h" ; then - ac_cv_c_tkh=$i - break - fi - done - fi - -fi - - - # Print a message based on how we determined the include path - - if test x"${ac_cv_c_tkh}" = x ; then - as_fn_error $? "tk.h not found. Please specify its location with --with-tkinclude" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_c_tkh}" >&5 -$as_echo "${ac_cv_c_tkh}" >&6; } - fi - - # Convert to a native path and substitute into the output files. - - INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}` - - TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" - - - - if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then - # On Windows and Aqua, we need the X compat headers - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 -$as_echo_n "checking for X11 header files... " >&6; } - if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then - INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`" - TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${INCLUDE_DIR_NATIVE}" >&5 -$as_echo "${INCLUDE_DIR_NATIVE}" >&6; } - fi - - - # Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh} - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk private include files" >&5 -$as_echo_n "checking for Tk private include files... " >&6; } - - TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}` - TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\" - - # Check to see if tkPort.h isn't already with the public headers - # Don't look for tkInt.h because that resides with tk.h in the core - # sources, but the Port headers are in a different directory - if test "${TEA_PLATFORM}" = "windows" -a \ - -f "${ac_cv_c_tkh}/tkWinPort.h"; then - result="private headers found with public headers" - elif test "${TEA_PLATFORM}" = "unix" -a \ - -f "${ac_cv_c_tkh}/tkUnixPort.h"; then - result="private headers found with public headers" - else - TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\" - TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\" - if test "${TEA_PLATFORM}" = "windows"; then - TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\" - else - TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\" - fi - # Overwrite the previous TK_INCLUDES as this should capture both - # public and private headers in the same set. - # We want to ensure these are substituted so as not to require - # any *_NATIVE vars be defined in the Makefile - TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}" - # Detect and add ttk subdir - if test -d "${TK_SRC_DIR}/generic/ttk"; then - TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/generic/ttk\"" - fi - if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then - TK_INCLUDES="${TK_INCLUDES} -I\"${TK_XLIB_DIR_NATIVE}\"" - fi - if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then - TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/macosx\"" - fi - if test "`uname -s`" = "Darwin"; then - # If Tk was built as a framework, attempt to use - # the framework's Headers and PrivateHeaders directories - case ${TK_DEFS} in - *TK_FRAMEWORK*) - if test -d "${TK_BIN_DIR}/Headers" -a \ - -d "${TK_BIN_DIR}/PrivateHeaders"; then - TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}" - else - TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" - fi - ;; - esac - result="Using ${TK_INCLUDES}" - else - if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then - as_fn_error $? "Cannot find private header tkInt.h in ${TK_SRC_DIR}" "$LINENO" 5 - fi - result="Using srcdir found in tkConfig.sh: ${TK_SRC_DIR}" - fi - fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${result}" >&5 -$as_echo "${result}" >&6; } - - - if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 -$as_echo_n "checking for X... " >&6; } - - -# Check whether --with-x was given. -if test "${with_x+set}" = set; then : - withval=$with_x; -fi - -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - case $x_includes,$x_libraries in #( - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( - *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : - $as_echo_n "(cached) " >&6 -else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - cat >Imakefile <<'_ACEOF' -incroot: - @echo incroot='${INCROOT}' -usrlibdir: - @echo usrlibdir='${USRLIBDIR}' -libdir: - @echo libdir='${LIBDIR}' -_ACEOF - if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. - for ac_var in incroot usrlibdir libdir; do - eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" - done - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl dylib la dll; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ac_x_includes= ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /usr/lib64 | /lib | /lib64) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -f -r conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R7/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R7 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R7/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R7 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # We can compile using X headers with no special include directory. -ac_x_includes= -else - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi -rm -f conftest.err conftest.i conftest.$ac_ext -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -XrmInitialize () - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - LIBS=$ac_save_LIBS -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl dylib la dll; do - if test -r "$ac_dir/libX11.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) - # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" -esac -fi -;; #( - *) have_x=yes;; - esac - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 -$as_echo "$have_x" >&6; } - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$x_includes'\ - ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; } -fi - - not_really_there="" - if test "$no_x" = ""; then - if test "$x_includes" = ""; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - not_really_there="yes" -fi -rm -f conftest.err conftest.i conftest.$ac_ext - else - if test ! -r $x_includes/X11/Xlib.h; then - not_really_there="yes" - fi - fi - fi - if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 header files" >&5 -$as_echo_n "checking for X11 header files... " >&6; } - found_xincludes="no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - found_xincludes="yes" -else - found_xincludes="no" -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test "$found_xincludes" = "no"; then - dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" - for i in $dirs ; do - if test -r $i/X11/Xlib.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $i" >&5 -$as_echo "$i" >&6; } - XINCLUDES=" -I$i" - found_xincludes="yes" - break - fi - done - fi - else - if test "$x_includes" != ""; then - XINCLUDES="-I$x_includes" - found_xincludes="yes" - fi - fi - if test "$found_xincludes" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: couldn't find any!" >&5 -$as_echo "couldn't find any!" >&6; } - fi - - if test "$no_x" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11 libraries" >&5 -$as_echo_n "checking for X11 libraries... " >&6; } - XLIBSW=nope - dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" - for i in $dirs ; do - if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $i" >&5 -$as_echo "$i" >&6; } - XLIBSW="-L$i -lX11" - x_libraries="$i" - break - fi - done - else - if test "$x_libraries" = ""; then - XLIBSW=-lX11 - else - XLIBSW="-L$x_libraries -lX11" - fi - fi - if test "$XLIBSW" = nope ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCreateWindow in -lXwindow" >&5 -$as_echo_n "checking for XCreateWindow in -lXwindow... " >&6; } -if ${ac_cv_lib_Xwindow_XCreateWindow+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXwindow $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XCreateWindow (); -int -main () -{ -return XCreateWindow (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xwindow_XCreateWindow=yes -else - ac_cv_lib_Xwindow_XCreateWindow=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xwindow_XCreateWindow" >&5 -$as_echo "$ac_cv_lib_Xwindow_XCreateWindow" >&6; } -if test "x$ac_cv_lib_Xwindow_XCreateWindow" = xyes; then : - XLIBSW=-lXwindow -fi - - fi - if test "$XLIBSW" = nope ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not find any! Using -lX11." >&5 -$as_echo "could not find any! Using -lX11." >&6; } - XLIBSW=-lX11 - fi - # TEA specific: - if test x"${XLIBSW}" != x ; then - PKG_LIBS="${PKG_LIBS} ${XLIBSW}" - fi - - fi - - -#-------------------------------------------------------------------- -# Check whether --enable-threads or --disable-threads was given. -# This auto-enables if Tcl was compiled threaded. -#-------------------------------------------------------------------- - - - # Check whether --enable-threads was given. -if test "${enable_threads+set}" = set; then : - enableval=$enable_threads; tcl_ok=$enableval -else - tcl_ok=yes -fi - - - if test "${enable_threads+set}" = set; then - enableval="$enable_threads" - tcl_ok=$enableval - else - tcl_ok=yes - fi - - if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then - TCL_THREADS=1 - - if test "${TEA_PLATFORM}" != "windows" ; then - # We are always OK on Windows, so check what this platform wants: - - # USE_THREAD_ALLOC tells us to try the special thread-based - # allocator that significantly reduces lock contention - -$as_echo "#define USE_THREAD_ALLOC 1" >>confdefs.h - - -$as_echo "#define _REENTRANT 1" >>confdefs.h - - if test "`uname -s`" = "SunOS" ; then - -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - fi - -$as_echo "#define _THREAD_SAFE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthread" >&5 -$as_echo_n "checking for pthread_mutex_init in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_mutex_init (); -int -main () -{ -return pthread_mutex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_mutex_init=yes -else - ac_cv_lib_pthread_pthread_mutex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthread_pthread_mutex_init" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - if test "$tcl_ok" = "no"; then - # Check a little harder for __pthread_mutex_init in the same - # library, as some systems hide it there until pthread.h is - # defined. We could alternatively do an AC_TRY_COMPILE with - # pthread.h, but that will work with libpthread really doesn't - # exist, like AIX 4.2. [Bug: 4359] - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_mutex_init in -lpthread" >&5 -$as_echo_n "checking for __pthread_mutex_init in -lpthread... " >&6; } -if ${ac_cv_lib_pthread___pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char __pthread_mutex_init (); -int -main () -{ -return __pthread_mutex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread___pthread_mutex_init=yes -else - ac_cv_lib_pthread___pthread_mutex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthread___pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthread___pthread_mutex_init" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - fi - - if test "$tcl_ok" = "yes"; then - # The space is needed - THREADS_LIBS=" -lpthread" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthreads" >&5 -$as_echo_n "checking for pthread_mutex_init in -lpthreads... " >&6; } -if ${ac_cv_lib_pthreads_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthreads $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_mutex_init (); -int -main () -{ -return pthread_mutex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthreads_pthread_mutex_init=yes -else - ac_cv_lib_pthreads_pthread_mutex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_pthreads_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_pthreads_pthread_mutex_init" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - if test "$tcl_ok" = "yes"; then - # The space is needed - THREADS_LIBS=" -lpthreads" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc" >&5 -$as_echo_n "checking for pthread_mutex_init in -lc... " >&6; } -if ${ac_cv_lib_c_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_mutex_init (); -int -main () -{ -return pthread_mutex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_pthread_mutex_init=yes -else - ac_cv_lib_c_pthread_mutex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_c_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_c_pthread_mutex_init" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - if test "$tcl_ok" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lc_r" >&5 -$as_echo_n "checking for pthread_mutex_init in -lc_r... " >&6; } -if ${ac_cv_lib_c_r_pthread_mutex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_mutex_init (); -int -main () -{ -return pthread_mutex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_r_pthread_mutex_init=yes -else - ac_cv_lib_c_r_pthread_mutex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5 -$as_echo "$ac_cv_lib_c_r_pthread_mutex_init" >&6; } -if test "x$ac_cv_lib_c_r_pthread_mutex_init" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - if test "$tcl_ok" = "yes"; then - # The space is needed - THREADS_LIBS=" -pthread" - else - TCL_THREADS=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5 -$as_echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;} - fi - fi - fi - fi - fi - else - TCL_THREADS=0 - fi - # Do checking message here to not mess up interleaved configure output - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with threads" >&5 -$as_echo_n "checking for building with threads... " >&6; } - if test "${TCL_THREADS}" = 1; then - -$as_echo "#define TCL_THREADS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (default)" >&5 -$as_echo "yes (default)" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # TCL_THREADS sanity checking. See if our request for building with - # threads is the same as the way Tcl was built. If not, warn the user. - case ${TCL_DEFS} in - *THREADS=1*) - if test "${TCL_THREADS}" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: - Building ${PACKAGE_NAME} without threads enabled, but building against Tcl - that IS thread-enabled. It is recommended to use --enable-threads." >&5 -$as_echo "$as_me: WARNING: - Building ${PACKAGE_NAME} without threads enabled, but building against Tcl - that IS thread-enabled. It is recommended to use --enable-threads." >&2;} - fi - ;; - esac - - - -#-------------------------------------------------------------------- -# The statement below defines a collection of symbols related to -# building as a shared library instead of a static library. -#-------------------------------------------------------------------- - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build libraries" >&5 -$as_echo_n "checking how to build libraries... " >&6; } - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; shared_ok=$enableval -else - shared_ok=yes -fi - - - if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - shared_ok=$enableval - else - shared_ok=yes - fi - - # Check whether --enable-stubs was given. -if test "${enable_stubs+set}" = set; then : - enableval=$enable_stubs; stubs_ok=$enableval -else - stubs_ok=yes -fi - - - if test "${enable_stubs+set}" = set; then - enableval="$enable_stubs" - stubs_ok=$enableval - else - stubs_ok=yes - fi - - # Stubs are always enabled for shared builds - if test "$shared_ok" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared" >&5 -$as_echo "shared" >&6; } - SHARED_BUILD=1 - STUBS_BUILD=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 -$as_echo "static" >&6; } - SHARED_BUILD=0 - -$as_echo "#define STATIC_BUILD 1" >>confdefs.h - - if test "$stubs_ok" = "yes" ; then - STUBS_BUILD=1 - else - STUBS_BUILD=0 - fi - fi - if test "${STUBS_BUILD}" = "1" ; then - -$as_echo "#define USE_TCL_STUBS 1" >>confdefs.h - - -$as_echo "#define USE_TCLOO_STUBS 1" >>confdefs.h - - if test "${TEA_WINDOWINGSYSTEM}" != ""; then - -$as_echo "#define USE_TK_STUBS 1" >>confdefs.h - - fi - fi - - - - - -#-------------------------------------------------------------------- -# This macro figures out what flags to use with the compiler/linker -# when building shared/static debug/optimized objects. This information -# can be taken from the tclConfig.sh file, but this figures it all out. -#-------------------------------------------------------------------- - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - - - # Step 0.a: Enable 64 bit support? - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit support is requested" >&5 -$as_echo_n "checking if 64bit support is requested... " >&6; } - # Check whether --enable-64bit was given. -if test "${enable_64bit+set}" = set; then : - enableval=$enable_64bit; do64bit=$enableval -else - do64bit=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bit" >&5 -$as_echo "$do64bit" >&6; } - - # Step 0.b: Enable Solaris 64 bit VIS support? - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64bit Sparc VIS support is requested" >&5 -$as_echo_n "checking if 64bit Sparc VIS support is requested... " >&6; } - # Check whether --enable-64bit-vis was given. -if test "${enable_64bit_vis+set}" = set; then : - enableval=$enable_64bit_vis; do64bitVIS=$enableval -else - do64bitVIS=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $do64bitVIS" >&5 -$as_echo "$do64bitVIS" >&6; } - # Force 64bit on with VIS - if test "$do64bitVIS" = "yes"; then : - do64bit=yes -fi - - # Step 0.c: Check if visibility support is available. Do this here so - # that platform specific alternatives can be used below if this fails. - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports visibility \"hidden\"" >&5 -$as_echo_n "checking if compiler supports visibility \"hidden\"... " >&6; } -if ${tcl_cv_cc_visibility_hidden+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - extern __attribute__((__visibility__("hidden"))) void f(void); - void f(void) {} -int -main () -{ -f(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_cc_visibility_hidden=yes -else - tcl_cv_cc_visibility_hidden=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS=$hold_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_visibility_hidden" >&5 -$as_echo "$tcl_cv_cc_visibility_hidden" >&6; } - if test $tcl_cv_cc_visibility_hidden = yes; then : - - -$as_echo "#define MODULE_SCOPE extern __attribute__((__visibility__(\"hidden\")))" >>confdefs.h - - -$as_echo "#define HAVE_HIDDEN 1" >>confdefs.h - - -fi - - # Step 0.d: Disable -rpath support? - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if rpath support is requested" >&5 -$as_echo_n "checking if rpath support is requested... " >&6; } - # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : - enableval=$enable_rpath; doRpath=$enableval -else - doRpath=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doRpath" >&5 -$as_echo "$doRpath" >&6; } - - # TEA specific: Cross-compiling options for Windows/CE builds? - - if test "${TEA_PLATFORM}" = windows; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Windows/CE build is requested" >&5 -$as_echo_n "checking if Windows/CE build is requested... " >&6; } - # Check whether --enable-wince was given. -if test "${enable_wince+set}" = set; then : - enableval=$enable_wince; doWince=$enableval -else - doWince=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doWince" >&5 -$as_echo "$doWince" >&6; } - -fi - - # Set the variable "system" to hold the name and version number - # for the system. - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking system version" >&5 -$as_echo_n "checking system version... " >&6; } -if ${tcl_cv_sys_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - - # TEA specific: - if test "${TEA_PLATFORM}" = "windows" ; then - tcl_cv_sys_version=windows - else - tcl_cv_sys_version=`uname -s`-`uname -r` - if test "$?" -ne 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can't find uname command" >&5 -$as_echo "$as_me: WARNING: can't find uname command" >&2;} - tcl_cv_sys_version=unknown - else - if test "`uname -s`" = "AIX" ; then - tcl_cv_sys_version=AIX-`uname -v`.`uname -r` - fi - fi - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_sys_version" >&5 -$as_echo "$tcl_cv_sys_version" >&6; } - system=$tcl_cv_sys_version - - - # Require ranlib early so we can override it in special cases below. - - - - # Set configuration options based on system name and version. - # This is similar to Tcl's unix/tcl.m4 except that we've added a - # "windows" case and removed some core-only vars. - - do64bit_ok=no - # default to '{$LIBS}' and set to "" on per-platform necessary basis - SHLIB_LD_LIBS='${LIBS}' - # When ld needs options to work in 64-bit mode, put them in - # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load] - # is disabled by the user. [Bug 1016796] - LDFLAGS_ARCH="" - UNSHARED_LIB_SUFFIX="" - # TEA specific: use PACKAGE_VERSION instead of VERSION - TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' - ECHO_VERSION='`echo ${PACKAGE_VERSION}`' - TCL_LIB_VERSIONS_OK=ok - CFLAGS_DEBUG=-g - if test "$GCC" = yes; then : - - CFLAGS_OPTIMIZE=-O2 - CFLAGS_WARNING="-Wall" - -else - - CFLAGS_OPTIMIZE=-O - CFLAGS_WARNING="" - -fi - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - - STLIB_LD='${AR} cr' - LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" - if test "x$SHLIB_VERSION" = x; then : - SHLIB_VERSION="" -else - SHLIB_VERSION=".$SHLIB_VERSION" -fi - case $system in - # TEA specific: - windows) - # This is a 2-stage check to make sure we have the 64-bit SDK - # We have to know where the SDK is installed. - # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs - # MACHINE is IX86 for LINK, but this is used by the manifest, - # which requires x86|amd64|ia64. - MACHINE="X86" - if test "$do64bit" != "no" ; then - if test "x${MSSDK}x" = "xx" ; then - MSSDK="C:/Progra~1/Microsoft Platform SDK" - fi - MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` - PATH64="" - case "$do64bit" in - amd64|x64|yes) - MACHINE="AMD64" ; # default to AMD64 64-bit build - PATH64="${MSSDK}/Bin/Win64/x86/AMD64" - ;; - ia64) - MACHINE="IA64" - PATH64="${MSSDK}/Bin/Win64" - ;; - esac - if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 -$as_echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ensure latest Platform SDK is installed" >&5 -$as_echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} - do64bit="no" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 -$as_echo " Using 64-bit $MACHINE mode" >&6; } - do64bit_ok="yes" - fi - fi - - if test "$doWince" != "no" ; then - if test "$do64bit" != "no" ; then - as_fn_error $? "Windows/CE and 64-bit builds incompatible" "$LINENO" 5 - fi - if test "$GCC" = "yes" ; then - as_fn_error $? "Windows/CE and GCC builds incompatible" "$LINENO" 5 - fi - - # First, look for one uninstalled. - # the alternative search directory is invoked by --with-celib - - if test x"${no_celib}" = x ; then - # we reset no_celib in case something fails here - no_celib=true - -# Check whether --with-celib was given. -if test "${with_celib+set}" = set; then : - withval=$with_celib; with_celibconfig=${withval} -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows/CE celib directory" >&5 -$as_echo_n "checking for Windows/CE celib directory... " >&6; } - if ${ac_cv_c_celibconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else - - # First check to see if --with-celibconfig was specified. - if test x"${with_celibconfig}" != x ; then - if test -d "${with_celibconfig}/inc" ; then - ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)` - else - as_fn_error $? "${with_celibconfig} directory doesn't contain inc directory" "$LINENO" 5 - fi - fi - - # then check for a celib library - if test x"${ac_cv_c_celibconfig}" = x ; then - for i in \ - ../celib-palm-3.0 \ - ../celib \ - ../../celib-palm-3.0 \ - ../../celib \ - `ls -dr ../celib-*3.[0-9]* 2>/dev/null` \ - ${srcdir}/../celib-palm-3.0 \ - ${srcdir}/../celib \ - `ls -dr ${srcdir}/../celib-*3.[0-9]* 2>/dev/null` \ - ; do - if test -d "$i/inc" ; then - ac_cv_c_celibconfig=`(cd $i; pwd)` - break - fi - done - fi - -fi - - if test x"${ac_cv_c_celibconfig}" = x ; then - as_fn_error $? "Cannot find celib support library directory" "$LINENO" 5 - else - no_celib= - CELIB_DIR=${ac_cv_c_celibconfig} - CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $CELIB_DIR" >&5 -$as_echo "found $CELIB_DIR" >&6; } - fi - fi - - # Set defaults for common evc4/PPC2003 setup - # Currently Tcl requires 300+, possibly 420+ for sockets - CEVERSION=420; # could be 211 300 301 400 420 ... - TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ... - ARCH=ARM; # could be ARM MIPS X86EM ... - PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" - if test "$doWince" != "yes"; then - # If !yes then the user specified something - # Reset ARCH to allow user to skip specifying it - ARCH= - eval `echo $doWince | awk -F, '{ \ - if (length($1)) { printf "CEVERSION=\"%s\"\n", $1; \ - if ($1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ - if (length($2)) { printf "TARGETCPU=\"%s\"\n", toupper($2) }; \ - if (length($3)) { printf "ARCH=\"%s\"\n", toupper($3) }; \ - if (length($4)) { printf "PLATFORM=\"%s\"\n", $4 }; \ - }'` - if test "x${ARCH}" = "x" ; then - ARCH=$TARGETCPU; - fi - fi - OSVERSION=WCE$CEVERSION; - if test "x${WCEROOT}" = "x" ; then - WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" - if test ! -d "${WCEROOT}" ; then - WCEROOT="C:/Program Files/Microsoft eMbedded Tools" - fi - fi - if test "x${SDKROOT}" = "x" ; then - SDKROOT="C:/Program Files/Windows CE Tools" - if test ! -d "${SDKROOT}" ; then - SDKROOT="C:/Windows CE Tools" - fi - fi - WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` - SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` - if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \ - -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then - as_fn_error $? "could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" "$LINENO" 5 - doWince="no" - else - # We could PATH_NOSPACE these, but that's not important, - # as long as we quote them when used. - CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" - if test -d "${CEINCLUDE}/${TARGETCPU}" ; then - CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" - fi - CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" - fi - fi - - if test "$GCC" != "yes" ; then - if test "${SHARED_BUILD}" = "0" ; then - runtime=-MT - else - runtime=-MD - fi - case "x`echo \${VisualStudioVersion}`" in - x1[4-9]*) - lflags="${lflags} -nodefaultlib:libucrt.lib" - - vars="ucrt.lib" - for i in $vars; do - if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then - # Convert foo.lib to -lfoo for GCC. No-op if not *.lib - i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` - fi - PKG_LIBS="$PKG_LIBS $i" - done - - - ;; - *) - ;; - esac - - if test "$do64bit" != "no" ; then - # All this magic is necessary for the Win64 SDK RC1 - hobbs - CC="\"${PATH64}/cl.exe\"" - CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" - RC="\"${MSSDK}/bin/rc.exe\"" - lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" - LINKBIN="\"${PATH64}/link.exe\"" - CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d" - CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" - # Avoid 'unresolved external symbol __security_cookie' - # errors, c.f. http://support.microsoft.com/?id=894573 - - vars="bufferoverflowU.lib" - for i in $vars; do - if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then - # Convert foo.lib to -lfoo for GCC. No-op if not *.lib - i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` - fi - PKG_LIBS="$PKG_LIBS $i" - done - - - elif test "$doWince" != "no" ; then - CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" - if test "${TARGETCPU}" = "X86"; then - CC="\"${CEBINROOT}/cl.exe\"" - else - CC="\"${CEBINROOT}/cl${ARCH}.exe\"" - fi - CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" - RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" - arch=`echo ${ARCH} | awk '{print tolower($0)}'` - defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS" - if test "${SHARED_BUILD}" = "1" ; then - # Static CE builds require static celib as well - defs="${defs} _DLL" - fi - for i in $defs ; do - -cat >>confdefs.h <<_ACEOF -#define $i 1 -_ACEOF - - done - -cat >>confdefs.h <<_ACEOF -#define _WIN32_WCE $CEVERSION -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define UNDER_CE $CEVERSION -_ACEOF - - CFLAGS_DEBUG="-nologo -Zi -Od" - CFLAGS_OPTIMIZE="-nologo -Ox" - lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` - lflags="${lflags} -MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" - LINKBIN="\"${CEBINROOT}/link.exe\"" - - else - RC="rc" - lflags="${lflags} -nologo" - LINKBIN="link" - CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d" - CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" - fi - fi - - if test "$GCC" = "yes"; then - # mingw gcc mode - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. -set dummy ${ac_tool_prefix}windres; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RC"; then - ac_cv_prog_RC="$RC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RC="${ac_tool_prefix}windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RC=$ac_cv_prog_RC -if test -n "$RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 -$as_echo "$RC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RC"; then - ac_ct_RC=$RC - # Extract the first word of "windres", so it can be a program name with args. -set dummy windres; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RC"; then - ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RC="windres" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RC=$ac_cv_prog_ac_ct_RC -if test -n "$ac_ct_RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 -$as_echo "$ac_ct_RC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RC" = x; then - RC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RC=$ac_ct_RC - fi -else - RC="$ac_cv_prog_RC" -fi - - CFLAGS_DEBUG="-g" - CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" - SHLIB_LD='${CC} -shared' - UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' - LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" - LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cross-compile version of gcc" >&5 -$as_echo_n "checking for cross-compile version of gcc... " >&6; } -if ${ac_cv_cross+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #ifdef _WIN32 - #error cross-compiler - #endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_cross=yes -else - ac_cv_cross=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cross" >&5 -$as_echo "$ac_cv_cross" >&6; } - if test "$ac_cv_cross" = "yes"; then - case "$do64bit" in - amd64|x64|yes) - CC="x86_64-w64-mingw32-gcc" - LD="x86_64-w64-mingw32-ld" - AR="x86_64-w64-mingw32-ar" - RANLIB="x86_64-w64-mingw32-ranlib" - RC="x86_64-w64-mingw32-windres" - ;; - *) - CC="i686-w64-mingw32-gcc" - LD="i686-w64-mingw32-ld" - AR="i686-w64-mingw32-ar" - RANLIB="i686-w64-mingw32-ranlib" - RC="i686-w64-mingw32-windres" - ;; - esac - fi - - else - SHLIB_LD="${LINKBIN} -dll ${lflags}" - # link -lib only works when -lib is the first arg - STLIB_LD="${LINKBIN} -lib ${lflags}" - UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib' - PATHTYPE=-w - # For information on what debugtype is most useful, see: - # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp - # and also - # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx - # This essentially turns it all on. - LDFLAGS_DEBUG="-debug -debugtype:cv" - LDFLAGS_OPTIMIZE="-release" - if test "$doWince" != "no" ; then - LDFLAGS_CONSOLE="-link ${lflags}" - LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} - else - LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" - LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" - fi - fi - - SHLIB_SUFFIX=".dll" - SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' - - TCL_LIB_VERSIONS_OK=nodots - ;; - AIX-*) - if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then : - - # AIX requires the _r compiler when gcc isn't being used - case "${CC}" in - *_r|*_r\ *) - # ok ... - ;; - *) - # Make sure only first arg gets _r - CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'` - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $CC for compiling with threads" >&5 -$as_echo "Using $CC for compiling with threads" >&6; } - -fi - LIBS="$LIBS -lc" - SHLIB_CFLAGS="" - SHLIB_SUFFIX=".so" - - LD_LIBRARY_PATH_VAR="LIBPATH" - - # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : - - if test "$GCC" = yes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} - -else - - do64bit_ok=yes - CFLAGS="$CFLAGS -q64" - LDFLAGS_ARCH="-q64" - RANLIB="${RANLIB} -X64" - AR="${AR} -X64" - SHLIB_LD_FLAGS="-b64" - -fi - -fi - - if test "`uname -m`" = ia64; then : - - # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC - SHLIB_LD="/usr/ccs/bin/ld -G -z text" - if test "$GCC" = yes; then : - - CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' - -else - - CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' - -fi - LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' - -else - - if test "$GCC" = yes; then : - - SHLIB_LD='${CC} -shared -Wl,-bexpall' - -else - - SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" - LDFLAGS="$LDFLAGS -brtl" - -fi - SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}" - CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - -fi - ;; - BeOS*) - SHLIB_CFLAGS="-fPIC" - SHLIB_LD='${CC} -nostart' - SHLIB_SUFFIX=".so" - - #----------------------------------------------------------- - # Check for inet_ntoa in -lbind, for BeOS (which also needs - # -lsocket, even if the network functions are in -lnet which - # is always linked to, for compatibility. - #----------------------------------------------------------- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lbind" >&5 -$as_echo_n "checking for inet_ntoa in -lbind... " >&6; } -if ${ac_cv_lib_bind_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbind $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa (); -int -main () -{ -return inet_ntoa (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bind_inet_ntoa=yes -else - ac_cv_lib_bind_inet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bind_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_bind_inet_ntoa" >&6; } -if test "x$ac_cv_lib_bind_inet_ntoa" = xyes; then : - LIBS="$LIBS -lbind -lsocket" -fi - - ;; - BSD/OS-4.*) - SHLIB_CFLAGS="-export-dynamic -fPIC" - SHLIB_LD='${CC} -shared' - SHLIB_SUFFIX=".so" - LDFLAGS="$LDFLAGS -export-dynamic" - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - ;; - CYGWIN_*) - SHLIB_CFLAGS="" - SHLIB_LD='${CC} -shared' - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$@.a" - SHLIB_SUFFIX=".dll" - EXEEXT=".exe" - do64bit_ok=yes - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - ;; - Haiku*) - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - SHLIB_CFLAGS="-fPIC" - SHLIB_SUFFIX=".so" - SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5 -$as_echo_n "checking for inet_ntoa in -lnetwork... " >&6; } -if ${ac_cv_lib_network_inet_ntoa+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnetwork $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa (); -int -main () -{ -return inet_ntoa (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_network_inet_ntoa=yes -else - ac_cv_lib_network_inet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_ntoa" >&5 -$as_echo "$ac_cv_lib_network_inet_ntoa" >&6; } -if test "x$ac_cv_lib_network_inet_ntoa" = xyes; then : - LIBS="$LIBS -lnetwork" -fi - - ;; - HP-UX-*.11.*) - # Use updated header definitions where possible - -$as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h - - # TEA specific: Needed by Tcl, but not most extensions - #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) - #LIBS="$LIBS -lxnet" # Use the XOPEN network library - - if test "`uname -m`" = ia64; then : - - SHLIB_SUFFIX=".so" - # Use newer C++ library for C++ extensions - #if test "$GCC" != "yes" ; then - # CPPFLAGS="-AA" - #fi - -else - - SHLIB_SUFFIX=".sl" - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - tcl_ok=yes -else - tcl_ok=no -fi - - if test "$tcl_ok" = yes; then : - - LDFLAGS="$LDFLAGS -Wl,-E" - CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' - LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' - LD_LIBRARY_PATH_VAR="SHLIB_PATH" - -fi - if test "$GCC" = yes; then : - - SHLIB_LD='${CC} -shared' - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - -else - - CFLAGS="$CFLAGS -z" - # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc - #CFLAGS="$CFLAGS +DAportable" - SHLIB_CFLAGS="+z" - SHLIB_LD="ld -b" - -fi - - # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = "yes"; then : - - if test "$GCC" = yes; then : - - case `${CC} -dumpmachine` in - hppa64*) - # 64-bit gcc in use. Fix flags for GNU ld. - do64bit_ok=yes - SHLIB_LD='${CC} -shared' - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} - ;; - esac - -else - - do64bit_ok=yes - CFLAGS="$CFLAGS +DD64" - LDFLAGS_ARCH="+DD64" - -fi - -fi ;; - IRIX-6.*) - SHLIB_CFLAGS="" - SHLIB_LD="ld -n32 -shared -rdata_shared" - SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -fi - if test "$GCC" = yes; then : - - CFLAGS="$CFLAGS -mabi=n32" - LDFLAGS="$LDFLAGS -mabi=n32" - -else - - case $system in - IRIX-6.3) - # Use to build 6.2 compatible binaries on 6.3. - CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" - ;; - *) - CFLAGS="$CFLAGS -n32" - ;; - esac - LDFLAGS="$LDFLAGS -n32" - -fi - ;; - IRIX64-6.*) - SHLIB_CFLAGS="" - SHLIB_LD="ld -n32 -shared -rdata_shared" - SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -fi - - # Check to enable 64-bit flags for compiler/linker - - if test "$do64bit" = yes; then : - - if test "$GCC" = yes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported by gcc" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} - -else - - do64bit_ok=yes - SHLIB_LD="ld -64 -shared -rdata_shared" - CFLAGS="$CFLAGS -64" - LDFLAGS_ARCH="-64" - -fi - -fi - ;; - Linux*|GNU*|NetBSD-Debian) - SHLIB_CFLAGS="-fPIC" - SHLIB_SUFFIX=".so" - - # TEA specific: - CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" - - # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS - SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS_DEFAULT} -shared' - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "`uname -m`" = "alpha"; then : - CFLAGS="$CFLAGS -mieee" -fi - if test $do64bit = yes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -m64 flag" >&5 -$as_echo_n "checking if compiler accepts -m64 flag... " >&6; } -if ${tcl_cv_cc_m64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_cflags=$CFLAGS - CFLAGS="$CFLAGS -m64" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_cc_m64=yes -else - tcl_cv_cc_m64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS=$hold_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_m64" >&5 -$as_echo "$tcl_cv_cc_m64" >&6; } - if test $tcl_cv_cc_m64 = yes; then : - - CFLAGS="$CFLAGS -m64" - do64bit_ok=yes - -fi - -fi - - # The combo of gcc + glibc has a bug related to inlining of - # functions like strtod(). The -fno-builtin flag should address - # this problem but it does not work. The -fno-inline flag is kind - # of overkill but it works. Disable inlining only when one of the - # files in compat/*.c is being linked in. - - if test x"${USE_COMPAT}" != x; then : - CFLAGS="$CFLAGS -fno-inline" -fi - ;; - Lynx*) - SHLIB_CFLAGS="-fPIC" - SHLIB_SUFFIX=".so" - CFLAGS_OPTIMIZE=-02 - SHLIB_LD='${CC} -shared' - LD_FLAGS="-Wl,--export-dynamic" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - ;; - OpenBSD-*) - arch=`arch -s` - case "$arch" in - alpha|sparc64) - SHLIB_CFLAGS="-fPIC" - ;; - *) - SHLIB_CFLAGS="-fpic" - ;; - esac - SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' - SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}' - LDFLAGS="-Wl,-export-dynamic" - CFLAGS_OPTIMIZE="-O2" - if test "${TCL_THREADS}" = "1"; then : - - # On OpenBSD: Compile with -pthread - # Don't link with -lpthread - LIBS=`echo $LIBS | sed s/-lpthread//` - CFLAGS="$CFLAGS -pthread" - -fi - # OpenBSD doesn't do version numbers with dots. - UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' - TCL_LIB_VERSIONS_OK=nodots - ;; - NetBSD-*) - # NetBSD has ELF and can use 'cc -shared' to build shared libs - SHLIB_CFLAGS="-fPIC" - SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared' - SHLIB_SUFFIX=".so" - LDFLAGS="$LDFLAGS -export-dynamic" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "${TCL_THREADS}" = "1"; then : - - # The -pthread needs to go in the CFLAGS, not LIBS - LIBS=`echo $LIBS | sed s/-pthread//` - CFLAGS="$CFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - -fi - ;; - DragonFly-*|FreeBSD-*) - # This configuration from FreeBSD Ports. - SHLIB_CFLAGS="-fPIC" - SHLIB_LD="${CC} -shared" - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@" - SHLIB_SUFFIX=".so" - LDFLAGS="" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -fi - if test "${TCL_THREADS}" = "1"; then : - - # The -pthread needs to go in the LDFLAGS, not LIBS - LIBS=`echo $LIBS | sed s/-pthread//` - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LDFLAGS="$LDFLAGS $PTHREAD_LIBS" -fi - case $system in - FreeBSD-3.*) - # Version numbers are dot-stripped by system policy. - TCL_TRIM_DOTS=`echo ${PACKAGE_VERSION} | tr -d .` - UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' - SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' - TCL_LIB_VERSIONS_OK=nodots - ;; - esac - ;; - Darwin-*) - CFLAGS_OPTIMIZE="-Os" - SHLIB_CFLAGS="-fno-common" - # To avoid discrepancies between what headers configure sees during - # preprocessing tests and compiling tests, move any -isysroot and - # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: - CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ - awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ - if ($i~/^(isysroot|mmacosx-version-min)/) print "-"$i}'`" - CFLAGS="`echo " ${CFLAGS}" | \ - awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ - if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`" - if test $do64bit = yes; then : - - case `arch` in - ppc) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch ppc64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch ppc64 flag... " >&6; } -if ${tcl_cv_cc_arch_ppc64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_cflags=$CFLAGS - CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_cc_arch_ppc64=yes -else - tcl_cv_cc_arch_ppc64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS=$hold_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_ppc64" >&5 -$as_echo "$tcl_cv_cc_arch_ppc64" >&6; } - if test $tcl_cv_cc_arch_ppc64 = yes; then : - - CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" - do64bit_ok=yes - -fi;; - i386) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts -arch x86_64 flag" >&5 -$as_echo_n "checking if compiler accepts -arch x86_64 flag... " >&6; } -if ${tcl_cv_cc_arch_x86_64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_cflags=$CFLAGS - CFLAGS="$CFLAGS -arch x86_64" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_cc_arch_x86_64=yes -else - tcl_cv_cc_arch_x86_64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS=$hold_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cc_arch_x86_64" >&5 -$as_echo "$tcl_cv_cc_arch_x86_64" >&6; } - if test $tcl_cv_cc_arch_x86_64 = yes; then : - - CFLAGS="$CFLAGS -arch x86_64" - do64bit_ok=yes - -fi;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 -$as_echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; - esac - -else - - # Check for combined 32-bit and 64-bit fat build - if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ - && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then : - - fat_32_64=yes -fi - -fi - # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS - SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -single_module flag" >&5 -$as_echo_n "checking if ld accepts -single_module flag... " >&6; } -if ${tcl_cv_ld_single_module+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_ldflags=$LDFLAGS - LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_ld_single_module=yes -else - tcl_cv_ld_single_module=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$hold_ldflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_single_module" >&5 -$as_echo "$tcl_cv_ld_single_module" >&6; } - if test $tcl_cv_ld_single_module = yes; then : - - SHLIB_LD="${SHLIB_LD} -Wl,-single_module" - -fi - # TEA specific: link shlib with current and compatibility version flags - vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([0-9]\{1,5\}\)\(\(\.[0-9]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` - SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" - SHLIB_SUFFIX=".dylib" - # Don't use -prebind when building for Mac OS X 10.4 or later only: - if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ - "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then : - - LDFLAGS="$LDFLAGS -prebind" -fi - LDFLAGS="$LDFLAGS -headerpad_max_install_names" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld accepts -search_paths_first flag" >&5 -$as_echo_n "checking if ld accepts -search_paths_first flag... " >&6; } -if ${tcl_cv_ld_search_paths_first+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_ldflags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_ld_search_paths_first=yes -else - tcl_cv_ld_search_paths_first=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$hold_ldflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_search_paths_first" >&5 -$as_echo "$tcl_cv_ld_search_paths_first" >&6; } - if test $tcl_cv_ld_search_paths_first = yes; then : - - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - -fi - if test "$tcl_cv_cc_visibility_hidden" != yes; then : - - -$as_echo "#define MODULE_SCOPE __private_extern__" >>confdefs.h - - tcl_cv_cc_visibility_hidden=yes - -fi - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" - # TEA specific: for combined 32 & 64 bit fat builds of Tk - # extensions, verify that 64-bit build is possible. - if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then : - - if test "${TEA_WINDOWINGSYSTEM}" = x11; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit X11" >&5 -$as_echo_n "checking for 64-bit X11... " >&6; } -if ${tcl_cv_lib_x11_64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - for v in CFLAGS CPPFLAGS LDFLAGS; do - eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' - done - CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include" - LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -XrmInitialize(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_lib_x11_64=yes -else - tcl_cv_lib_x11_64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - for v in CFLAGS CPPFLAGS LDFLAGS; do - eval $v'="$hold_'$v'"' - done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_x11_64" >&5 -$as_echo "$tcl_cv_lib_x11_64" >&6; } - -fi - if test "${TEA_WINDOWINGSYSTEM}" = aqua; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit Tk" >&5 -$as_echo_n "checking for 64-bit Tk... " >&6; } -if ${tcl_cv_lib_tk_64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - for v in CFLAGS CPPFLAGS LDFLAGS; do - eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' - done - CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}" - LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -Tk_InitStubs(NULL, "", 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_lib_tk_64=yes -else - tcl_cv_lib_tk_64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - for v in CFLAGS CPPFLAGS LDFLAGS; do - eval $v'="$hold_'$v'"' - done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_lib_tk_64" >&5 -$as_echo "$tcl_cv_lib_tk_64" >&6; } - -fi - # remove 64-bit arch flags from CFLAGS et al. if configuration - # does not support 64-bit. - if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: Removing 64-bit architectures from compiler & linker flags" >&5 -$as_echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} - for v in CFLAGS CPPFLAGS LDFLAGS; do - eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' - done -fi - -fi - ;; - OS/390-*) - CFLAGS_OPTIMIZE="" # Optimizer is buggy - -$as_echo "#define _OE_SOCKETS 1" >>confdefs.h - - ;; - OSF1-V*) - # Digital OSF/1 - SHLIB_CFLAGS="" - if test "$SHARED_BUILD" = 1; then : - - SHLIB_LD='ld -shared -expect_unresolved "*"' - -else - - SHLIB_LD='ld -non_shared -expect_unresolved "*"' - -fi - SHLIB_SUFFIX=".so" - if test $doRpath = yes; then : - - CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -fi - if test "$GCC" = yes; then : - CFLAGS="$CFLAGS -mieee" -else - - CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" -fi - # see pthread_intro(3) for pthread support on osf1, k.furukawa - if test "${TCL_THREADS}" = 1; then : - - CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" - CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" - LIBS=`echo $LIBS | sed s/-lpthreads//` - if test "$GCC" = yes; then : - - LIBS="$LIBS -lpthread -lmach -lexc" - -else - - CFLAGS="$CFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - -fi - -fi - ;; - QNX-6*) - # QNX RTP - # This may work for all QNX, but it was only reported for v6. - SHLIB_CFLAGS="-fPIC" - SHLIB_LD="ld -Bshareable -x" - SHLIB_LD_LIBS="" - SHLIB_SUFFIX=".so" - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - ;; - SCO_SV-3.2*) - if test "$GCC" = yes; then : - - SHLIB_CFLAGS="-fPIC -melf" - LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" - -else - - SHLIB_CFLAGS="-Kpic -belf" - LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" - -fi - SHLIB_LD="ld -G" - SHLIB_LD_LIBS="" - SHLIB_SUFFIX=".so" - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - ;; - SunOS-5.[0-6]) - # Careful to not let 5.10+ fall into this case - - # Note: If _REENTRANT isn't defined, then Solaris - # won't define thread-safe library routines. - - -$as_echo "#define _REENTRANT 1" >>confdefs.h - - -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - - SHLIB_CFLAGS="-KPIC" - SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : - - SHLIB_LD='${CC} -shared' - CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - -else - - SHLIB_LD="/usr/ccs/bin/ld -G -z text" - CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - -fi - ;; - SunOS-5*) - # Note: If _REENTRANT isn't defined, then Solaris - # won't define thread-safe library routines. - - -$as_echo "#define _REENTRANT 1" >>confdefs.h - - -$as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - - SHLIB_CFLAGS="-KPIC" - - # Check to enable 64-bit flags for compiler/linker - if test "$do64bit" = yes; then : - - arch=`isainfo` - if test "$arch" = "sparcv9 sparc"; then : - - if test "$GCC" = yes; then : - - if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} - -else - - do64bit_ok=yes - CFLAGS="$CFLAGS -m64 -mcpu=v9" - LDFLAGS="$LDFLAGS -m64 -mcpu=v9" - SHLIB_CFLAGS="-fPIC" - -fi - -else - - do64bit_ok=yes - if test "$do64bitVIS" = yes; then : - - CFLAGS="$CFLAGS -xarch=v9a" - LDFLAGS_ARCH="-xarch=v9a" - -else - - CFLAGS="$CFLAGS -xarch=v9" - LDFLAGS_ARCH="-xarch=v9" - -fi - # Solaris 64 uses this as well - #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" - -fi - -else - if test "$arch" = "amd64 i386"; then : - - if test "$GCC" = yes; then : - - case $system in - SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) - do64bit_ok=yes - CFLAGS="$CFLAGS -m64" - LDFLAGS="$LDFLAGS -m64";; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported with GCC on $system" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; - esac - -else - - do64bit_ok=yes - case $system in - SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) - CFLAGS="$CFLAGS -m64" - LDFLAGS="$LDFLAGS -m64";; - *) - CFLAGS="$CFLAGS -xarch=amd64" - LDFLAGS="$LDFLAGS -xarch=amd64";; - esac - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit mode not supported for $arch" >&5 -$as_echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} -fi -fi - -fi - - SHLIB_SUFFIX=".so" - if test "$GCC" = yes; then : - - SHLIB_LD='${CC} -shared' - CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - if test "$do64bit_ok" = yes; then : - - if test "$arch" = "sparcv9 sparc"; then : - - # We need to specify -static-libgcc or we need to - # add the path to the sparv9 libgcc. - # JH: static-libgcc is necessary for core Tcl, but may - # not be necessary for extensions. - SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" - # for finding sparcv9 libgcc, get the regular libgcc - # path, remove so name and append 'sparcv9' - #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." - #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" - -else - if test "$arch" = "amd64 i386"; then : - - # JH: static-libgcc is necessary for core Tcl, but may - # not be necessary for extensions. - SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" - -fi -fi - -fi - -else - - case $system in - SunOS-5.[1-9][0-9]*) - # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS - SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';; - *) - SHLIB_LD='/usr/ccs/bin/ld -G -z text';; - esac - CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' - -fi - ;; - UNIX_SV* | UnixWare-5*) - SHLIB_CFLAGS="-KPIC" - SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS="" - SHLIB_SUFFIX=".so" - # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers - # that don't grok the -Bexport option. Test that it does. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld accepts -Bexport flag" >&5 -$as_echo_n "checking for ld accepts -Bexport flag... " >&6; } -if ${tcl_cv_ld_Bexport+:} false; then : - $as_echo_n "(cached) " >&6 -else - - hold_ldflags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-Bexport" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - tcl_cv_ld_Bexport=yes -else - tcl_cv_ld_Bexport=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$hold_ldflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_ld_Bexport" >&5 -$as_echo "$tcl_cv_ld_Bexport" >&6; } - if test $tcl_cv_ld_Bexport = yes; then : - - LDFLAGS="$LDFLAGS -Wl,-Bexport" - -fi - CC_SEARCH_FLAGS="" - LD_SEARCH_FLAGS="" - ;; - esac - - if test "$do64bit" = yes -a "$do64bit_ok" = no; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 -$as_echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} - -fi - - - - # Add in the arch flags late to ensure it wasn't removed. - # Not necessary in TEA, but this is aligned with core - LDFLAGS="$LDFLAGS $LDFLAGS_ARCH" - - # If we're running gcc, then change the C flags for compiling shared - # libraries to the right flags for gcc, instead of those for the - # standard manufacturer compiler. - - if test "$GCC" = yes; then : - - case $system in - AIX-*) ;; - BSD/OS*) ;; - CYGWIN_*|MINGW32_*|MINGW64_*) ;; - IRIX*) ;; - NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;; - Darwin-*) ;; - SCO_SV-3.2*) ;; - windows) ;; - *) SHLIB_CFLAGS="-fPIC" ;; - esac -fi - - if test "$tcl_cv_cc_visibility_hidden" != yes; then : - - -$as_echo "#define MODULE_SCOPE extern" >>confdefs.h - - -fi - - if test "$SHARED_LIB_SUFFIX" = ""; then : - - # TEA specific: use PACKAGE_VERSION instead of VERSION - SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' -fi - if test "$UNSHARED_LIB_SUFFIX" = ""; then : - - # TEA specific: use PACKAGE_VERSION instead of VERSION - UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' -fi - - if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SEH support in compiler" >&5 -$as_echo_n "checking for SEH support in compiler... " >&6; } -if ${tcl_cv_seh+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - tcl_cv_seh=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN - - int main(int argc, char** argv) { - int a, b = 0; - __try { - a = 666 / b; - } - __except (EXCEPTION_EXECUTE_HANDLER) { - return 0; - } - return 1; - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - tcl_cv_seh=yes -else - tcl_cv_seh=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_seh" >&5 -$as_echo "$tcl_cv_seh" >&6; } - if test "$tcl_cv_seh" = "no" ; then - -$as_echo "#define HAVE_NO_SEH 1" >>confdefs.h - - fi - - # - # Check to see if the excpt.h include file provided contains the - # definition for EXCEPTION_DISPOSITION; if not, which is the case - # with Cygwin's version as of 2002-04-10, define it to be int, - # sufficient for getting the current code to work. - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXCEPTION_DISPOSITION support in include files" >&5 -$as_echo_n "checking for EXCEPTION_DISPOSITION support in include files... " >&6; } -if ${tcl_cv_eh_disposition+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define WIN32_LEAN_AND_MEAN -# include -# undef WIN32_LEAN_AND_MEAN - -int -main () -{ - - EXCEPTION_DISPOSITION x; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_eh_disposition=yes -else - tcl_cv_eh_disposition=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_eh_disposition" >&5 -$as_echo "$tcl_cv_eh_disposition" >&6; } - if test "$tcl_cv_eh_disposition" = "no" ; then - -$as_echo "#define EXCEPTION_DISPOSITION int" >>confdefs.h - - fi - - # Check to see if winnt.h defines CHAR, SHORT, and LONG - # even if VOID has already been #defined. The win32api - # used by mingw and cygwin is known to do this. - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winnt.h that ignores VOID define" >&5 -$as_echo_n "checking for winnt.h that ignores VOID define... " >&6; } -if ${tcl_cv_winnt_ignore_void+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define VOID void -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN - -int -main () -{ - - CHAR c; - SHORT s; - LONG l; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_winnt_ignore_void=yes -else - tcl_cv_winnt_ignore_void=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_winnt_ignore_void" >&5 -$as_echo "$tcl_cv_winnt_ignore_void" >&6; } - if test "$tcl_cv_winnt_ignore_void" = "yes" ; then - -$as_echo "#define HAVE_WINNT_IGNORE_VOID 1" >>confdefs.h - - fi - fi - - # See if the compiler supports casting to a union type. - # This is used to stop gcc from printing a compiler - # warning when initializing a union member. - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cast to union support" >&5 -$as_echo_n "checking for cast to union support... " >&6; } -if ${tcl_cv_cast_to_union+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - union foo { int i; double d; }; - union foo f = (union foo) (int) 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_cast_to_union=yes -else - tcl_cv_cast_to_union=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_cast_to_union" >&5 -$as_echo "$tcl_cv_cast_to_union" >&6; } - if test "$tcl_cv_cast_to_union" = "yes"; then - -$as_echo "#define HAVE_CAST_TO_UNION 1" >>confdefs.h - - fi - - - - - - - - - - - - - - # These must be called after we do the basic CFLAGS checks and - # verify any possible 64-bit or similar switches are necessary - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for required early compiler flags" >&5 -$as_echo_n "checking for required early compiler flags... " >&6; } - tcl_flags="" - - if ${tcl_cv_flag__isoc99_source+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *)strtoll; char *q = (char *)strtoull; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__isoc99_source=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _ISOC99_SOURCE 1 -#include -int -main () -{ -char *p = (char *)strtoll; char *q = (char *)strtoull; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__isoc99_source=yes -else - tcl_cv_flag__isoc99_source=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then - -$as_echo "#define _ISOC99_SOURCE 1" >>confdefs.h - - tcl_flags="$tcl_flags _ISOC99_SOURCE" - fi - - - if ${tcl_cv_flag__largefile64_source+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct stat64 buf; int i = stat64("/", &buf); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__largefile64_source=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGEFILE64_SOURCE 1 -#include -int -main () -{ -struct stat64 buf; int i = stat64("/", &buf); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__largefile64_source=yes -else - tcl_cv_flag__largefile64_source=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then - -$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h - - tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" - fi - - - if ${tcl_cv_flag__largefile_source64+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *)open64; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__largefile_source64=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGEFILE_SOURCE64 1 -#include -int -main () -{ -char *p = (char *)open64; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_flag__largefile_source64=yes -else - tcl_cv_flag__largefile_source64=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then - -$as_echo "#define _LARGEFILE_SOURCE64 1" >>confdefs.h - - tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" - fi - - if test "x${tcl_flags}" = "x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_flags}" >&5 -$as_echo "${tcl_flags}" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit integer type" >&5 -$as_echo_n "checking for 64-bit integer type... " >&6; } - if ${tcl_cv_type_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else - - tcl_cv_type_64bit=none - # See if the compiler knows natively about __int64 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -__int64 value = (__int64) 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_type_64bit=__int64 -else - tcl_type_64bit="long long" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # See if we should use long anyway Note that we substitute in the - # type that is our current guess for a 64-bit type inside this check - # program, so it should be modified only carefully... - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -switch (0) { - case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; - } - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_type_64bit=${tcl_type_64bit} -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - if test "${tcl_cv_type_64bit}" = none ; then - -$as_echo "#define TCL_WIDE_INT_IS_LONG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using long" >&5 -$as_echo "using long" >&6; } - elif test "${tcl_cv_type_64bit}" = "__int64" \ - -a "${TEA_PLATFORM}" = "windows" ; then - # TEA specific: We actually want to use the default tcl.h checks in - # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using Tcl header defaults" >&5 -$as_echo "using Tcl header defaults" >&6; } - else - -cat >>confdefs.h <<_ACEOF -#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit} -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${tcl_cv_type_64bit}" >&5 -$as_echo "${tcl_cv_type_64bit}" >&6; } - - # Now check for auxiliary declarations - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent64" >&5 -$as_echo_n "checking for struct dirent64... " >&6; } -if ${tcl_cv_struct_dirent64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct dirent64 p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_struct_dirent64=yes -else - tcl_cv_struct_dirent64=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_dirent64" >&5 -$as_echo "$tcl_cv_struct_dirent64" >&6; } - if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then - -$as_echo "#define HAVE_STRUCT_DIRENT64 1" >>confdefs.h - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat64" >&5 -$as_echo_n "checking for struct stat64... " >&6; } -if ${tcl_cv_struct_stat64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct stat64 p; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_struct_stat64=yes -else - tcl_cv_struct_stat64=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_struct_stat64" >&5 -$as_echo "$tcl_cv_struct_stat64" >&6; } - if test "x${tcl_cv_struct_stat64}" = "xyes" ; then - -$as_echo "#define HAVE_STRUCT_STAT64 1" >>confdefs.h - - fi - - for ac_func in open64 lseek64 -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 -$as_echo_n "checking for off64_t... " >&6; } - if ${tcl_cv_type_off64_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -off64_t offset; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - tcl_cv_type_off64_t=yes -else - tcl_cv_type_off64_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - if test "x${tcl_cv_type_off64_t}" = "xyes" && \ - test "x${ac_cv_func_lseek64}" = "xyes" && \ - test "x${ac_cv_func_open64}" = "xyes" ; then - -$as_echo "#define HAVE_TYPE_OFF64_T 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - - - -if test "${TEA_PLATFORM}" = "windows" ; then - CXX="$CC" - CXXFLAGS="$CFLAGS" -fi - -#-------------------------------------------------------------------- -# Set the default compiler switches based on the --enable-symbols option. -#-------------------------------------------------------------------- - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build with symbols" >&5 -$as_echo_n "checking for build with symbols... " >&6; } - # Check whether --enable-symbols was given. -if test "${enable_symbols+set}" = set; then : - enableval=$enable_symbols; tcl_ok=$enableval -else - tcl_ok=no -fi - - DBGX="" - if test "$tcl_ok" = "no"; then - CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG" - LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - CFLAGS_DEFAULT="${CFLAGS_DEBUG}" - LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" - if test "$tcl_ok" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5 -$as_echo "yes (standard debugging)" >&6; } - fi - fi - # TEA specific: - if test "${TEA_PLATFORM}" != "windows" ; then - LDFLAGS_DEFAULT="${LDFLAGS}" - fi - - - - - if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then - -$as_echo "#define TCL_MEM_DEBUG 1" >>confdefs.h - - fi - - if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then - if test "$tcl_ok" = "all"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled symbols mem debugging" >&5 -$as_echo "enabled symbols mem debugging" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled $tcl_ok debugging" >&5 -$as_echo "enabled $tcl_ok debugging" >&6; } - fi - fi - - -#-------------------------------------------------------------------- -# This macro generates a line to use when building a library. It -# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, -# and TEA_LOAD_TCLCONFIG macros above. -#-------------------------------------------------------------------- - - - if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then - MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)" - MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\$@ \$(PKG_OBJECTS)" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if defined(_MSC_VER) && _MSC_VER >= 1400 -print("manifest needed") -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "manifest needed" >/dev/null 2>&1; then : - - # Could do a CHECK_PROG for mt, but should always be with MSVC8+ - VC_MANIFEST_EMBED_DLL="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;2 ; fi" - VC_MANIFEST_EMBED_EXE="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;1 ; fi" - MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" - - CLEANFILES="$CLEANFILES *.manifest" - - -fi -rm -f conftest* - - MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\$@ \$(PKG_STUB_OBJECTS)" - else - MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(PKG_OBJECTS)" - MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" - MAKE_STUB_LIB="\${STLIB_LD} \$@ \$(PKG_STUB_OBJECTS)" - fi - - if test "${SHARED_BUILD}" = "1" ; then - MAKE_LIB="${MAKE_SHARED_LIB} " - else - MAKE_LIB="${MAKE_STATIC_LIB} " - fi - - #-------------------------------------------------------------------- - # Shared libraries and static libraries have different names. - # Use the double eval to make sure any variables in the suffix is - # substituted. (@@@ Might not be necessary anymore) - #-------------------------------------------------------------------- - - if test "${TEA_PLATFORM}" = "windows" ; then - if test "${SHARED_BUILD}" = "1" ; then - # We force the unresolved linking of symbols that are really in - # the private libraries of Tcl and Tk. - if test x"${TK_BIN_DIR}" != x ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" - fi - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" - if test "$GCC" = "yes"; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc" - fi - eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" - else - eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" - if test "$GCC" = "yes"; then - PKG_LIB_FILE=lib${PKG_LIB_FILE} - fi - fi - # Some packages build their own stubs libraries - eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" - if test "$GCC" = "yes"; then - PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} - fi - # These aren't needed on Windows (either MSVC or gcc) - RANLIB=: - RANLIB_STUB=: - else - RANLIB_STUB="${RANLIB}" - if test "${SHARED_BUILD}" = "1" ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" - if test x"${TK_BIN_DIR}" != x ; then - SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" - fi - eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" - RANLIB=: - else - eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" - fi - # Some packages build their own stubs libraries - eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" - fi - - # These are escaped so that only CFLAGS is picked up at configure time. - # The other values will be substituted at make time. - CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" - if test "${SHARED_BUILD}" = "1" ; then - CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" - fi - - - - - - - - - - -#-------------------------------------------------------------------- -# Determine the name of the tclsh and/or wish executables in the -# Tcl and Tk build directories or the location they were installed -# into. These paths are used to support running test cases only, -# the Makefile should not be making use of these paths to generate -# a pkgIndex.tcl file or anything else at extension build time. -#-------------------------------------------------------------------- - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tclsh" >&5 -$as_echo_n "checking for tclsh... " >&6; } - if test -f "${TCL_BIN_DIR}/Makefile" ; then - # tclConfig.sh is in Tcl build directory - if test "${TEA_PLATFORM}" = "windows"; then - if test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" ; then - TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" - elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" ; then - TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" - elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" ; then - TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" - elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" ; then - TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" - fi - else - TCLSH_PROG="${TCL_BIN_DIR}/tclsh" - fi - else - # tclConfig.sh is in install location - if test "${TEA_PLATFORM}" = "windows"; then - TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" - else - TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}" - fi - list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \ - `ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \ - `ls -d ${TCL_PREFIX}/bin 2>/dev/null`" - for i in $list ; do - if test -f "$i/${TCLSH_PROG}" ; then - REAL_TCL_BIN_DIR="`cd "$i"; pwd`/" - break - fi - done - TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${TCLSH_PROG}" >&5 -$as_echo "${TCLSH_PROG}" >&6; } - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wish" >&5 -$as_echo_n "checking for wish... " >&6; } - if test -f "${TK_BIN_DIR}/Makefile" ; then - # tkConfig.sh is in Tk build directory - if test "${TEA_PLATFORM}" = "windows"; then - if test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" ; then - WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" - elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}s${EXEEXT}" ; then - WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}$s{EXEEXT}" - elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}" ; then - WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}" - elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" ; then - WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" - fi - else - WISH_PROG="${TK_BIN_DIR}/wish" - fi - else - # tkConfig.sh is in install location - if test "${TEA_PLATFORM}" = "windows"; then - WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" - else - WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}" - fi - list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \ - `ls -d ${TK_BIN_DIR}/.. 2>/dev/null` \ - `ls -d ${TK_PREFIX}/bin 2>/dev/null`" - for i in $list ; do - if test -f "$i/${WISH_PROG}" ; then - REAL_TK_BIN_DIR="`cd "$i"; pwd`/" - break - fi - done - WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WISH_PROG}" >&5 -$as_echo "${WISH_PROG}" >&6; } - - - -#-------------------------------------------------------------------- -# Setup a *Config.sh.in configuration file. -#-------------------------------------------------------------------- - - - #-------------------------------------------------------------------- - # These are for tkbltConfig.sh - #-------------------------------------------------------------------- - - # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) - eval pkglibdir="${libdir}/tkblt${PACKAGE_VERSION}" - if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then - eval tkblt_LIB_FLAG="-ltkblt${PACKAGE_VERSION}${DBGX}" - eval tkblt_STUB_LIB_FLAG="-ltkbltstub${PACKAGE_VERSION}${DBGX}" - else - eval tkblt_LIB_FLAG="-ltkblt`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" - eval tkblt_STUB_LIB_FLAG="-ltkbltstub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" - fi - tkblt_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tkblt_LIB_FLAG}" - tkblt_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tkblt_LIB_FLAG}" - tkblt_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tkblt_STUB_LIB_FLAG}" - tkblt_STUB_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tkblt_STUB_LIB_FLAG}" - tkblt_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)`/${PKG_STUB_LIB_FILE}" - tkblt_STUB_LIB_PATH="`$CYGPATH ${pkglibdir}`/${PKG_STUB_LIB_FILE}" - - - - - - - - - - - - -#AC_SUBST(SAMPLE_VAR) - -#-------------------------------------------------------------------- -# Specify files to substitute AC variables in. You may alternatively -# have a special pkgIndex.tcl.in or other files which require -# substituting the AC variables in. Include these here. -#-------------------------------------------------------------------- - -ac_config_files="$ac_config_files Makefile pkgIndex.tcl" - -ac_config_files="$ac_config_files tkbltConfig.sh" - - -#-------------------------------------------------------------------- -# Finally, substitute all of the various values into the files -# specified with AC_CONFIG_FILES. -#-------------------------------------------------------------------- - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS="" - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by tkblt $as_me 3.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -tkblt config.status 3.2 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "pkgIndex.tcl") CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;; - "tkbltConfig.sh") CONFIG_FILES="$CONFIG_FILES tkbltConfig.sh" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES " -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - - esac - -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/tkblt/configure.ac b/tkblt/configure.ac deleted file mode 100644 index 4d8f5e8..0000000 --- a/tkblt/configure.ac +++ /dev/null @@ -1,255 +0,0 @@ -#!/bin/bash -norc -dnl This file is an input file used by the GNU "autoconf" program to -dnl generate the file "configure", which is run during Tcl installation -dnl to configure the system for the local environment. - -#----------------------------------------------------------------------- -# Sample configure.ac for Tcl Extensions. The only places you should -# need to modify this file are marked by the string __CHANGE__ -#----------------------------------------------------------------------- - -#----------------------------------------------------------------------- -# __CHANGE__ -# Set your package name and version numbers here. -# -# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION -# set as provided. These will also be added as -D defs in your Makefile -# so you can encode the package version directly into the source files. -# This will also define a special symbol for Windows (BUILD_ -# so that we create the export library with the dll. -#----------------------------------------------------------------------- - -AC_INIT([tkblt], [3.2]) - -#-------------------------------------------------------------------- -# Call TEA_INIT as the first TEA_ macro to set up initial vars. -# This will define a ${TEA_PLATFORM} variable == "unix" or "windows" -# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE. -#-------------------------------------------------------------------- - -TEA_INIT() - -AC_CONFIG_AUX_DIR(tclconfig) - -#-------------------------------------------------------------------- -# Load the tclConfig.sh file -#-------------------------------------------------------------------- - -TEA_PATH_TCLCONFIG -TEA_LOAD_TCLCONFIG - -#-------------------------------------------------------------------- -# Load the tkConfig.sh file if necessary (Tk extension) -#-------------------------------------------------------------------- - -TEA_PATH_TKCONFIG -TEA_LOAD_TKCONFIG - -#----------------------------------------------------------------------- -# Handle the --prefix=... option by defaulting to what Tcl gave. -# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. -#----------------------------------------------------------------------- - -TEA_PREFIX - -#----------------------------------------------------------------------- -# Standard compiler checks. -# This sets up CC by using the CC env var, or looks for gcc otherwise. -# This also calls AC_PROG_CC and a few others to create the basic setup -# necessary to compile executables. -#----------------------------------------------------------------------- - -TEA_SETUP_COMPILER - -if test "${TEA_PLATFORM}" != "windows" ; then - AC_PROG_CXX -fi - -#----------------------------------------------------------------------- -# __CHANGE__ -# Specify the C source files to compile in TEA_ADD_SOURCES, -# public headers that need to be installed in TEA_ADD_HEADERS, -# stub library C source files to compile in TEA_ADD_STUB_SOURCES, -# and runtime Tcl library files in TEA_ADD_TCL_SOURCES. -# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS -# and PKG_TCL_SOURCES. -#----------------------------------------------------------------------- - -TEA_ADD_SOURCES([ -tkbltChain.C -tkbltConfig.C -tkbltGrAxis.C -tkbltGrAxisOp.C -tkbltGrAxisOption.C -tkbltGrBind.C -tkbltGrElemOp.C -tkbltGrElemOption.C -tkbltGrElem.C -tkbltGrElemBar.C -tkbltGrElemLine.C -tkbltGrElemLineSpline.C -tkbltGrHairs.C -tkbltGrHairsOp.C -tkbltGrLegd.C -tkbltGrLegdOp.C -tkbltGrMarkerOp.C -tkbltGrMarkerOption.C -tkbltGrMarker.C -tkbltGrMarkerLine.C -tkbltGrMarkerPolygon.C -tkbltGrMarkerText.C -tkbltGrMisc.C -tkbltGrPenOp.C -tkbltGrPenOption.C -tkbltGrPen.C -tkbltGrPenBar.C -tkbltGrPenLine.C -tkbltGrPostscript.C -tkbltGrPostscriptOp.C -tkbltGrPSOutput.C -tkbltGrText.C -tkbltGrXAxisOp.C -tkbltGraph.C -tkbltGraphBar.C -tkbltGraphLine.C -tkbltGraphOp.C -tkbltGraphSup.C -tkbltInt.C -tkbltNsUtil.C -tkbltParse.C -tkbltOp.C -tkbltStubInit.c -tkbltStubLib.C -tkbltSwitch.C -tkbltVecCmd.C -tkbltVecOp.C -tkbltVecMath.C -tkbltVector.C -]) -TEA_ADD_HEADERS([ -generic/tkbltVector.h -generic/tkbltDecls.h -]) -TEA_ADD_INCLUDES([]) -TEA_ADD_LIBS([-lstdc++]) -if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then -TEA_ADD_CFLAGS([-TP -EHsc -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES]) -fi -TEA_ADD_STUB_SOURCES([tkbltStubLib.C]) -TEA_ADD_TCL_SOURCES([library/graph.tcl]) - -#-------------------------------------------------------------------- -# __CHANGE__ -# -# You can add more files to clean if your extension creates any extra -# files by extending CLEANFILES. -# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure -# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var. -# -# A few miscellaneous platform-specific items: -# TEA_ADD_* any platform specific compiler/build info here. -#-------------------------------------------------------------------- - -#CLEANFILES="$CLEANFILES pkgIndex.tcl" -if test "${TEA_PLATFORM}" = "windows" ; then - # Ensure no empty if clauses - : - #TEA_ADD_SOURCES([win/winFile.c]) - #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"]) -else - # Ensure no empty else clauses - : - #TEA_ADD_SOURCES([unix/unixFile.c]) - #TEA_ADD_LIBS([-lsuperfly]) -fi - -#-------------------------------------------------------------------- -# __CHANGE__ -# Choose which headers you need. Extension authors should try very -# hard to only rely on the Tcl public header files. Internal headers -# contain private data structures and are subject to change without -# notice. -# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG -#-------------------------------------------------------------------- - -TEA_PUBLIC_TCL_HEADERS -TEA_PRIVATE_TCL_HEADERS - -TEA_PUBLIC_TK_HEADERS -TEA_PRIVATE_TK_HEADERS -TEA_PATH_X - -#-------------------------------------------------------------------- -# Check whether --enable-threads or --disable-threads was given. -# This auto-enables if Tcl was compiled threaded. -#-------------------------------------------------------------------- - -TEA_ENABLE_THREADS - -#-------------------------------------------------------------------- -# The statement below defines a collection of symbols related to -# building as a shared library instead of a static library. -#-------------------------------------------------------------------- - -TEA_ENABLE_SHARED - -#-------------------------------------------------------------------- -# This macro figures out what flags to use with the compiler/linker -# when building shared/static debug/optimized objects. This information -# can be taken from the tclConfig.sh file, but this figures it all out. -#-------------------------------------------------------------------- - -TEA_CONFIG_CFLAGS - -if test "${TEA_PLATFORM}" = "windows" ; then - CXX="$CC" - CXXFLAGS="$CFLAGS" -fi - -#-------------------------------------------------------------------- -# Set the default compiler switches based on the --enable-symbols option. -#-------------------------------------------------------------------- - -TEA_ENABLE_SYMBOLS - -#-------------------------------------------------------------------- -# This macro generates a line to use when building a library. It -# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, -# and TEA_LOAD_TCLCONFIG macros above. -#-------------------------------------------------------------------- - -TEA_MAKE_LIB - -#-------------------------------------------------------------------- -# Determine the name of the tclsh and/or wish executables in the -# Tcl and Tk build directories or the location they were installed -# into. These paths are used to support running test cases only, -# the Makefile should not be making use of these paths to generate -# a pkgIndex.tcl file or anything else at extension build time. -#-------------------------------------------------------------------- - -TEA_PROG_TCLSH -TEA_PROG_WISH - -#-------------------------------------------------------------------- -# Setup a *Config.sh.in configuration file. -#-------------------------------------------------------------------- - -TEA_EXPORT_CONFIG([tkblt]) -#AC_SUBST(SAMPLE_VAR) - -#-------------------------------------------------------------------- -# Specify files to substitute AC variables in. You may alternatively -# have a special pkgIndex.tcl.in or other files which require -# substituting the AC variables in. Include these here. -#-------------------------------------------------------------------- - -AC_CONFIG_FILES([Makefile pkgIndex.tcl]) -AC_CONFIG_FILES([tkbltConfig.sh]) - -#-------------------------------------------------------------------- -# Finally, substitute all of the various values into the files -# specified with AC_CONFIG_FILES. -#-------------------------------------------------------------------- - -AC_OUTPUT() diff --git a/tkblt/doc/BLT.html b/tkblt/doc/BLT.html deleted file mode 100644 index 55e4e38..0000000 --- a/tkblt/doc/BLT.html +++ /dev/null @@ -1,74 +0,0 @@ - - -
-
-
-
-

DESCRIPTION

-       BLT is a library of extensions to the Tk library.  It adds new commands
-       and variables to the application's interpreter.
-
-
-
-
-

COMMANDS

-       The following commands are  added  to  the  interpreter  from  the  BLT
-       library:
-
-       graph          A 2D plotting widget.  Plots two variable data in a win-
-                      dow with an optional legend and annotations.   It has of
-                      several  components; coordinate axes, crosshairs, a leg-
-                      end, and a collection of elements and tags.
-
-       barchart       A barchart widget.  Plots two-variable data as rectangu-
-                      lar bars in a window.  The x-coordinate values designate
-                      the position of the bar along the x-axis, while  the  y-
-                      coordinate values designate the magnitude.  The barchart
-                      widget  has  of  several  components;  coordinate  axes,
-                      crosshairs,  a  legend, and a collection of elements and
-                      tags.
-
-       vector         Creates a vector of floating point values.  The vector's
-                      components  can  be manipulated in three ways: through a
-                      Tcl array variable, a Tcl command, or the C API.
-
-
-
-

ADDING BLT TO YOUR APPLICATIONS

-       It's easy to add BLT to an existing Tk application.   BLT  requires  no
-       patches  or  edits  to the Tcl or Tk libraries.  To add BLT, simply add
-       the following code snippet to your application's tkAppInit.c file.
-
-       if (Tkblt_Init(interp) != TCL_OK) {
-
-           return TCL_ERROR;
-
-       }
-
-       Recompile and link with the tkblt library and that's it.
-
-       Alternately, you can dynamically load tkblt,  simply  by  invoking  the
-       command
-
-       % package require tkblt
-
-       from your Tcl script.
-
-
-
-

BUGS

-       Send bug reports, requests, suggestions, etc. to wjoye@cfa.harvard.edu
-
-
-
-

KEYWORDS

-       BLT
-
-
-
-
-Man(1) output converted with -man2html -
- - diff --git a/tkblt/doc/BLT.n b/tkblt/doc/BLT.n deleted file mode 100644 index 6f63aa8..0000000 --- a/tkblt/doc/BLT.n +++ /dev/null @@ -1,76 +0,0 @@ -'\" -'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA -'\" This code has been modified under the terms listed below and is made -'\" available under the same terms. -'\" -'\" Copyright 1991-1997 by Bell Labs Innovations for Lucent Technologies. -'\" -'\" Permission to use, copy, modify, and distribute this software and its -'\" documentation for any purpose and without fee is hereby granted, provided -'\" that the above copyright notice appear in all copies and that both that the -'\" copyright notice and warranty disclaimer appear in supporting documentation, -'\" and that the names of Lucent Technologies any of their entities not be used -'\" in advertising or publicity pertaining to distribution of the software -'\" without specific, written prior permission. -'\" -'\" Lucent Technologies disclaims all warranties with regard to this software, -'\" including all implied warranties of merchantability and fitness. In no event -'\" shall Lucent Technologies be liable for any special, indirect or -'\" consequential damages or any damages whatsoever resulting from loss of use, -'\" data or profits, whether in an action of contract, negligence or other -'\" tortuous action, arising out of or in connection with the use or performance -'\" of this software. -'\" -.TH intro n BLT_VERSION BLT "BLT Built-In Commands" -.BS -'\" Note: do not modify the .SH NAME line immediately below! -.SH NAME -BLT \- Introduction to the BLT library -.BE -.SH DESCRIPTION -BLT is a library of extensions to the Tk library. It adds new -commands and variables to the application's interpreter. -.LP -.SH COMMANDS -The following commands are added to the interpreter from the BLT library: -.TP 15 -\fBgraph\fR -A 2D plotting widget. Plots two variable data in a window with an optional -legend and annotations. It has of several components; coordinate axes, -crosshairs, a legend, and a collection of elements and tags. -.TP 15 -\fBbarchart\fR -A barchart widget. Plots two-variable data as rectangular bars in a -window. The x-coordinate values designate the position of the bar along -the x-axis, while the y-coordinate values designate the magnitude. -The \fBbarchart\fR widget has of several components; coordinate axes, -crosshairs, a legend, and a collection of elements and tags. -.TP 15 -\fBvector\fR -Creates a vector of floating point values. The vector's components -can be manipulated in three ways: through a Tcl array variable, a Tcl -command, or the C API. -.SH ADDING BLT TO YOUR APPLICATIONS -It's easy to add BLT to an existing Tk application. BLT requires no -patches or edits to the Tcl or Tk libraries. To add BLT, simply add the -following code snippet to your application's tkAppInit.c file. -.PP -if (Tkblt_Init(interp) != TCL_OK) { -.PP - return TCL_ERROR; -.PP -} -.TP 15 -Recompile and link with the tkblt library and that's it. -.PP -Alternately, you can dynamically load tkblt, simply by invoking the -command -.PP -% package require tkblt -.PP -from your Tcl script. -.SH BUGS -Send bug reports, requests, suggestions, etc. to -wjoye@cfa.harvard.edu -.SH KEYWORDS -BLT diff --git a/tkblt/doc/barchart.html b/tkblt/doc/barchart.html deleted file mode 100644 index 7f04d25..0000000 --- a/tkblt/doc/barchart.html +++ /dev/null @@ -1,1640 +0,0 @@ - - -
-
-
-
-

SYNOPSIS

-       barchart pathName ?option value?...
-
-
-
-

DESCRIPTION

-       The  barchart  command creates a bar chart for plotting two-dimensional
-       data (X-Y coordinates). A bar chart is a  graphic  means  of  comparing
-       numbers by displaying bars of lengths proportional to the y-coordinates
-       of the points they represented.  The bar chart  has  many  configurable
-       components: coordinate axes, elements, legend, grid lines, cross hairs,
-       etc.  They allow you to customize the look and feel of the graph.
-
-
-
-

INTRODUCTION

-       The barchart command creates a new window for plotting  two-dimensional
-       data  (X-Y coordinates), using bars of various lengths to represent the
-       data points.  The bars are drawn in a rectangular area displayed in the
-       center  of  the new window.  This is the plotting area.  The coordinate
-       axes are drawn in  the  margins  surrounding  the  plotting  area.   By
-       default,  the  legend  is drawn in the right margin.  The title is dis-
-       played in top margin.
-
-       A barchart widget has several configurable components: coordinate axes,
-       data elements, legend, grid, cross hairs, pens, postscript, and annota-
-       tion markers.  Each component can be queried or modified.
-
-       axis       Up to four coordinate axes (two X-coordinate and two Y-coor-
-                 dinate axes) can be displayed, but you can create and use any
-                 number of axes. Axes control what region of data is displayed
-                 and  how  the  data is scaled. Each axis consists of the axis
-                 line, title, major and minor ticks,  and  tick  labels.  Tick
-                 labels display the value at each major tick.
-
-       crosshairs
-                 Cross  hairs  are used to position the mouse pointer relative
-                 to the X and Y  coordinate  axes.  Two  perpendicular  lines,
-                 intersecting  at  the  current  location of the mouse, extend
-                 across the plotting area to the coordinate axes.
-
-       element   An element represents a set of data to be plotted.   It  con-
-                 tains  an  x  and  y  vector  of values representing the data
-                 points.  Each data point is displayed  as  a  bar  where  the
-                 length  of the bar is proportional to the ordinate (Y-coordi-
-                 nate) of the data point.  The appearance of the bar, such  as
-                 its color, stipple, or relief is configurable.
-
-                 A  special  case exists when two or more data points have the
-                 same abscissa (X-coordinate).  By default, the bars are over-
-                 layed,  one  on  top of the other.  The bars are drawn in the
-                 order of the element display list.  But you can also  config-
-                 ure  the bars to be displayed in two other ways.  They may be
-                 displayed as a stack, where each bar (with the same abscissa)
-                 is  stacked  on  the previous.  Or they can be drawn side-by-
-                 side as thin bars.  The width of each bar is  a  function  of
-
-       pen       Pens define attributes for elements.  Data elements use  pens
-                 to  specify how they should be drawn.  A data element may use
-                 many pens at once.  Here the particular pen used for  a  data
-                 point  is  determined  from each element's weight vector (see
-                 the element's -weight and -style options).
-
-       postscript
-                 The widget can generate encapsulated PostScript output.  This
-                 component has several options to configure how the PostScript
-                 is generated.
-
-
-
-

SYNTAX

-       barchart pathName ?option value?...  The barchart command creates a new
-       window  pathName and makes it into a barchart widget.  At the time this
-       command is invoked, there must not exist a window named  pathName,  but
-       pathName's  parent  must exist.  Additional options may be specified on
-       the command line or in the option database to configure aspects of  the
-       graph  such  as its colors and font.  See the configure operation below
-       for the exact details about what option and value pairs are valid.
-
-       If successful, barchart returns the path name of the widget.   It  also
-       creates  a  new Tcl command by the same name.  You can use this command
-       to invoke various operations that query or modify the graph.  The  gen-
-       eral form is: pathName operation ?arg?...  Both operation and its argu-
-       ments determine the exact behavior  of  the  command.   The  operations
-       available  for  the graph are described in the BARCHART OPERATIONS sec-
-       tion.
-
-       The command can also be used to access components of the graph.   path-
-       Name component operation ?arg?...  The operation, now located after the
-       name of the component, is the function to be performed on  that  compo-
-       nent. Each component has its own set of operations that manipulate that
-       component.  They will be described below in their own sections.
-
-
-
-

EXAMPLE

-       The barchart command creates a new bar  chart.   #  Create  a  new  bar
-       chart.   Plotting  area  is black.  barchart .b -plotbackground black A
-       new Tcl command .b is created.  This command can be used to  query  and
-       modify the bar chart.  For example, to change the title of the graph to
-       "My Plot", you use the new command  and  the  configure  operation.   #
-       Change  the title.  .b configure -title "My Plot" To add data elements,
-       you use the command and the element component.  # Create a new  element
-       named  "e1" .b element create e1 \      -xdata { 1 2 3 4 5 6 7 8 9 10 }
-       \       -ydata  {  26.18  50.46  72.85  93.31  111.86   128.47   143.14
-                 155.85  166.60  175.38  }  The  element's X-Y coordinates are
-       specified using lists of numbers.  Alternately, BLT  vectors  could  be
-       used to hold the X-Y coordinates.  # Create two vectors and add them to
-       the barchart.  vector xVector yVector xVector set { 1 2 3 4 5 6 7  8  9
-       10  } yVector set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85
-            166.60 175.38 } n.b element create e1 -xdata xVector -ydata  yVec-
-       tor  The  advantage  of  using vectors is that when you modify one, the
-       sure we change the bar width  too.   .b  configure  -barwidth  0.2  The
-       height  of  each  bar is proportional to the ordinate (Y-coordinate) of
-       the data point.
-
-       If two or more data points have the same abscissa (X-coordinate value),
-       the  bars  representing those data points may be drawn in various ways.
-       The default is to overlay the bars, one  on  top  of  the  other.   The
-       ordering  is  determined  from  the  of  element  display list.  If the
-       stacked mode is selected (using the -barmode configuration option), the
-       bars  are stacked, each bar above the previous.  # Display the elements
-       as stacked.  .b configure -barmode  stacked  If  the  aligned  mode  is
-       selected,  the bars having the same x-coordinates are displayed side by
-       side.  The width of each bar is a fraction of its normal  width,  based
-       upon the number of bars with the same x-coordinate.  # Display the ele-
-       ments side-by-side.  .b configure -barmode aligned By default, the ele-
-       ment's  label in the legend will be also e1.  You can change the label,
-       or specify no legend entry, again using the element's configure  opera-
-       tion.   #  Don't  display  "e1" in the legend.  .b element configure e1
-       -label "" You can configure more than just  the  element's  label.   An
-       element  has many attributes such as stipple, foreground and background
-       colors, relief, etc.  .b element  configure  e1  -fg  red  -bg  pink  \
-            -stipple gray50 Four coordinate axes are automatically created: x,
-       x2, y, and y2.  And by default, elements are mapped onto the axes x and
-       y.   This  can be changed with the -mapx and -mapy options.  # Map "e1"
-       on the alternate y axis "y2".  .b element configure e1  -mapy  y2  Axes
-       can  be configured in many ways too.  For example, you change the scale
-       of the Y-axis from linear to log using the axis component.  # Y-axis is
-       log  scale.   .b  axis configure y -logscale yes One important way axes
-       are used is to zoom in on a particular data region.  Zooming is done by
-       simply specifying new axis limits using the -min and -max configuration
-       options.  .b axis configure x -min 1.0 -max 1.5  .b  axis  configure  y
-       -min  12.0 -max 55.15 To zoom interactively, you link theaxis configure
-       operations with some user interaction (such as pressing the mouse  but-
-       ton),  using  the  bind  command.   To convert between screen and graph
-       coordinates, use the invtransform operation.  # Click the button to set
-       a new minimum bind .b <ButtonPress-1> {
-           %W axis configure x -min [%W axis invtransform x %x]
-           %W  axis configure x -min [%W axis invtransform x %y] } By default,
-       the limits of the axis are determined from data values.  To reset  back
-       to  the  default  limits,  set  the  -min and -max options to the empty
-       value.  # Reset the axes to autoscale again.  .b axis configure x  -min
-       {}  -max  {} .b axis configure y -min {} -max {} By default, the legend
-       is drawn in the right margin.  You can change this or any  legend  con-
-       figuration  options using the legend component.  # Configure the legend
-       font, color, and relief .b  legend  configure  -position  left  -relief
-       raised  \       -font  fixed  -fg blue To prevent the legend from being
-       displayed, turn on the -hide option.  # Don't display the  legend.   .b
-       legend  configure  -hide yes The barchart has simple drawing procedures
-       called markers.  They can be used to highlight or annotate data in  the
-       graph.  The types of markers available are bitmaps, polygons, lines, or
-       windows.  Markers can be used, for example, to mark  or  brush  points.
-       For  example  there may be a line marker which indicates some low-water
-       chart into file "file.ps" .b postscript  output  file.ps  -maxpect  yes
-       -decorations  no  This generates a file file.ps containing the encapsu-
-       lated PostScript of the graph.  The option -maxpect says to  scale  the
-       plot  to  the  size  of  the page.  Turning off the -decorations option
-       denotes that no borders or color backgrounds should be drawn (i.e.  the
-       background of the margins, legend, and plotting area will be white).
-
-
-
-

SYNTAX

-       barchart pathName ?option value?...  The barchart command creates a new
-       window pathName and makes it into a barchart widget.  At the time  this
-       command  is  invoked, there must not exist a window named pathName, but
-       pathName's parent must exist.  Additional options may may be  specified
-       on  the  command line or in the option database to configure aspects of
-       the bar chart such as its colors and font.  See the configure operation
-       below  for  the  exact  details  as  to what option and value pairs are
-       valid.
-
-       If successful, barchart returns pathName. It also  creates  a  new  Tcl
-       command  pathName.   This  command may be used to invoke various opera-
-       tions to query or modify the bar chart.  It has the general form: path-
-       Name operation ?arg?...  Both operation and its arguments determine the
-       exact behavior of the command.  The operations available  for  the  bar
-       chart are described in the following section.
-
-
-
-

BARCHART OPERATIONS

-       pathName bar elemName ?option value?...
-              Creates  a  new  barchart element elemName.  It's an error if an
-              element elemName already exists.  See the  manual  for  barchart
-              for details about what option and value pairs are valid.
-
-       pathName cget option
-              Returns  the  current value of the configuration option given by
-              option.  Option may be any option described below for  the  con-
-              figure operation.
-
-       pathName configure ?option value?...
-              Queries  or modifies the configuration options of the graph.  If
-              option isn't specified, a list describing  the  current  options
-              for  pathName  is  returned.   If  option  is specified, but not
-              value, then a list describing option is  returned.   If  one  or
-              more  option  and value pairs are specified, then for each pair,
-              the option option is set to value.  The  following  options  are
-              valid.
-
-              -background color
-                     Sets  the background color. This includes the margins and
-                     legend, but not the plotting area.
-
-              -barmode mode
-                     Indicates  how  related  bar  elements  will  be   drawn.
-                     Related elements have data points with the same abscissas
-                     (X-coordinates). Mode indicates how those segments should
-
-              -barwidth value
-                     Specifies the width of the bars.  This value can be over-
-                     rided  by  the  individual elements using their -barwidth
-                     configuration option.  Value is the  width  in  terms  of
-                     graph-coordinates.  The default width is 1.0.
-
-              -borderwidth pixels
-                     Sets  the width of the 3-D border around the outside edge
-                     of the widget.  The -relief option determines if the bor-
-                     der is to be drawn.  The default is 2.
-
-              -bottommargin pixels
-                     Specifies  the  size of the margin below the X-coordinate
-                     axis.  If pixels is 0, the size of the margin is selected
-                     automatically.  The default is 0.
-
-              -bufferelements boolean
-                     Indicates  whether  an internal pixmap to buffer the dis-
-                     play of data elements should  be  used.   If  boolean  is
-                     true,  data  elements  are  drawn  to an internal pixmap.
-                     This option  is  especially  useful  when  the  graph  is
-                     redrawn  frequently while the remains data unchanged (for
-                     example, moving a marker across the plot).  See the SPEED
-                     TIPS section.  The default is 1.
-
-              -cursor cursor
-                     Specifies  the  widget's  cursor.   The default cursor is
-                     crosshair.
-
-              -font fontName
-                     Specifies the font of the graph  title.  The  default  is
-                     *-Helvetica-Bold-R-Normal-*-18-180-*.
-
-              -halo pixels
-                     Specifies  a  maximum distance to consider when searching
-                     for the closest data point  (see  the  element's  closest
-                     operation  below).   Data points further than pixels away
-                     are ignored.  The default is 0.5i.
-
-              -height pixels
-                     Specifies the requested height of widget.  The default is
-                     4i.
-
-              -invertxy boolean
-                     Indicates  whether the placement X-axis and Y-axis should
-                     be inverted.  If boolean is true, the X and  Y  axes  are
-                     swapped.  The default is 0.
-
-              -justify justify
-                     Specifies  how  the title should be justified.  This mat-
-                     ters only when the title contains more than one  line  of
-                     area.  The -plotrelief option determines if a  border  is
-                     drawn.  The default is 2.
-
-              -plotpadx pad
-                     Sets  the  amount  of padding to be added to the left and
-                     right sides of the plotting area.  Pad can be a  list  of
-                     one  or  two  screen distances.  If pad has two elements,
-                     the left side of the plotting area entry is padded by the
-                     first  distance and the right side by the second.  If pad
-                     is just one distance, both the left and right  sides  are
-                     padded evenly.  The default is 8.
-
-              -plotpady pad
-                     Sets  the  amount  of  padding to be added to the top and
-                     bottom of the plotting area.  Pad can be a list of one or
-                     two  screen  distances.  If pad has two elements, the top
-                     of the plotting area is padded by the first distance  and
-                     the  bottom  by the second.  If pad is just one distance,
-                     both the top and bottom are padded evenly.   The  default
-                     is 8.
-
-              -plotrelief relief
-                     Specifies  the  3-D effect for the plotting area.  Relief
-                     specifies how the interior of the  plotting  area  should
-                     appear relative to rest of the graph; for example, raised
-                     means the plot should appear to protrude from the  graph,
-                     relative  to  the  surface  of the graph.  The default is
-                     sunken.
-
-              -relief relief
-                     Specifies the 3-D effect for the barchart widget.  Relief
-                     specifies  how the graph should appear relative to widget
-                     it is packed into; for example, raised  means  the  graph
-                     should appear to protrude.  The default is flat.
-
-              -rightmargin pixels
-                     Sets  the  size  of  margin from the plotting area to the
-                     right edge of the window.   By  default,  the  legend  is
-                     drawn  in  this  margin.  If pixels is than 1, the margin
-                     size is selected automatically.
-
-              -takefocus focus
-                     Provides information used when moving the focus from win-
-                     dow  to  window  via  keyboard  traversal  (e.g., Tab and
-                     Shift-Tab).  If focus is 0, this means that  this  window
-                     should  be skipped entirely during keyboard traversal.  1
-                     means that the this  window  should  always  receive  the
-                     input  focus.   An  empty  value means that the traversal
-                     scripts make the decision whether to focus on the window.
-                     The default is "".
-
-              -tile image
-              -width pixels
-                     Specifies the requested width of the widget.  The default
-                     is 5i.
-
-       pathName crosshairs operation ?arg?
-              See the CROSSHAIRS COMPONENT section.
-
-       pathName element operation ?arg?...
-              See the ELEMENT COMPONENTS section.
-
-       pathName extents item
-              Returns  the  size of a particular item in the graph.  Item must
-              be  either  leftmargin,  rightmargin,  topmargin,  bottommargin,
-              plotwidth, or plotheight.
-
-       pathName grid operation ?arg?...
-              See the GRID COMPONENT section.
-
-       pathName invtransform winX winY
-              Performs  an  inverse  coordinate transformation, mapping window
-              coordinates back to graph-coordinates, using the standard X-axis
-              and  Y-axis.  Returns a list of containing the X-Y graph-coordi-
-              nates.
-
-       pathName inside x y
-              Returns 1 is the  designated  screen-coordinate  (x  and  y)  is
-              inside the plotting area and 0 otherwise.
-
-       pathName legend operation ?arg?...
-              See the LEGEND COMPONENT section.
-
-       pathName line operation arg...
-              The operation is the same as element.
-
-       pathName marker operation ?arg?...
-              See the MARKER COMPONENTS section.
-
-       pathName metafile ?fileName?
-              This  operation is for Window platforms only.  Creates a Windows
-              enhanced metafile of the barchart.  If present, fileName is  the
-              file name of the new metafile.  Otherwise, the metafile is auto-
-              matically added to the clipboard.
-
-       pathName postscript operation ?arg?...
-              See the POSTSCRIPT COMPONENT section.
-
-       pathName snap photoName
-              Takes a snapshot of the graph and stores  the  contents  in  the
-              photo  image  photoName.   PhotoName  is  the name of a Tk photo
-              image that must already exist.
-
-       pathName transform x y
-       A graph is composed of several components: coordinate axes,  data  ele-
-       ments,  legend,  grid, cross hairs, postscript, and annotation markers.
-       Instead of one big set of configuration  options  and  operations,  the
-       graph  is  partitioned,  where each component has its own configuration
-       options and operations that specifically control that aspect or part of
-       the graph.
-
-   AXIS COMPONENTS
-       Four  coordinate  axes are automatically created: two X-coordinate axes
-       (x and x2) and two Y-coordinate axes (y, and y2).  By default, the axis
-       x  is located in the bottom margin, y in the left margin, x2 in the top
-       margin, and y2 in the right margin.
-
-       An axis consists of the axis line, title, major and  minor  ticks,  and
-       tick  labels.   Major  ticks  are  drawn at uniform intervals along the
-       axis.  Each tick is labeled with its coordinate value.  Minor ticks are
-       drawn at uniform intervals within major ticks.
-
-       The  range  of  the axis controls what region of data is plotted.  Data
-       points outside the minimum and maximum limits of the axis are not plot-
-       ted.   By  default,  the minimum and maximum limits are determined from
-       the data, but you can reset either limit.
-
-       You can create and use several axes. To create an axis, invoke the axis
-       component  and  its create operation.  # Create a new axis called "tem-
-       perature" .b axis create temperature You map data elements to  an  axis
-       using the element's -mapy and -mapx configuration options. They specify
-       the coordinate axes an element is mapped onto.  # Now map the  tempera-
-       ture  data  to  this  axis.   .b element create "temp" -xdata $x -ydata
-       $tempData \
-           -mapy temperature While you can have many axes, only four axes  can
-       be  displayed  simultaneously.   They  are drawn in each of the margins
-       surrounding the plotting area.  The axes x and y are drawn in the  bot-
-       tom  and  left  margins.  The axes x2 and y2 are drawn in top and right
-       margins.  Only x and y are shown by default. Note  that  the  axes  can
-       have different scales.
-
-       To  display  a  different  axis, you invoke one of the following compo-
-       nents: xaxis, yaxis, x2axis, and y2axis.  The use operation  designates
-       the  axis to be drawn in the corresponding margin: xaxis in the bottom,
-       yaxis in the left, x2axis in the top, and y2axis in the right.  #  Dis-
-       play the axis temperature in the left margin.  .b yaxis use temperature
-
-       You can configure axes in many ways. The axis scale can  be  linear  or
-       logarithmic.   The  values  along  the  axis  can  either monotonically
-       increase or decrease.  If you need custom tick labels, you can  specify
-       a  Tcl procedure to format the label any way you wish.  You can control
-       how ticks are drawn, by changing the major tick interval or the  number
-       of minor ticks.  You can define non-uniform tick intervals, such as for
-       time-series plots.
-
-
-              -autorange range
-                     Sets the range of values for the axis to range.  The axis
-                     limits are automatically reset to display the most recent
-                     data points in this range.  If range is 0.0, the range is
-                     determined  from the limits of the data.  If -min or -max
-                     are specified, they override this option.  The default is
-                     0.0.
-
-              -color color
-                     Sets  the color of the axis and tick labels.  The default
-                     is black.
-
-              -command prefix
-                     Specifies a Tcl command to be invoked when formatting the
-                     axis  tick labels. Prefix is a string containing the name
-                     of a Tcl proc and any extra arguments for the  procedure.
-                     This  command is invoked for each major tick on the axis.
-                     Two additional arguments are passed to the procedure: the
-                     pathname  of the widget and the current the numeric value
-                     of the tick.  The procedure returns  the  formatted  tick
-                     label.   If  "" is returned, no label will appear next to
-                     the tick.  You can get the standard tick labels again  by
-                     setting prefix to "".  The default is "".
-
-                     Please  note that this procedure is invoked while the bar
-                     chart is redrawn.  You may query the widget's  configura-
-                     tion options.  But do not reset options, because this can
-                     have unexpected results.
-
-              -descending boolean
-                     Indicates whether the values along the axis are monotoni-
-                     cally  increasing or decreasing.  If boolean is true, the
-                     axis values will be decreasing.  The default is 0.
-
-              -hide boolean
-                     Indicates whether the axis is displayed.
-
-              -justify justify
-                     Specifies how the axis title should be  justified.   This
-                     matters  only  when the axis title contains more than one
-                     line of text. Justify must be  left,  right,  or  center.
-                     The default is center.
-
-              -limits formatStr
-                     Specifies a printf-like description to format the minimum
-                     and maximum limits of the axis.  The limits are displayed
-                     at  the  top/bottom  or  left/right sides of the plotting
-                     area.  FormatStr is a list of one or two format  descrip-
-                     tions.   If one description is supplied, both the minimum
-                     and maximum limits are formatted in  the  same  way.   If
-                     two,  the  first  designates  the  format for the minimum
-                     limit, the second for the maximum.  If  ""  is  given  as
-                     data points tightly, at the  outermost  data  points,  or
-                     loosely,  at  the outer tick intervals.  This is relevant
-                     only when the axis limit is automatically calculated.  If
-                     boolean  is true, the axis range is "loose".  The default
-                     is 0.
-
-              -majorticks majorList
-                     Specifies where to display major axis ticks.  You can use
-                     this  option  to  display ticks at non-uniform intervals.
-                     MajorList is a list of axis coordinates  designating  the
-                     location  of  major ticks.  No minor ticks are drawn.  If
-                     majorList is "", major ticks will be  automatically  com-
-                     puted. The default is "".
-
-              -max value
-                     Sets  the  maximum  limit  of  axisName.   Any data point
-                     greater than value is not displayed.  If value is "", the
-                     maximum limit is calculated using the largest data value.
-                     The default is "".
-
-              -min value
-                     Sets the minimum limit of axisName. Any data  point  less
-                     than value is not displayed.  If value is "", the minimum
-                     limit is calculated using the smallest data  value.   The
-                     default is "".
-
-              -minorticks minorList
-                     Specifies where to display minor axis ticks.  You can use
-                     this option to display minor ticks at non-uniform  inter-
-                     vals.  MinorList  is  a list of real values, ranging from
-                     0.0 to 1.0, designating the placement of  a  minor  tick.
-                     No minor ticks are drawn if the -majortick option is also
-                     set.  If minorList is "", minor ticks will  be  automati-
-                     cally computed. The default is "".
-
-              -rotate theta
-                     Specifies  the  how  many degrees to rotate the axis tick
-                     labels.  Theta is a real value representing the number of
-                     degrees  to  rotate  the tick labels.  The default is 0.0
-                     degrees.
-
-              -shiftby value
-                     Specifies how much to automatically shift  the  range  of
-                     the  axis.   When  the  new data exceeds the current axis
-                     maximum, the maximum is increased in increments of value.
-                     You  can  use this option to prevent the axis limits from
-                     being recomputed at each new time point. If value is 0.0,
-                     then no automatic shifting is down. The default is 0.0.
-
-              -showticks boolean
-                     Indicates  whether axis ticks should be drawn. If boolean
-                     is true, ticks are drawn.  If false, only the  axis  line
-
-              -tickfont fontName
-                     Specifies  the  font for axis tick labels. The default is
-                     *-Courier-Bold-R-Normal-*-100-*.
-
-              -ticklength pixels
-                     Sets the length of major and minor ticks (minor ticks are
-                     half  the  length of major ticks). If pixels is less than
-                     zero, the axis will be inverted with ticks drawn pointing
-                     towards the plot.  The default is 0.1i.
-
-              -title text
-                     Sets  the title of the axis. If text is "", no axis title
-                     will be displayed.
-
-              -titlecolor color
-                     Sets the color of the axis title. The default is black.
-
-              -titlefont fontName
-                     Specifies the font for axis title. The default is  *-Hel-
-                     vetica-Bold-R-Normal-*-14-140-*.
-
-              Axis configuration options may be also be set by the option com-
-              mand.  The resource class is Axis.  The resource names  are  the
-              names  of  the  axes  (such  as  x  or  x2).   option  add *Bar-
-              chart.Axis.Color  blue  option  add  *Barchart.x.LogScale   true
-              option add *Barchart.x2.LogScale false
-
-       pathName axis create axisName ?option value?...
-              Creates  a  new  axis by the name axisName.  No axis by the same
-              name can already exist. Option and value are described in  above
-              in the axis configure operation.
-
-       pathName axis delete ?axisName?...
-              Deletes  the  named axes. An axis is not really deleted until it
-              is not longer in use, so it's safe to delete axes mapped to ele-
-              ments.
-
-       pathName axis invtransform axisName value
-              Performs the inverse transformation, changing the screen-coordi-
-              nate value to a graph-coordinate, mapping the  value  mapped  to
-              axisName.  Returns the graph-coordinate.
-
-       pathName axis limits axisName
-              Returns  a  list of the minimum and maximum limits for axisName.
-              The order of the list is min max.
-
-       pathName axis names ?pattern?...
-              Returns a list of axes matching zero or more  patterns.   If  no
-              pattern argument is give, the names of all axes are returned.
-
-       pathName axis transform axisName value
-              Transforms  the  coordinate value to a screen-coordinate by map-
-
-       right Y-axis.
-
-       They implicitly control the axis that is currently using to that  loca-
-       tion.  By default, xaxis uses the x axis, yaxis uses y, x2axis uses x2,
-       and y2axis uses y2.  These components can be  more  convenient  to  use
-       than  always  determining  what axes are current being displayed by the
-       graph.
-
-       The following operations are available for axes.  They  mirror  exactly
-       the operations of the axis component.  The axis argument must be xaxis,
-       x2axis, yaxis, or y2axis.
-
-       pathName axis cget option
-
-       pathName axis configure ?option value?...
-
-       pathName axis invtransform value
-
-       pathName axis limits
-
-       pathName axis transform value
-
-       pathName axis use ?axisName?
-              Designates the axis axisName is to be displayed  at  this  loca-
-              tion.   AxisName  can not be already in use at another location.
-              This command returns the name of the axis currently  using  this
-              location.
-
-   CROSSHAIRS COMPONENT
-       Cross  hairs  consist  of  two intersecting lines (one vertical and one
-       horizontal) drawn completely across the plotting area.  They  are  used
-       to  position the mouse in relation to the coordinate axes.  Cross hairs
-       differ from line markers in that they are implemented using XOR drawing
-       primitives.  This means that they can be quickly drawn and erased with-
-       out redrawing the entire widget.
-
-       The following operations are available for cross hairs:
-
-       pathName crosshairs cget option
-              Returns the current  value  of  the  cross  hairs  configuration
-              option  given  by  option.   Option  may be any option described
-              below for the cross hairs configure operation.
-
-       pathName crosshairs configure ?option value?...
-              Queries or modifies  the  configuration  options  of  the  cross
-              hairs.   If  option  isn't  specified, a list describing all the
-              current options for the cross hairs is returned.  If  option  is
-              specified,  but  not  value,  then  a  list describing option is
-              returned.  If one or more option and value pairs are  specified,
-              then  for  each  pair,  the  cross hairs option option is set to
-              value.  The following options are available for cross hairs.
-
-              -linewidth pixels
-                     Set the width of the cross hair lines.  The default is 1.
-
-              -position pos
-                     Specifies  the  screen  position  where  the  cross hairs
-                     intersect.  Pos must be in the form "@x,y", where x and y
-                     are the window coordinates of the intersection.
-
-              Cross  hairs  configuration  options  may  be also be set by the
-              option command.  The resource name and class are crosshairs  and
-              Crosshairs       respectively.        option      add      *Bar-
-              chart.Crosshairs.LineWidth     2      option      add      *Bar-
-              chart.Crosshairs.Color     red
-
-       pathName crosshairs off
-              Turns off the cross hairs.
-
-       pathName crosshairs on
-              Turns on the display of the cross hairs.
-
-       pathName crosshairs toggle
-              Toggles  the  current state of the cross hairs, alternately map-
-              ping and unmapping the cross hairs.
-
-
-
-

ELEMENTS

-       A data element represents a set of data.  It contains x and  y  vectors
-       which  are  the coordinates of the data points.  Elements are displayed
-       as bars where the length of the bar is proportional to the ordinate  of
-       the data point.  Elements also control the appearance of the data, such
-       as the color, stipple, relief, etc.
-
-       When new data elements are created, they are automatically added  to  a
-       list  of  displayed elements.   The display list controls what elements
-       are drawn and in what order.
-
-       The following operations are available for elements.
-
-       pathName element activate elemName ?index?...
-              Specifies the data points of element elemName to be drawn  using
-              active  foreground  and background colors.  ElemName is the name
-              of the element and index is a number representing the  index  of
-              the  data  point. If no indices are present then all data points
-              become active.
-
-       pathName element bind tagName ?sequence?  ?command?
-              Associates command with tagName such  that  whenever  the  event
-              sequence  given by sequence occurs for an element with this tag,
-              command will be invoked.  The syntax is similar to the bind com-
-              mand except that it operates on graph elements, rather than wid-
-              gets. See the bind manual entry for complete details on sequence
-              and the substitutions performed on command before invoking it.
-
-
-       pathName element closest x y ?option value?... ?elemName?...
-              Finds  the data point representing the bar closest to the window
-              coordinates x and y in the element elemName.   ElemName  is  the
-              name  of  an  element, which must be currently displayed.  If no
-              elements  are  specified,  then  all  displayed   elements   are
-              searched.   It  returns  a key-value list containing the name of
-              the closest element, the index of its  closest  point,  and  the
-              graph-coordinates  of  the  point.  If  no data point within the
-              threshold distance can be found, "" is returned.  The  following
-              option-value pairs are available.
-
-              -halo pixels
-                     Specifies a threshold distance where selected data points
-                     are ignored.  Pixels is a valid screen distance, such  as
-                     2  or  1.2i.   If  this  option  isn't specified, then it
-                     defaults to the value of the barchart's -halo option.
-
-       pathName element configure elemName ?elemName... ?option value?...
-              Queries or modifies  the  configuration  options  for  elements.
-              Several  elements  can  be  modified at the same time. If option
-              isn't specified, a list describing all the current  options  for
-              elemName  is  returned.   If option is specified, but not value,
-              then a list describing the option option is returned.  If one or
-              more  option  and value pairs are specified, then for each pair,
-              the element option  option  is  set  to  value.   The  following
-              options are valid for elements.
-
-              -activepen penName
-                     Specifies  pen to use to draw active element.  If penName
-                     is "", no active elements will be drawn.  The default  is
-                     activeLine.
-
-              -bindtags tagList
-                     Specifies the binding tags for the element.  TagList is a
-                     list of binding tag names.  The tags and their order will
-                     determine  how events for elements.  Each tag in the list
-                     matching the current event sequence  will  have  its  Tcl
-                     command  executed.  Implicitly the name of the element is
-                     always the first tag in the list.  The default  value  is
-                     all.
-
-              -background color
-                     Sets  the  the  color of the border around each bar.  The
-                     default is white.
-
-              -barwidth value
-                     Specifies the width  the  bars  drawn  for  the  element.
-                     Value  is  the  width  in  X-coordinates.  If this option
-                     isn't specified, the width of each bar is  the  value  of
-                     the widget's -barwidth option.
-
-                     a list of numeric expressions representing the X-Y  coor-
-                     dinate pairs of each data point.
-
-              -foreground color
-                     Sets the color of the interior of the bars.
-
-              -hide boolean
-                     Indicates  whether the element is displayed.  The default
-                     is no.
-
-              -label text
-                     Sets the element's label in the legend.  If text  is  "",
-                     the  element  will  have  no  entry  in  the legend.  The
-                     default label is the element's name.
-
-              -mapx xAxis
-                     Selects the X-axis to  map  the  element's  X-coordinates
-                     onto.  XAxis must be the name of an axis.  The default is
-                     x.
-
-              -mapy yAxis
-                     Selects the Y-axis to  map  the  element's  Y-coordinates
-                     onto.   YAxis must be the name of an axis. The default is
-                     y.
-
-              -relief string
-                     Specifies the 3-D effect desired for bars.  Relief  indi-
-                     cates  how the interior of the bar should appear relative
-                     to the surface of the chart; for  example,  raised  means
-                     the bar should appear to protrude from the surface of the
-                     plotting area.  The default is raised.
-
-              -stipple bitmap
-                     Specifies a stipple pattern with which to draw the  bars.
-                     If  bitmap  is "", then the bar is drawn in a solid fash-
-                     ion.
-
-              -xdata xVector
-                     Specifies the x-coordinate vector of the  data.   XVector
-                     is  the name of a BLT vector or a list of numeric expres-
-                     sions.
-
-              -ydata yVector
-                     Specifies the y-coordinate vector of the  data.   YVector
-                     is  the name of a BLT vector or a list of numeric expres-
-                     sions.
-
-              Element configuration options may also be set by the option com-
-              mand.   The  resource names  in the option database are prefixed
-              by elem.  option add *Barchart.Element.background blue
-
-       pathName element create elemName ?option value?...
-
-       pathName element exists elemName
-              Returns  1  if an element elemName currently exists and 0 other-
-              wise.
-
-       pathName element names ?pattern?...
-              Returns the elements matching one or more pattern.  If  no  pat-
-              tern is given, the names of all elements is returned.
-
-       pathName element show ?nameList?
-              Queries  or modifies the element display list.  The element dis-
-              play list designates the  elements  drawn  and  in  what  order.
-              NameList is a list of elements to be displayed in the order they
-              are named.  If there is no nameList argument, the  current  dis-
-              play list is returned.
-
-       pathName element type elemName
-              Returns  the type of elemName.  If the element is a bar element,
-              the commands returns the  string  "bar",  otherwise  it  returns
-              "line".
-
-   GRID COMPONENT
-       Grid  lines extend from the major and minor ticks of each axis horizon-
-       tally or vertically across the plotting area.  The following operations
-       are available for grid lines.
-
-       pathName grid cget option
-              Returns  the current value of the grid line configuration option
-              given by option.  Option may be any option described  below  for
-              the grid configure operation.
-
-       pathName grid configure ?option value?...
-              Queries  or  modifies  the configuration options for grid lines.
-              If option isn't specified, a list  describing  all  the  current
-              grid  options for pathName is returned.  If option is specified,
-              but not value, then a list describing option  is  returned.   If
-              one  or more option and value pairs are specified, then for each
-              pair, the grid line option option is set to value.  The  follow-
-              ing options are valid for grid lines.
-
-              -color color
-                     Sets  the color of the grid lines.  The default is black.
-
-              -dashes dashList
-                     Sets the dash style of the grid lines. DashList is a list
-                     of  up  to  11  numbers  that  alternately  represent the
-                     lengths of the dashes and gaps on the grid  lines.   Each
-                     number must be between 1 and 255.  If dashList is "", the
-                     grid will be solid lines.
-
-              -hide boolean
-                     Indicates whether the grid should be drawn. If boolean is
-
-              -minor boolean
-                     Indicates  whether  the  grid  lines  should be drawn for
-                     minor ticks.  If boolean is true, the lines  will  appear
-                     at minor tick intervals.  The default is 1.
-
-              Grid  configuration  options  may also be set by the option com-
-              mand.  The resource name and class are  grid  and  Grid  respec-
-              tively.   option add *Barchart.grid.LineWidth 2 option add *Bar-
-              chart.Grid.Color     black
-
-       pathName grid off
-              Turns off the display the grid lines.
-
-       pathName grid on
-              Turns on the display the grid lines.
-
-       pathName grid toggle
-              Toggles the display of the grid.
-
-   LEGEND COMPONENT
-       The legend displays a list of the data elements.  Each  entry  consists
-       of the element's symbol and label.  The legend can appear in any margin
-       (the default location is in the right margin).  It can  also  be  posi-
-       tioned anywhere within the plotting area.
-
-       The following operations are valid for the legend.
-
-       pathName legend activate pattern...
-              Selects  legend entries to be drawn using the active legend col-
-              ors and relief.  All entries whose element names  match  pattern
-              are  selected.  To be selected, the element name must match only
-              one pattern.
-
-       pathName legend bind tagName ?sequence?  ?command?
-              Associates command with tagName such  that  whenever  the  event
-              sequence  given  by sequence occurs for a legend entry with this
-              tag, command will be invoked.  Implicitly the element  names  in
-              the  entry  are tags.  The syntax is similar to the bind command
-              except that it operates on legend entries, rather than  widgets.
-              See  the  bind manual entry for complete details on sequence and
-              the substitutions performed on command before invoking it.
-
-              If all arguments are specified then a new  binding  is  created,
-              replacing  any  existing  binding for the same sequence and tag-
-              Name.  If the first character of command is + then command  aug-
-              ments  an existing binding rather than replacing it.  If no com-
-              mand argument is provided then the command currently  associated
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-              -activebackground color
-                     Sets the background color for active legend entries.  All
-                     legend  entries  marked  active  (see the legend activate
-                     operation) are drawn using this background color.
-
-              -activeborderwidth pixels
-                     Sets the width of the 3-D border around the outside  edge
-                     of the active legend entries.  The default is 2.
-
-              -activeforeground color
-                     Sets the foreground color for active legend entries.  All
-                     legend entries marked as active (see the legend  activate
-                     operation) are drawn using this foreground color.
-
-              -activerelief relief
-                     Specifies  the  3-D  effect  desired  for  active  legend
-                     entries.  Relief denotes how the interior  of  the  entry
-                     should appear relative to the legend; for example, raised
-                     means the entry should appear to protrude from  the  leg-
-                     end,  relative to the surface of the legend.  The default
-                     is flat.
-
-              -anchor anchor
-                     Tells how to position the legend relative  to  the  posi-
-                     tioning  point  for the legend.  This is dependent on the
-                     value of the -position option.  The default is center.
-
-                     left or right
-                                 The anchor describes how to position the leg-
-                                 end vertically.
-
-                     top or bottom
-                                 The anchor describes how to position the leg-
-                                 end horizontally.
-
-                     @x,y        The anchor specifies how to position the leg-
-                                 end  relative  to  the positioning point. For
-                                 example, if anchor is center then the  legend
-                                 is centered on the point; if anchor is n then
-                                 the legend will be drawn such  that  the  top
-                                 center  point of the rectangular region occu-
-                                 pied by the legend will be at the positioning
-                                 point.
-
-                     plotarea    The anchor specifies how to position the leg-
-                                 end relative to the plotting area. For  exam-
-                                 ple,  if  anchor is center then the legend is
-                                 centered in the plotting area; if  anchor  is
-                                 ne  then  the  legend will be drawn such that
-                                 occupies the upper right corner of the  plot-
-                                 ting area.
-
-                     of  the legend (if such border is being drawn; the relief
-                     option determines this).  The default is 2 pixels.
-
-              -font fontName
-                     FontName specifies a font to use when drawing the  labels
-                     of  each  element into the legend.  The default is *-Hel-
-                     vetica-Bold-R-Normal-*-12-120-*.
-
-              -foreground color
-                     Sets the foreground color of the text drawn for the  ele-
-                     ment's label.  The default is black.
-
-              -hide boolean
-                     Indicates  whether  the  legend  should  be displayed. If
-                     boolean is true,  the  legend  will  not  be  draw.   The
-                     default is no.
-
-              -ipadx pad
-                     Sets  the  amount  of internal padding to be added to the
-                     width of each legend entry.  Pad can be a list of one  or
-                     two  screen distances.  If pad has two elements, the left
-                     side of the legend entry is padded by the first  distance
-                     and  the  right  side  by the second.  If pad is just one
-                     distance, both  the  left  and  right  sides  are  padded
-                     evenly.  The default is 2.
-
-              -ipady pad
-                     Sets  an  amount  of  internal padding to be added to the
-                     height of each legend entry.  Pad can be a list of one or
-                     two  screen  distances.  If pad has two elements, the top
-                     of the entry is padded by the first distance and the bot-
-                     tom by the second.  If pad is just one distance, both the
-                     top and bottom of  the  entry  are  padded  evenly.   The
-                     default is 2.
-
-              -padx pad
-                     Sets  the  padding to the left and right exteriors of the
-                     legend.  Pad can be a list of  one  or  two  screen  dis-
-                     tances.   If  pad  has two elements, the left side of the
-                     legend is padded by the first distance and the right side
-                     by  the  second.   If pad has just one distance, both the
-                     left and right sides are padded evenly.  The  default  is
-                     4.
-
-              -pady pad
-                     Sets  the padding above and below the legend.  Pad can be
-                     a list of one or two screen distances.  If  pad  has  two
-                     elements,  the  area  above  the  legend is padded by the
-                     first distance and the area below by the second.  If  pad
-                     is  just  one distance, both the top and bottom areas are
-                     padded evenly.  The default is 0.
-
-                     drawn on top of any elements that  may  overlap  it.  The
-                     default is no.
-
-              -relief relief
-                     Specifies  the  3-D effect for the border around the leg-
-                     end.  Relief specifies how the  interior  of  the  legend
-                     should  appear  relative  to  the bar chart; for example,
-                     raised means the legend should appear  to  protrude  from
-                     the  bar chart, relative to the surface of the bar chart.
-                     The default is sunken.
-
-              Legend configuration options may also be set by the option  com-
-              mand.  The resource name and class are legend and Legend respec-
-              tively.  option add *Barchart.legend.Foreground blue option  add
-              *Barchart.Legend.Relief     raised
-
-       pathName legend deactivate pattern...
-              Selects  legend entries to be drawn using the normal legend col-
-              ors and relief.  All entries whose element names  match  pattern
-              are  selected.  To be selected, the element name must match only
-              one pattern.
-
-       pathName legend get pos
-              Returns the name of the element whose entry  is  at  the  screen
-              position  pos  in  the  legend.  Pos must be in the form "@x,y",
-              where x and y are window coordinates.  If the given  coordinates
-              do not lie over a legend entry, "" is returned.
-
-   PEN COMPONENTS
-       Pens  define  attributes  for  elements.  Pens mirror the configuration
-       options of data elements that pertain to  how  symbols  and  lines  are
-       drawn.  Data elements use pens to determine how they are drawn.  A data
-       element may use several pens at once.  In this case, the pen used for a
-       particular  data  point is determined from each element's weight vector
-       (see the element's -weight and -style options).
-
-       One pen, called activeBar, is automatically created.  It's used as  the
-       default  active  pen  for  elements.  So  you  can  change  the  active
-       attributes for all elements by simply reconfiguring this pen.   .g  pen
-       configure  "activeBar" -fg green -bg green4 You can create and use sev-
-       eral pens. To create a pen, invoke the pen  component  and  its  create
-       operation.   .g  pen  create myPen You map pens to a data element using
-       either the element's -pen or -activepen  options.   .g  element  create
-       "e1" -xdata $x -ydata $tempData \
-           -pen myPen An element can use several pens at once. This is done by
-       specifying the name of the pen in the element's  style  list  (see  the
-       -styles  option).   .g element configure "e1" -styles { myPen 2.0 3.0 }
-       This says that any data point with a weight between 2.0 and 3.0  is  to
-       be drawn using the pen myPen.  All other points are drawn with the ele-
-       ment's default attributes.
-
-       The following operations are available for pen components.
-              value.  The following options are valid for pens.
-
-              -background color
-                     Sets the the color of the border around  each  bar.   The
-                     default is white.
-
-              -borderwidth pixels
-                     Sets  the border width of the 3-D border drawn around the
-                     outside of each bar.  The -relief  option  determines  if
-                     such  a  border  is drawn.  Pixels must be a valid screen
-                     distance like 2 or 0.25i. The default is 2.
-
-              -foreground color
-                     Sets the color of the interior of the bars.
-
-              -relief string
-                     Specifies the 3-D effect desired for bars.  Relief  indi-
-                     cates  how the interior of the bar should appear relative
-                     to the surface of the chart; for  example,  raised  means
-                     the  bar  should  appear  to protrude from the bar chart,
-                     relative to  the  surface  of  the  plotting  area.   The
-                     default is raised.
-
-              -stipple bitmap
-                     Specifies  a stipple pattern with which to draw the bars.
-                     If bitmap is "", then the bar is drawn in a  solid  fash-
-                     ion.
-
-              -type elemType
-                     Specifies the type of element the pen is to be used with.
-                     This option should only be  employed  when  creating  the
-                     pen.   This is for those that wish to mix different types
-                     of elements (bars and lines)  on  the  same  graph.   The
-                     default type is "bar".
-
-              Pen  configuration options may be also be set by the option com-
-              mand.  The resource class is Pen.  The resource  names  are  the
-              names  of  the  pens.   option add *Barchart.Pen.Foreground
-              blue option add *Barchart.activeBar.foreground  green
-
-       pathName pen create penName ?option value?...
-              Creates a new pen by the name penName.  No pen by the same  name
-              can  already  exist.  Option and value are described in above in
-              the pen configure operation.
-
-       pathName pen delete ?penName?...
-              Deletes the named pens. A pen is not really deleted until it  is
-              not  longer  in  use, so it's safe to delete pens mapped to ele-
-              ments.
-
-       pathName pen names ?pattern?...
-              Returns a list of pens matching zero or more  patterns.   If  no
-              option.   Option may be any option described below for the post-
-              script configure operation.
-
-       pathName postscript configure ?option value?...
-              Queries or modifies the  configuration  options  for  PostScript
-              generation.   If  option  isn't specified, a list describing the
-              current postscript options for pathName is returned.  If  option
-              is  specified,  but  not value, then a list describing option is
-              returned.  If one or more option and value pairs are  specified,
-              then  for  each  pair,  the  postscript  option option is set to
-              value.  The following postscript options are available.
-
-              -center boolean
-                     Indicates whether the plot  should  be  centered  on  the
-                     PostScript  page.   If boolean is false, the plot will be
-                     placed in the upper left corner of the page.  The default
-                     is 1.
-
-              -colormap varName
-                     VarName  must be the name of a global array variable that
-                     specifies a color mapping from the X color name to  Post-
-                     Script.   Each  element  of varName must consist of Post-
-                     Script code to set a particular color value  (e.g.  ``1.0
-                     1.0  0.0  setrgbcolor'').  When generating color informa-
-                     tion in PostScript, the array variable varName is checked
-                     if  an element of the name as the color exists. If so, it
-                     uses its value as  the  PostScript  command  to  set  the
-                     color.  If this option hasn't been specified, or if there
-                     isn't an entry in varName for a given color, then it uses
-                     the red, green, and blue intensities from the X color.
-
-              -colormode mode
-                     Specifies  how to output color information.  Mode must be
-                     either color (for full color output), gray  (convert  all
-                     colors  to their gray-scale equivalents) or mono (convert
-                     foreground colors  to  black  and  background  colors  to
-                     white).  The default mode is color.
-
-              -fontmap varName
-                     VarName  must be the name of a global array variable that
-                     specifies a font mapping from the X font  name  to  Post-
-                     Script.   Each  element  of varName must consist of a Tcl
-                     list with one or two elements; the name and point size of
-                     a  PostScript  font.  When outputting PostScript commands
-                     for a particular font,  the  array  variable  varName  is
-                     checked  to  see  if  an  element  by  the specified font
-                     exists.  If there is  such  an  element,  then  the  font
-                     information  contained  in  that  element  is used in the
-                     PostScript output.  (If the point size  is  omitted  from
-                     the  list, the point size of the X font is used).  Other-
-                     wise the X font is examined in an attempt to  guess  what
-                     PostScript  font to use.  This works only for fonts whose
-                     widget's height.  The default is 0.
-
-              -landscape boolean
-                     If boolean is true, this specifies the printed area is to
-                     be  rotated 90 degrees.  In non-rotated output the X-axis
-                     of the printed area runs along the short dimension of the
-                     page  (``portrait''  orientation);  in rotated output the
-                     X-axis runs along the long dimension of the page (``land-
-                     scape'' orientation).  Defaults to 0.
-
-              -maxpect boolean
-                     Indicates  to  scale  the plot so that it fills the Post-
-                     Script page.  The aspect ratio of the barchart  is  still
-                     retained.  The default is 0.
-
-              -padx pad
-                     Sets  the  horizontal padding for the left and right page
-                     borders.  The borders are exterior to the plot.  Pad  can
-                     be a list of one or two screen distances.  If pad has two
-                     elements, the left border is padded by the first distance
-                     and  the right border by the second.  If pad has just one
-                     distance, both the left  and  right  borders  are  padded
-                     evenly.  The default is 1i.
-
-              -pady pad
-                     Sets  the  vertical  padding  for the top and bottom page
-                     borders. The borders are exterior to the plot.   Pad  can
-                     be a list of one or two screen distances.  If pad has two
-                     elements, the top border is padded by the first  distance
-                     and the bottom border by the second.  If pad has just one
-                     distance, both the top  and  bottom  borders  are  padded
-                     evenly.  The default is 1i.
-
-              -paperheight pixels
-                     Sets the height of the postscript page.  This can be used
-                     to select between different page sizes (letter, A4, etc).
-                     The default height is 11.0i.
-
-              -paperwidth pixels
-                     Sets  the width of the postscript page.  This can be used
-                     to select between different page sizes (letter, A4, etc).
-                     The default width is 8.5i.
-
-              -width pixels
-                     Sets  the  width  of  the plot.  This lets you generate a
-                     plot of a width different from that of  the  widget.   If
-                     pixels is 0, the width is the same as the widget's width.
-                     The default is 0.
-
-              Postscript configuration options may  be  also  be  set  by  the
-              option  command.  The resource name and class are postscript and
-              Postscript respectively.  option add  *Barchart.postscript.Deco-
-
-       with  a  particular  element, so that when the element is hidden or un-
-       hidden, so is the marker.  By  default,  markers  are  the  last  items
-       drawn,  so  that  data  elements  will  appear in behind them.  You can
-       change this by configuring the -under option.
-
-       Markers, in contrast to elements, don't affect the scaling of the coor-
-       dinate axes.  They can also have elastic coordinates (specified by -Inf
-       and Inf respectively) that translate into the minimum or maximum  limit
-       of  the axis.  For example, you can place a marker so it always remains
-       in the lower left corner of the plotting area, by using the coordinates
-       -Inf,-Inf.
-
-       The following operations are available for markers.
-
-       pathName marker after markerId ?afterId?
-              Changes the order of the markers, drawing the first marker after
-              the second.  If no second afterId  argument  is  specified,  the
-              marker  is  placed at the end of the display list.  This command
-              can be used to control how markers are displayed  since  markers
-              are drawn in the order of this display list.
-
-       pathName marker before markerId ?beforeId?
-              Changes  the  order  of  the  markers,  drawing the first marker
-              before the second.  If no second beforeId argument is specified,
-              the marker is placed at the beginning of the display list.  This
-              command can be used to control how markers are  displayed  since
-              markers are drawn in the order of this display list.
-
-       pathName marker bind tagName ?sequence?  ?command?
-              Associates  command  with  tagName  such that whenever the event
-              sequence given by sequence occurs for a marker  with  this  tag,
-              command will be invoked.  The syntax is similar to the bind com-
-              mand except that it operates on graph markers, rather than  wid-
-              gets. See the bind manual entry for complete details on sequence
-              and the substitutions performed on command before invoking it.
-
-              If all arguments are specified then a new  binding  is  created,
-              replacing  any  existing  binding for the same sequence and tag-
-              Name.  If the first character of command is + then command  aug-
-              ments  an existing binding rather than replacing it.  If no com-
-              mand argument is provided then the command currently  associated
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-       pathName marker cget option
-              Returns the current value of  the  marker  configuration  option
-              given  by  option.   Option may be any option described below in
-              the configure operation.
-
-       pathName marker configure markerId ?option value?...
-                     determine  how  events for markers are handled.  Each tag
-                     in the list matching the current event sequence will have
-                     its  Tcl  command  executed.   Implicitly the name of the
-                     marker is always the first tag in the list.  The  default
-                     value is all.
-
-              -coords coordList
-                     Specifies  the coordinates of the marker.  CoordList is a
-                     list of graph-coordinates.   The  number  of  coordinates
-                     required  is  dependent  on  the  type  of marker.  Text,
-                     image, and window markers need only two  coordinates  (an
-                     X-Y  coordinate).   Bitmap markers can take either two or
-                     four coordinates (if four, they represent the corners  of
-                     the bitmap). Line markers need at least four coordinates,
-                     polygons at least six.  If coordList is  "",  the  marker
-                     will not be displayed.  The default is "".
-
-              -element elemName
-                     Links  the  marker with the element elemName.  The marker
-                     is drawn only if the element is also currently  displayed
-                     (see  the  element's show operation).  If elemName is "",
-                     the marker is always drawn.  The default is "".
-
-              -hide boolean
-                     Indicates whether the marker  is  drawn.  If  boolean  is
-                     true, the marker is not drawn.  The default is no.
-
-              -mapx xAxis
-                     Specifies  the  X-axis  to map the marker's X-coordinates
-                     onto.  XAxis must the name of an axis.  The default is x.
-
-              -mapy yAxis
-                     Specifies  the  Y-axis  to map the marker's Y-coordinates
-                     onto.  YAxis must the name of an axis.  The default is y.
-
-              -name markerId
-                     Changes  the  identifier  for the marker.  The identifier
-                     markerId can not already be used by another  marker.   If
-                     this   option  isn't  specified,  the  marker's  name  is
-                     uniquely generated.
-
-              -under boolean
-                     Indicates whether the marker is  drawn  below/above  data
-                     elements.   If  boolean  is  true, the marker is be drawn
-                     underneath the data elements.  Otherwise, the  marker  is
-                     drawn on top of the element.  The default is 0.
-
-              -xoffset pixels
-                     Specifies a screen distance to offset the marker horizon-
-                     tally.  Pixels is a valid screen distance, such as  2  or
-                     1.2i.  The default is 0.
-
-              Creates  a marker of the selected type. Type may be either text,
-              line, bitmap, image, polygon, or window.  This  command  returns
-              the  marker  identifier,  used  as  the markerId argument in the
-              other marker-related commands.  If the  -name  option  is  used,
-              this  overrides  the normal marker identifier.  If the name pro-
-              vided is already used for another marker, the  new  marker  will
-              replace the old.
-
-       pathName marker delete ?name?...
-              Removes  one  of  more markers.  The graph will automatically be
-              redrawn without the marker..
-
-       pathName marker exists markerId
-              Returns 1 if the marker markerId exists and 0 otherwise.
-
-       pathName marker names ?pattern?
-              Returns the names of all the markers that currently  exist.   If
-              pattern  is  supplied,  only  those markers whose names match it
-              will be returned.
-
-       pathName marker type markerId
-              Returns the type of the marker given by markerId, such  as  line
-              or  text.  If markerId is not a valid a marker identifier, "" is
-              returned.
-
-   BITMAP MARKERS
-       A bitmap marker displays a bitmap.  The size  of  the  bitmap  is  con-
-       trolled  by  the  number of coordinates specified.  If two coordinates,
-       they specify the position of the top-left corner of  the  bitmap.   The
-       bitmap  retains  its normal width and height.  If four coordinates, the
-       first and second pairs of coordinates represent the corners of the bit-
-       map.   The bitmap will be stretched or reduced as necessary to fit into
-       the bounding rectangle.
-
-       Bitmap markers are created with the marker's create  operation  in  the
-       form:  pathName  marker  create  bitmap ?option value?...  There may be
-       many option-value pairs, each sets  a  configuration  options  for  the
-       marker.   These  same  option-value pairs may be used with the marker's
-       configure operation.
-
-       The following options are specific to bitmap markers:
-
-       -background color
-              Same as the -fill option.
-
-       -bitmap bitmap
-              Specifies the bitmap to be displayed.   If  bitmap  is  "",  the
-              marker will not be displayed.  The default is "".
-
-       -fill color
-              Sets  the background color of the bitmap.  If color is the empty
-              string, no background will be transparent.   The  default  back-
-
-       -rotate theta
-              Sets  the rotation of the bitmap.  Theta is a real number repre-
-              senting the angle of rotation in degrees.  The marker  is  first
-              rotated  and  then placed according to its anchor position.  The
-              default rotation is 0.0.
-
-   IMAGE MARKERS
-       A image marker displays an image.  Image markers are created  with  the
-       marker's  create  operation  in  the form: pathName marker create image
-       ?option value?...  There may be many option-value pairs,  each  sets  a
-       configuration option for the marker.  These same option-value pairs may
-       be used with the marker's configure operation.
-
-       The following options are specific to image markers:
-
-       -anchor anchor
-              Anchor tells how to position the image relative to the position-
-              ing  point  for the image. For example, if anchor is center then
-              the image is centered on the point;  if anchor  is  n  then  the
-              image  will be drawn such that the top center point of the rect-
-              angular region occupied by the image will be at the  positioning
-              point.  This option defaults to center.
-
-       -image image
-              Specifies  the  image  to  be drawn.  If image is "", the marker
-              will not be drawn.  The default is "".
-
-   LINE MARKERS
-       A line marker displays one or more connected line segments.  Line mark-
-       ers  are  created  with marker's create operation in the form: pathName
-       marker create line ?option value?...  There may  be  many  option-value
-       pairs,  each  sets  a  configuration option for the marker.  These same
-       option-value pairs may be used with the marker's configure operation.
-
-       The following options are specific to line markers:
-
-       -dashes dashList
-              Sets the dash style of the line. DashList is a list of up to  11
-              numbers that alternately represent the lengths of the dashes and
-              gaps on the line.  Each number must be between 1  and  255.   If
-              dashList is "", the marker line will be solid.
-
-       -fill color
-              Sets  the background color of the line.  This color is used with
-              striped lines (see the -dashes option). If color  is  the  empty
-              string,  no  background color is drawn (the line will be dashed,
-              not striped).  The default background color is "".
-
-       -linewidth pixels
-              Sets the width of the lines.  The default width is 0.
-
-       in  the  form:  pathName marker create polygon ?option value?...  There
-       may be many option-value pairs, each sets a  configuration  option  for
-       the  marker.  These same option-value pairs may be used with the marker
-       configure command to change the marker's configuration.  The  following
-       options are supported for polygon markers:
-
-       -dashes dashList
-              Sets the dash style of the outline of the polygon. DashList is a
-              list of up to 11 numbers that alternately represent the  lengths
-              of  the  dashes  and  gaps  on the outline.  Each number must be
-              between 1 and 255. If dashList is "",  the  outline  will  be  a
-              solid line.
-
-       -fill color
-              Sets  the  fill  color of the polygon.  If color is "", then the
-              interior of the polygon is transparent.  The default is white.
-
-       -linewidth pixels
-              Sets the width of the outline of the polygon. If pixels is zero,
-              no outline is drawn. The default is 0.
-
-       -outline color
-              Sets the color of the outline of the polygon.  If the polygon is
-              stippled (see the -stipple option),  then  this  represents  the
-              foreground color of the stipple.  The default is black.
-
-       -stipple bitmap
-              Specifies  that the polygon should be drawn with a stippled pat-
-              tern rather than a solid color. Bitmap specifies a bitmap to use
-              as  the  stipple  pattern.  If bitmap is "", then the polygon is
-              filled with a solid color (if the -fill  option  is  set).   The
-              default is "".
-
-   TEXT MARKERS
-       A  text  marker displays a string of characters on one or more lines of
-       text.  Embedded newlines cause line breaks.  They may be used to  anno-
-       tate  regions  of  the graph.  Text markers are created with the create
-       operation in the form: pathName marker create  text  ?option  value?...
-       There  may be many option-value pairs, each sets a configuration option
-       for the text marker.  These same option-value pairs may  be  used  with
-       the marker's configure operation.
-
-       The following options are specific to text markers:
-
-       -anchor anchor
-              Anchor  tells how to position the text relative to the position-
-              ing point for the text. For example, if anchor  is  center  then
-              the  text is centered on the point; if anchor is n then the text
-              will be drawn such that the top center point of the  rectangular
-              region  occupied  by  the text will be at the positioning point.
-              This default is center.
-
-
-       -justify justify
-              Specifies  how  the text should be justified.  This matters only
-              when the marker contains more than one  line  of  text.  Justify
-              must be left, right, or center.  The default is center.
-
-       -outline color
-              Sets the color of the text. The default value is black.
-
-       -padx pad
-              Sets  the  padding  to the left and right exteriors of the text.
-              Pad can be a list of one or two screen distances.   If  pad  has
-              two  elements,  the left side of the text is padded by the first
-              distance and the right side by the second.  If pad has just  one
-              distance,  both the left and right sides are padded evenly.  The
-              default is 4.
-
-       -pady pad
-              Sets the padding above and below the text.  Pad can be a list of
-              one  or two screen distances.  If pad has two elements, the area
-              above the text is padded by the  first  distance  and  the  area
-              below  by the second.  If pad is just one distance, both the top
-              and bottom areas are padded evenly.  The default is 4.
-
-       -rotate theta
-              Specifies the number of degrees to rotate the text.  Theta is  a
-              real  number  representing the angle of rotation.  The marker is
-              first rotated along its center and is then  drawn  according  to
-              its anchor position. The default is 0.0.
-
-       -text text
-              Specifies  the  text  of  the marker.  The exact way the text is
-              displayed may be affected by other options such  as  -anchor  or
-              -rotate.
-
-   WINDOW MARKERS
-       A  window marker displays a widget at a given position.  Window markers
-       are created with the marker's create operation in  the  form:  pathName
-       marker  create window ?option value?...  There may be many option-value
-       pairs, each sets a configuration option for  the  marker.   These  same
-       option-value pairs may be used with the marker's configure command.
-
-       The following options are specific to window markers:
-
-       -anchor anchor
-              Anchor  tells  how  to position the widget relative to the posi-
-              tioning point for the widget. For example, if anchor  is  center
-              then  the  widget  is centered on the point; if anchor is n then
-              the widget will be displayed such that the top center  point  of
-              the  rectangular  region  occupied  by the widget will be at the
-              positioning point.  This option defaults to center.
-
-
-
-

GRAPH COMPONENT BINDINGS

-       Specific barchart components, such  as  elements,  markers  and  legend
-       entries,  can  have  a  command trigger when event occurs in them, much
-       like canvas items in Tk's canvas widget.  Not all event  sequences  are
-       valid.  The only binding events that may be specified are those related
-       to the mouse and keyboard (such as Enter, Leave,  ButtonPress,  Motion,
-       and KeyPress).
-
-       Only  one element or marker can be picked during an event.  This means,
-       that if the mouse is directly over both an element and a  marker,  only
-       the  uppermost  component  is  selected.   This  isn't  true for legend
-       entries.  Both a legend entry and an element (or marker)  binding  com-
-       mands will be invoked if both items are picked.
-
-       It is possible for multiple bindings to match a particular event.  This
-       could occur, for example, if one binding is associated with the element
-       name  and another is associated with one of the element's tags (see the
-       -bindtags option).  When this occurs, all of the matching bindings  are
-       invoked.   A binding associated with the element name is invoked first,
-       followed by one binding for each of the element's bindtags.   If  there
-       are  multiple  matching  bindings  for a single tag, then only the most
-       specific binding is invoked.  A continue command in  a  binding  script
-       terminates  that script, and a break command terminates that script and
-       skips any remaining scripts for the event, just as for  the  bind  com-
-       mand.
-
-       The  -bindtags  option for these components controls addition tag names
-       which can be matched.  Implicitly elements and markers always have tags
-       matching  their  names.   Setting  the  value  of  the -bindtags option
-       doesn't change this.
-
-
-
-

C LANGUAGE API

-       You can manipulate data elements from the C  language.   There  may  be
-       situations  where it is too expensive to translate the data values from
-       ASCII strings.  Or you might want to read data in a special  file  for-
-       mat.
-
-       Data  can manipulated from the C language using BLT vectors.  You spec-
-       ify the X-Y data coordinates of an element as  vectors  and  manipulate
-       the  vector  from  C.  The barchart will be redrawn automatically after
-       the vectors are updated.
-
-       From Tcl, create the vectors and configure the  element  to  use  them.
-       vector  X  Y  .g  element configure line1 -xdata X -ydata Y To set data
-       points from C, you pass the values  as  arrays  of  doubles  using  the
-       Blt_ResetVector call.  The vector is reset with the new data and at the
-       next idle point (when Tk re-enters its event loop), the graph  will  be
-       redrawn automatically.  #include <tcl.h> #include <blt.h>
-
-       register int i; Blt_Vector *xVec, *yVec; double x[50], y[50];
-
-       /*  Get  the  BLT  vectors  "X"  and "Y" (created above from Tcl) */ if
-       There may be cases where the bar chart needs to be drawn and updated as
-       quickly as possible.  If drawing speed becomes a big problem, here  are
-       a few tips to speed up displays.
-
-       o Try  to  minimize  the  number  of data points.  The more data points
-         looked at, the more work the bar chart must do.
-
-       o If your data is generated as floating point values, the time required
-         to  convert the data values to and from ASCII strings can be signifi-
-         cant, especially when there any many data points.  You can avoid  the
-         redundant  string-to-decimal  conversions using the C API to BLT vec-
-         tors.
-
-       o Don't stipple or dash the element.  Solid bars are much faster.
-
-       o If you update data elements frequently, try turning off the  widget's
-         -bufferelements  option.   When  the bar chart is first displayed, it
-         draws data elements into an internal pixmap.  The pixmap  acts  as  a
-         cache,  so that when the bar chart needs to be redrawn again, and the
-         data elements or coordinate axes haven't changed, the pixmap is  sim-
-         ply  copied  to  the  screen.  This is especially useful when you are
-         using markers to highlight points and regions on the bar chart.   But
-         if  the  bar chart is updated frequently, changing either the element
-         data or coordinate axes, the buffering becomes redundant.
-
-
-
-

LIMITATIONS

-       Auto-scale routines do not use requested min/max limits  as  boundaries
-       when the axis is logarithmically scaled.
-
-       The PostScript output generated for polygons with more than 1500 points
-       may exceed the limits of some printers (See PostScript Language  Refer-
-       ence  Manual,  page 568).  The work-around is to break the polygon into
-       separate pieces.
-
-
-
-

KEYWORDS

-       bar chart, widget
-
-
-
-BLT                               BLT_VERSION                      barchart(n)
-
-
-
-Man(1) output converted with -man2html -
- - diff --git a/tkblt/doc/barchart.n b/tkblt/doc/barchart.n deleted file mode 100644 index 7a9dac8..0000000 --- a/tkblt/doc/barchart.n +++ /dev/null @@ -1,2239 +0,0 @@ -'\" -'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA -'\" This code has been modified under the terms listed below and is made -'\" available under the same terms. -'\" -'\" Copyright 1991-1998 by Bell Labs Innovations for Lucent Technologies. -'\" -'\" Permission to use, copy, modify, and distribute this software and its -'\" documentation for any purpose and without fee is hereby granted, provided -'\" that the above copyright notice appear in all copies and that both that the -'\" copyright notice and warranty disclaimer appear in supporting documentation, -'\" and that the names of Lucent Technologies any of their entities not be used -'\" in advertising or publicity pertaining to distribution of the software -'\" without specific, written prior permission. -'\" -'\" Lucent Technologies disclaims all warranties with regard to this software, -'\" including all implied warranties of merchantability and fitness. In no event -'\" shall Lucent Technologies be liable for any special, indirect or -'\" consequential damages or any damages whatsoever resulting from loss of use, -'\" data or profits, whether in an action of contract, negligence or other -'\" tortuous action, arising out of or in connection with the use or performance -'\" of this software. -'\" -'\" Barchart widget created by Sani Nassif and George Howlett. -'\" -.TH barchart n BLT_VERSION BLT "BLT Built-In Commands" -.BS -'\" Note: do not modify the .SH NAME line immediately below! -.SH NAME -barchart \- Bar chart for plotting X-Y coordinate data. -.SH SYNOPSIS -\fBbarchart\fI \fIpathName \fR?\fIoption value\fR?... -.BE -.SH DESCRIPTION -The \fBbarchart\fR command creates a bar chart for plotting -two-dimensional data (X-Y coordinates). A bar chart is a graphic means -of comparing numbers by displaying bars of lengths proportional to the -y-coordinates of the points they represented. The bar chart has many -configurable components: coordinate axes, elements, legend, grid -lines, cross hairs, etc. They allow you to customize the look and -feel of the graph. -.SH INTRODUCTION -The \fBbarchart\fR command creates a new window for plotting -two-dimensional data (X-Y coordinates), using bars of -various lengths to represent the data points. The bars are drawn in a -rectangular area displayed in the center of the new window. This is the -\fIplotting area\fR. The coordinate axes are drawn in -the margins surrounding the plotting area. By default, the legend is -drawn in the right margin. The title is displayed in top margin. -.PP -A \fBbarchart\fR widget has several configurable components: -coordinate axes, data elements, legend, grid, cross hairs, pens, -postscript, and annotation markers. Each component can be queried or -modified. -.TP 1i -\f(CWaxis\fR - -Up to four coordinate axes (two X\-coordinate and two Y\-coordinate -axes) can be displayed, but you can create and use any number of -axes. Axes control what region of data is displayed and how the data -is scaled. Each axis consists of the axis line, title, major and minor -ticks, and tick labels. Tick labels display the value at each major -tick. -.TP 1i -\f(CWcrosshairs\fR -Cross hairs are used to position the mouse pointer relative to the X -and Y coordinate axes. Two perpendicular lines, intersecting at the -current location of the mouse, extend across the plotting area to the -coordinate axes. -.TP 1i -\f(CWelement\fR -An element represents a set of data to be plotted. It contains an x -and y vector of values representing the data points. Each -data point is displayed as a bar where the length of the bar is -proportional to the ordinate (Y-coordinate) of the data point. -The appearance of the bar, such as its color, stipple, or relief -is configurable. -.sp -A special case exists when two or more data points have the same -abscissa (X-coordinate). By default, the bars are overlayed, one on -top of the other. The bars are drawn in the order of the element -display list. But you can also configure the bars to be displayed in -two other ways. They may be displayed as a stack, where each bar -(with the same abscissa) is stacked on the previous. Or they can be -drawn side-by-side as thin bars. The width of each bar is a function -of the number of data points with the same abscissa. -.TP 1i -\f(CWgrid\fR -Extends the major and minor ticks of the X\-axis and/or Y\-axis across the -plotting area. -.TP 1i -\f(CWlegend\fR -The legend displays the name and symbol of each data element. -The legend can be drawn in any margin or in the plotting area. -.TP 1i -\f(CWmarker\fR -Markers are used annotate or highlight areas of the graph. For -example, you could use a text marker to label a particular data -point. Markers come in various forms: text strings, bitmaps, connected -line segments, images, polygons, or embedded widgets. -.TP 1i -\f(CWpen\fR -Pens define attributes for elements. Data elements use pens to -specify how they should be drawn. A data element may use many pens at -once. Here the particular pen used for a data point is determined -from each element's weight vector (see the element's \fB\-weight\fR -and \fB\-style\fR options). -.TP 1i -\f(CWpostscript\fR -The widget can generate encapsulated PostScript output. This component -has several options to configure how the PostScript is generated. -.SH SYNTAX -.DS -\fBbarchart \fIpathName \fR?\fIoption value\fR?... -.DE -The \fBbarchart\fR command creates a new window \fIpathName\fR and makes -it into a \fBbarchart\fR widget. At the time this command is invoked, there -must not exist a window named \fIpathName\fR, but \fIpathName\fR's -parent must exist. Additional options may be specified on the -command line or in the option database to configure aspects of the -graph such as its colors and font. See the \fBconfigure\fR operation -below for the exact details about what \fIoption\fR and \fIvalue\fR -pairs are valid. -.PP -If successful, \fBbarchart\fR returns the path name of the widget. It -also creates a new Tcl command by the same name. You can use this -command to invoke various operations that query or modify the graph. -The general form is: -.DS -\fIpathName \fIoperation\fR \fR?\fIarg\fR?... -.DE -Both \fIoperation\fR and its arguments determine the exact behavior of -the command. The operations available for the graph are described in -the -.SB "BARCHART OPERATIONS" -section. -.PP -The command can also be used to access components of the graph. -.DS -\fIpathName component operation\fR ?\fIarg\fR?... -.DE -The operation, now located after the name of the component, is the -function to be performed on that component. Each component has its own -set of operations that manipulate that component. They will be -described below in their own sections. -.SH EXAMPLE -The \fBbarchart\fR command creates a new bar chart. -.CS -# Create a new bar chart. Plotting area is black. -barchart .b -plotbackground black -.CE -A new Tcl command \f(CW.b\fR is created. This command can be used -to query and modify the bar chart. For -example, to change the title of the graph to "My Plot", you use the -new command and the \fBconfigure\fR operation. -.CS -# Change the title. -\&.b configure -title "My Plot" -.CE -To add data elements, you use the command and the \fBelement\fR component. -.CS -# Create a new element named "e1" -\&.b element create e1 \\ - -xdata { 1 2 3 4 5 6 7 8 9 10 } \\ - -ydata { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 - 155.85 166.60 175.38 } -.CE -The element's X-Y coordinates are specified using lists of -numbers. Alternately, BLT vectors could be used to hold the X-Y -coordinates. -.CS -# Create two vectors and add them to the barchart. -vector xVector yVector -xVector set { 1 2 3 4 5 6 7 8 9 10 } -yVector set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85 - 166.60 175.38 } -\&n.b element create e1 -xdata xVector -ydata yVector -.CE -The advantage of using vectors is that when you modify one, the graph -is automatically redrawn to reflect the new values. -.CS -# Change the y coordinate of the first point. -set yVector(0) 25.18 -.CE -An element named \f(CWe1\fR is now created in \f(CW.b\fR. It -is automatically added to the display list of elements. You can -use this list to control in what order elements are displayed. -To query or reset the element display list, you use the element's -\fBshow\fR operation. -.CS -# Get the current display list -set elemList [.b element show] -# Remove the first element so it won't be displayed. -\&.b element show [lrange $elemList 0 end] -.CE -The element will be displayed by as many bars as there are data points -(in this case there are ten). The bars will be drawn centered at the -x-coordinate of the data point. All the bars will have the same -attributes (colors, stipple, etc). The width of each bar is by -default one unit. You can change this with using the \fB\-barwidth\fR -option. -.CS -# Change the scale of the x-coordinate data -xVector set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } -# Make sure we change the bar width too. -\&.b configure -barwidth 0.2 -.CE -The height of each bar is proportional to the ordinate (Y-coordinate) -of the data point. -.PP -If two or more data points have the same abscissa (X-coordinate -value), the bars representing those data points may be drawn in -various ways. -The default is to overlay the bars, one on top of the other. -The ordering is determined from the of element display list. If -the stacked mode is selected (using the \fB\-barmode\fR configuration -option), the bars are stacked, each bar above the previous. -.CS -# Display the elements as stacked. -\&.b configure -barmode stacked -.CE -If the aligned mode is selected, the bars having the same -x-coordinates are displayed side by side. The width of each bar is a -fraction of its normal width, based upon the number of bars with the -same x-coordinate. -.CS -# Display the elements side-by-side. -\&.b configure -barmode aligned -.CE -By default, the element's label in the legend will be also -\f(CWe1\fR. You can change the label, or specify no legend entry, -again using the element's \fBconfigure\fR operation. -.CS -# Don't display "e1" in the legend. -\&.b element configure e1 -label "" -.CE -You can configure more than just the element's label. An element has -many attributes such as stipple, foreground and background colors, -relief, etc. -.CS -\&.b element configure e1 -fg red -bg pink \\ - -stipple gray50 -.CE -Four coordinate axes are automatically created: \f(CWx\fR, \f(CWx2\fR, -\f(CWy\fR, and \f(CWy2\fR. And by default, elements are mapped onto the -axes \f(CWx\fR and \f(CWy\fR. This can be changed with the \fB\-mapx\fR -and \fB\-mapy\fR options. -.CS -# Map "e1" on the alternate y axis "y2". -\&.b element configure e1 -mapy y2 -.CE -Axes can be configured in many ways too. For example, you change the -scale of the Y\-axis from linear to log using the \fBaxis\fR component. -.CS -# Y-axis is log scale. -\&.b axis configure y -logscale yes -.CE -One important way axes are used is to zoom in on a particular data -region. Zooming is done by simply specifying new axis limits using -the \fB\-min\fR and \fB\-max\fR configuration options. -.CS -\&.b axis configure x \-min 1.0 \-max 1.5 -\&.b axis configure y \-min 12.0 \-max 55.15 -.CE -To zoom interactively, you link the\fBaxis configure\fR operations with -some user interaction (such as pressing the mouse button), using the -\fBbind\fR command. To convert between screen and graph coordinates, -use the \fBinvtransform\fR operation. -.CS -# Click the button to set a new minimum -bind .b { - %W axis configure x \-min [%W axis invtransform x %x] - %W axis configure x \-min [%W axis invtransform x %y] -} -.CE -By default, the limits of the axis are determined from data values. -To reset back to the default limits, set the \fB\-min\fR and -\fB\-max\fR options to the empty value. -.CS -# Reset the axes to autoscale again. -\&.b axis configure x \-min {} \-max {} -\&.b axis configure y \-min {} \-max {} -.CE -By default, the legend is drawn in the right margin. You can -change this or any legend configuration options using the -\fBlegend\fR component. -.CS -# Configure the legend font, color, and relief -\&.b legend configure -position left -relief raised \\ - -font fixed -fg blue -.CE -To prevent the legend from being displayed, turn on the \fB\-hide\fR -option. -.CS -# Don't display the legend. -\&.b legend configure \-hide yes\fR -.CE -The \fBbarchart\fR has simple drawing procedures called markers. They can be -used to highlight or annotate data in the graph. The types of markers -available are bitmaps, polygons, lines, or windows. Markers can be -used, for example, to mark or brush points. For example there may be -a line marker which indicates some low-water value. Markers are created -using the \fBmarker\fR operation. -.CS -# Create a line represent the low water mark at 10.0 -\&.b marker create line -name "low_water" \\ - -coords { -Inf 10.0 Inf 10.0 } \\ - -dashes { 2 4 2 } -fg red -bg blue -.CE -This creates a line marker named \f(CWlow_water\fR. It will display a -horizontal line stretching across the plotting area at the -y-coordinate 10.0. The coordinates "-Inf" and "Inf" indicate the -relative minimum and maximum of the axis (in this case the x-axis). By -default, markers are drawn last, on top of the bars. You can change this -with the \fB\-under\fR option. -.CS -# Draw the marker before elements are drawn. -\&.b marker configure low_water -under yes -.CE -You can add cross hairs or grid lines using the \fBcrosshairs\fR and -\fBgrid\fR components. -.CS -# Display both cross hairs and grid lines. -\&.b crosshairs configure -hide no -color red -\&.b grid configure -hide no -dashes { 2 2 } -.CE -Finally, to get hardcopy of the graph, use the \fBpostscript\fR -component. -.CS -# Print the bar chart into file "file.ps" -\&.b postscript output file.ps -maxpect yes -decorations no -.CE -This generates a file \f(CWfile.ps\fR containing the encapsulated -PostScript of the graph. The option \fB\-maxpect\fR says to scale the -plot to the size of the page. Turning off the \fB\-decorations\fR -option denotes that no borders or color backgrounds should be -drawn (i.e. the background of the margins, legend, and plotting -area will be white). -.SH SYNTAX -.DS -\fBbarchart \fIpathName \fR?\fIoption value\fR?... -.DE -The \fBbarchart\fR command creates a new window \fIpathName\fR and makes -it into a barchart widget. At the time this command is invoked, there -must not exist a window named \fIpathName\fR, but \fIpathName\fR's -parent must exist. Additional options may may be specified on the -command line or in the option database to configure aspects of the -bar chart such as its colors and font. See the \fBconfigure\fR operation -below for the exact details as to what \fIoption\fR and \fIvalue\fR -pairs are valid. -.PP -If successful, \fBbarchart\fR returns \fIpathName\fR. It also creates a -new Tcl command \fIpathName\fR. This command may be used to invoke -various operations to query or modify the bar chart. It has the general -form: -.DS -\fIpathName \fIoperation\fR \fR?\fIarg\fR?... -.DE -Both \fIoperation\fR and its arguments determine the exact behavior of -the command. The operations available for the bar chart are described in -the following section. -.SH "BARCHART OPERATIONS" -.TP -\fIpathName \fBbar \fIelemName \fR?\fIoption value\fR?... -Creates a new barchart element \fIelemName\fR. It's an -error if an element \fIelemName\fR already exists. -See the manual for \fBbarchart\fR for details about -what \fIoption\fR and \fIvalue\fR pairs are valid. -.TP -\fIpathName \fBcget\fR \fIoption\fR -Returns the current value of the configuration option given by -\fIoption\fR. \fIOption\fR may be any option described -below for the \fBconfigure\fR operation. -.TP -\fIpathName \fBconfigure \fR?\fIoption value\fR?... -Queries or modifies the configuration options of the graph. If -\fIoption\fR isn't specified, a list describing the current -options for \fIpathName\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the option \fIoption\fR is set to \fIvalue\fR. -The following options are valid. -.RS -.TP -\fB\-background \fIcolor\fR -Sets the background color. This includes the margins and -legend, but not the plotting area. -.TP -\fB\-barmode \fImode\fR -Indicates how related bar elements will be drawn. Related elements -have data points with the same abscissas (X-coordinates). \fIMode\fR -indicates how those segments should be drawn. \fIMode\fR can be -\f(CWinfront\fR, \f(CWaligned\fR, \f(CWoverlap\fR, or \f(CWstacked\fR. -The default mode is \f(CWinfront\fR. -.RS -.TP 1i -\f(CWinfront\fR -Each successive segment is drawn in front of the previous. -.TP 1i -\f(CWstacked\fR -Each successive segment is stacked vertically on top of the previous. -.TP 1i -\f(CWaligned\fR -Segments is displayed aligned from right-to-left. -.TP 1i -\f(CWoverlap\fR -Like \f(CWaligned\fR but segments slightly overlap each other. -.RE -.TP -\fB\-barwidth \fIvalue\fR -Specifies the width of the bars. This value can be overrided by the -individual elements using their \fB\-barwidth\fR configuration option. -\fIValue\fR is the width in terms of graph-coordinates. The -default width is \f(CW1.0\fR. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the width of the 3\-D border around the outside edge of the widget. The -\fB\-relief\fR option determines if the border is to be drawn. The -default is \f(CW2\fR. -.TP -\fB\-bottommargin \fIpixels\fR -Specifies the size of the margin below the X\-coordinate axis. If -\fIpixels\fR is \f(CW0\fR, the size of the margin is selected automatically. -The default is \f(CW0\fR. -.TP -\fB\-bufferelements \fIboolean\fR -Indicates whether an internal pixmap to buffer the display of data -elements should be used. If \fIboolean\fR is true, data elements are -drawn to an internal pixmap. This option is especially useful when -the graph is redrawn frequently while the remains data unchanged (for -example, moving a marker across the plot). See the -.SB "SPEED TIPS" -section. -The default is \f(CW1\fR. -.TP -\fB\-cursor \fIcursor\fR -Specifies the widget's cursor. The default cursor is \f(CWcrosshair\fR. -.TP -\fB\-font \fIfontName\fR -Specifies the font of the graph title. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-18-180-*\fR. -.TP -\fB\-halo \fIpixels\fR -Specifies a maximum distance to consider when searching for the -closest data point (see the element's \fBclosest\fR operation below). -Data points further than \fIpixels\fR away are ignored. The default is -\f(CW0.5i\fR. -.TP -\fB\-height \fIpixels\fR -Specifies the requested height of widget. The default is -\f(CW4i\fR. -.TP -\fB\-invertxy \fIboolean\fR -Indicates whether the placement X\-axis and Y\-axis should be inverted. If -\fIboolean\fR is true, the X and Y axes are swapped. The default is -\f(CW0\fR. -.TP -\fB\-justify \fIjustify\fR -Specifies how the title should be justified. This matters only when -the title contains more than one line of text. \fIJustify\fR must be -\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-leftmargin \fIpixels\fR -Sets the size of the margin from the left edge of the window to -the Y\-coordinate axis. If \fIpixels\fR is \f(CW0\fR, the size is -calculated automatically. The default is \f(CW0\fR. -.TP -\fB\-plotbackground \fIcolor\fR -Specifies the background color of the plotting area. The default is -\f(CWwhite\fR. -.TP -\fB\-plotborderwidth \fIpixels\fR -Sets the width of the 3-D border around the plotting area. The -\fB\-plotrelief\fR option determines if a border is drawn. The -default is \f(CW2\fR. -.TP -\fB\-plotpadx \fIpad\fR -Sets the amount of padding to be added to the left and right sides of -the plotting area. \fIPad\fR can be a list of one or two screen -distances. If \fIpad\fR has two elements, the left side of the -plotting area entry is padded by the first distance and the right side -by the second. If \fIpad\fR is just one distance, both the left and -right sides are padded evenly. The default is \f(CW8\fR. -.TP -\fB\-plotpady \fIpad\fR -Sets the amount of padding to be added to the top and bottom of the -plotting area. \fIPad\fR can be a list of one or two screen -distances. If \fIpad\fR has two elements, the top of the plotting -area is padded by the first distance and the bottom by the second. If -\fIpad\fR is just one distance, both the top and bottom are padded -evenly. The default is \f(CW8\fR. -.TP -\fB\-plotrelief \fIrelief\fR -Specifies the 3-D effect for the plotting area. \fIRelief\fR -specifies how the interior of the plotting area should appear relative -to rest of the graph; for example, \f(CWraised\fR means the plot should -appear to protrude from the graph, relative to the surface of the -graph. The default is \f(CWsunken\fR. -.TP -\fB\-relief \fIrelief\fR -Specifies the 3-D effect for the barchart widget. \fIRelief\fR -specifies how the graph should appear relative to widget it is packed -into; for example, \f(CWraised\fR means the graph should -appear to protrude. The default is \f(CWflat\fR. -.TP -\fB\-rightmargin \fIpixels\fR -Sets the size of margin from the plotting area to the right edge of -the window. By default, the legend is drawn in this margin. If -\fIpixels\fR is than 1, the margin size is selected automatically. -.TP -\fB\-takefocus\fR \fIfocus\fR -Provides information used when moving the focus from window to window -via keyboard traversal (e.g., Tab and Shift-Tab). If \fIfocus\fR is -\f(CW0\fR, this means that this window should be skipped entirely during -keyboard traversal. \f(CW1\fR means that the this window should always -receive the input focus. An empty value means that the traversal -scripts make the decision whether to focus on the window. -The default is \f(CW""\fR. -.TP -\fB\-tile \fIimage\fR -Specifies a tiled background for the widget. If \fIimage\fR isn't -\f(CW""\fR, the background is tiled using \fIimage\fR. -Otherwise, the normal background color is drawn (see the -\fB\-background\fR option). \fIImage\fR must be an image created -using the Tk \fBimage\fR command. The default is \f(CW""\fR. -.TP -\fB\-title \fItext\fR -Sets the title to \fItext\fR. If \fItext\fR is \f(CW""\fR, -no title will be displayed. -.TP -\fB\-topmargin \fIpixels\fR -Specifies the size of the margin above the x2 axis. If \fIpixels\fR -is \f(CW0\fR, the margin size is calculated automatically. -.TP -\fB\-width \fIpixels\fR -Specifies the requested width of the widget. The default is -\f(CW5i\fR. -.RE -.TP -\fIpathName \fBcrosshairs \fIoperation \fR?\fIarg\fR? -See the -.SB "CROSSHAIRS COMPONENT" -section. -.TP -\fIpathName \fBelement \fIoperation \fR?\fIarg\fR?... -See the -.SB "ELEMENT COMPONENTS" -section. -.TP -\fIpathName \fBextents \fIitem\fR -Returns the size of a particular item in the graph. \fIItem\fR must -be either \f(CWleftmargin\fR, \f(CWrightmargin\fR, \f(CWtopmargin\fR, -\f(CWbottommargin\fR, \f(CWplotwidth\fR, or \f(CWplotheight\fR. -.TP -\fIpathName \fBgrid \fIoperation \fR?\fIarg\fR?... -See the -.SB "GRID COMPONENT" -section. -.TP -\fIpathName \fBinvtransform \fIwinX winY\fR -Performs an inverse coordinate transformation, mapping window -coordinates back to graph-coordinates, using the standard X\-axis and Y\-axis. -Returns a list of containing the X-Y graph-coordinates. -.TP -\fIpathName \fBinside \fIx y\fR -Returns \f(CW1\fR is the designated screen-coordinate (\fIx\fR and \fIy\fR) -is inside the plotting area and \f(CW0\fR otherwise. -.TP -\fIpathName \fBlegend \fIoperation \fR?\fIarg\fR?... -See the -.SB "LEGEND COMPONENT" -section. -.TP -\fIpathName \fBline\fB operation arg\fR... -The operation is the same as \fBelement\fR. -.TP -\fIpathName \fBmarker \fIoperation \fR?\fIarg\fR?... -See the -.SB "MARKER COMPONENTS" -section. -.TP -\fIpathName\fR \fBmetafile\fR ?\fIfileName\fR? -\fIThis operation is for Window platforms only\fR. -Creates a Windows enhanced metafile of the barchart. -If present, \fIfileName\fR is the file name of the new metafile. -Otherwise, the metafile is automatically added to the clipboard. -.TP -\fIpathName \fBpostscript \fIoperation \fR?\fIarg\fR?... -See the -.SB "POSTSCRIPT COMPONENT" -section. -.TP -\fIpathName \fBsnap \fIphotoName\fR -Takes a snapshot of the graph and stores the contents in the photo -image \fIphotoName\fR. \fIPhotoName\fR is the name of a Tk photo -image that must already exist. -.TP -\fIpathName \fBtransform \fIx y\fR -Performs a coordinate transformation, mapping graph-coordinates to -window coordinates, using the standard X\-axis and Y\-axis. -Returns a list containing the X\-Y screen-coordinates. -.TP -\fIpathName \fBxaxis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fBx2axis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fByaxis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fBy2axis \fIoperation\fR ?\fIarg\fR?... -See the -.SB "AXIS COMPONENTS" -section. -.SH "BARCHART COMPONENTS" -A graph is composed of several components: coordinate axes, data -elements, legend, grid, cross hairs, postscript, and annotation -markers. Instead of one big set of configuration options and -operations, the graph is partitioned, where each component has its own -configuration options and operations that specifically control that -aspect or part of the graph. -.SS "AXIS COMPONENTS" -Four coordinate axes are automatically created: two X\-coordinate axes -(\f(CWx\fR and \f(CWx2\fR) and two Y\-coordinate axes (\f(CWy\fR, and -\f(CWy2\fR). By default, the axis \f(CWx\fR is located in the bottom -margin, \f(CWy\fR in the left margin, \f(CWx2\fR in the top margin, and -\f(CWy2\fR in the right margin. -.PP -An axis consists of the axis line, title, major and minor ticks, and -tick labels. Major ticks are drawn at uniform intervals along the -axis. Each tick is labeled with its coordinate value. Minor ticks -are drawn at uniform intervals within major ticks. -.PP -The range of the axis controls what region of data is plotted. -Data points outside the minimum and maximum limits of the axis are -not plotted. By default, the minimum and maximum limits are -determined from the data, but you can reset either limit. -.PP -You can create and use several axes. To create an axis, invoke -the axis component and its create operation. -.CS -# Create a new axis called "temperature" -\&.b axis create temperature -.CE -You map data elements to an axis using the element's \-mapy and \-mapx -configuration options. They specify the coordinate axes an element -is mapped onto. -.CS -# Now map the temperature data to this axis. -\&.b element create "temp" \-xdata $x \-ydata $tempData \\ - \-mapy temperature -.CE -While you can have many axes, only four axes can be displayed -simultaneously. They are drawn in each of the margins surrounding -the plotting area. The axes \f(CWx\fR and \f(CWy\fR are drawn in the -bottom and left margins. The axes \f(CWx2\fR and \f(CWy2\fR are drawn in -top and right margins. Only \f(CWx\fR and \f(CWy\fR are shown by -default. Note that the axes can have different scales. -.PP -To display a different axis, you invoke one of the following -components: \fBxaxis\fR, \fByaxis\fR, \fBx2axis\fR, and \fBy2axis\fR. -The \fBuse\fR operation designates the axis to be drawn in the -corresponding margin: \fBxaxis\fR in the bottom, \fByaxis\fR in the left, -\fBx2axis\fR in the top, and \fBy2axis\fR in the right. -.CS -# Display the axis temperature in the left margin. -\&.b yaxis use temperature -.CE -.PP -You can configure axes in many ways. The axis scale can be linear or -logarithmic. The values along the axis can either monotonically -increase or decrease. If you need custom tick labels, you can specify -a Tcl procedure to format the label any way you wish. You can -control how ticks are drawn, by changing the major tick interval -or the number of minor ticks. You can define non-uniform tick intervals, -such as for time-series plots. -.PP -.TP -\fIpathName \fBaxis \fBcget \fIaxisName \fIoption\fR -Returns the current value of the option given by \fIoption\fR for -\fIaxisName\fR. \fIOption\fR may be any option described below -for the axis \fBconfigure\fR operation. -.TP -\fIpathName \fBaxis \fBconfigure \fIaxisName \fR?\fIaxisName\fR?... ?\fIoption value\fR?... -Queries or modifies the configuration options of \fIaxisName\fR. -Several axes can be changed. If \fIoption\fR isn't specified, a list -describing all the current options for \fIaxisName\fR is returned. If -\fIoption\fR is specified, but not \fIvalue\fR, then a list describing -\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR -pairs are specified, then for each pair, the axis option \fIoption\fR -is set to \fIvalue\fR. The following options are valid for axes. -.RS -.TP -\fB\-autorange \fIrange\fR -Sets the range of values for the axis to \fIrange\fR. The axis limits -are automatically reset to display the most recent data points in this range. -If \fIrange\fR is 0.0, the range is -determined from the limits of the data. If \fB\-min\fR or \fB-max\fR -are specified, they override this option. The default is \f(CW0.0\fR. -.TP -\fB\-color \fIcolor\fR -Sets the color of the axis and tick labels. -The default is \f(CWblack\fR. -.TP -\fB\-command \fIprefix\fR -Specifies a Tcl command to be invoked when formatting the axis tick -labels. \fIPrefix\fR is a string containing the name of a Tcl proc and -any extra arguments for the procedure. This command is invoked for each -major tick on the axis. Two additional arguments are passed to the -procedure: the pathname of the widget and the current the numeric -value of the tick. The procedure returns the formatted tick label. If -\f(CW""\fR is returned, no label will appear next to the tick. You can -get the standard tick labels again by setting \fIprefix\fR to -\f(CW""\fR. The default is \f(CW""\fR. -.sp 1 -Please note that this procedure is invoked while the bar chart is redrawn. -You may query the widget's configuration options. But do not reset -options, because this can have unexpected results. -.TP -\fB\-descending \fIboolean\fR -Indicates whether the values along the axis are monotonically increasing or -decreasing. If \fIboolean\fR is true, the axis values will be -decreasing. The default is \f(CW0\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the axis is displayed. -.TP -\fB\-justify \fIjustify\fR -Specifies how the axis title should be justified. This matters only -when the axis title contains more than one line of text. \fIJustify\fR -must be \f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-limits \fIformatStr\fR -Specifies a printf-like description to format the minimum and maximum -limits of the axis. The limits are displayed at the top/bottom or -left/right sides of the plotting area. \fIFormatStr\fR is a list of -one or two format descriptions. If one description is supplied, both -the minimum and maximum limits are formatted in the same way. If two, -the first designates the format for the minimum limit, the second for -the maximum. If \f(CW""\fR is given as either description, then -the that limit will not be displayed. The default is \f(CW""\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the axis and tick lines. The default is \f(CW1\fR -pixel. -.TP -\fB\-logscale \fIboolean\fR -Indicates whether the scale of the axis is logarithmic or linear. If -\fIboolean\fR is true, the axis is logarithmic. The default scale is -linear. -.TP -\fB\-loose \fIboolean\fR -Indicates whether the limits of the axis should fit the data points tightly, -at the outermost data points, or loosely, at the outer tick intervals. -This is relevant only when the axis limit is automatically calculated. -If \fIboolean\fR is true, the axis range is "loose". -The default is \f(CW0\fR. -.TP -\fB\-majorticks \fImajorList\fR -Specifies where to display major axis ticks. You can use this option -to display ticks at non-uniform intervals. \fIMajorList\fR is a list -of axis coordinates designating the location of major ticks. No -minor ticks are drawn. If \fImajorList\fR is \f(CW""\fR, -major ticks will be automatically computed. The default is \f(CW""\fR. -.TP -\fB\-max \fIvalue\fR -Sets the maximum limit of \fIaxisName\fR. Any data point greater -than \fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR, -the maximum limit is calculated using the largest data value. -The default is \f(CW""\fR. -.TP -\fB\-min \fIvalue\fR -Sets the minimum limit of \fIaxisName\fR. Any data point less than -\fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR, -the minimum limit is calculated using the smallest data value. -The default is \f(CW""\fR. -.TP -\fB\-minorticks \fIminorList\fR -Specifies where to display minor axis ticks. You can use this option -to display minor ticks at non-uniform intervals. \fIMinorList\fR is a -list of real values, ranging from 0.0 to 1.0, designating the placement of -a minor tick. No minor ticks are drawn if the \fB\-majortick\fR -option is also set. If \fIminorList\fR is \f(CW""\fR, minor ticks will -be automatically computed. The default is \f(CW""\fR. -.TP -\fB\-rotate \fItheta\fR -Specifies the how many degrees to rotate the axis tick labels. -\fITheta\fR is a real value representing the number of degrees -to rotate the tick labels. The default is \f(CW0.0\fR degrees. -.TP -\fB\-shiftby \fIvalue\fR -Specifies how much to automatically shift the range of the axis. -When the new data exceeds the current axis maximum, the maximum -is increased in increments of \fIvalue\fR. You can use this -option to prevent the axis limits from being recomputed -at each new time point. If \fIvalue\fR is 0.0, then no automatic -shifting is down. The default is \f(CW0.0\fR. -.TP -\fB\-showticks \fIboolean\fR -Indicates whether axis ticks should be drawn. If \fIboolean\fR is -true, ticks are drawn. If false, only the -axis line is drawn. The default is \f(CW1\fR. -.TP -\fB\-stepsize \fIvalue\fR -Specifies the interval between major axis ticks. If \fIvalue\fR isn't -a valid interval (must be less than the axis range), -the request is ignored and the step size is automatically calculated. -.TP -\fB\-subdivisions \fInumber\fR -Indicates how many minor axis ticks are -to be drawn. For example, if \fInumber\fR is two, only one minor -tick is drawn. If \fInumber\fR is one, no minor ticks are -displayed. The default is \f(CW2\fR. -.TP -\fB\-tickfont \fIfontName\fR -Specifies the font for axis tick labels. The default is -\f(CW*-Courier-Bold-R-Normal-*-100-*\fR. -.TP -\fB\-ticklength \fIpixels\fR -Sets the length of major and minor ticks (minor ticks are half the -length of major ticks). If \fIpixels\fR is less than zero, the axis -will be inverted with ticks drawn pointing towards the plot. The -default is \f(CW0.1i\fR. -.TP -\fB\-title \fItext\fR -Sets the title of the axis. If \fItext\fR is -\f(CW""\fR, no axis title will be displayed. -.TP -\fB\-titlecolor \fIcolor\fR -Sets the color of the axis title. The default is \f(CWblack\fR. -.TP -\fB\-titlefont \fIfontName\fR -Specifies the font for axis title. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-14-140-*\fR. -.PP -Axis configuration options may be also be set by the \fBoption\fR -command. The resource class is \f(CWAxis\fR. The resource names -are the names of the axes (such as \f(CWx\fR or \f(CWx2\fR). -.CS -option add *Barchart.Axis.Color blue -option add *Barchart.x.LogScale true -option add *Barchart.x2.LogScale false -.CE -.RE -.TP -\fIpathName \fBaxis \fBcreate \fIaxisName \fR?\fIoption value\fR?... -Creates a new axis by the name \fIaxisName\fR. No axis by the same -name can already exist. \fIOption\fR and \fIvalue\fR are described -in above in the axis \fBconfigure\fR operation. -.TP -\fIpathName \fBaxis \fBdelete \fR?\fIaxisName\fR?... -Deletes the named axes. An axis is not really -deleted until it is not longer in use, so it's safe to delete -axes mapped to elements. -.TP -\fIpathName \fBaxis invtransform \fIaxisName value\fR -Performs the inverse transformation, changing the screen-coordinate -\fIvalue\fR to a graph-coordinate, mapping the value mapped to -\fIaxisName\fR. Returns the graph-coordinate. -.TP -\fIpathName \fBaxis limits \fIaxisName\fR -Returns a list of the minimum and maximum limits for \fIaxisName\fR. The order -of the list is \f(CWmin max\fR. -.TP -\fIpathName \fBaxis names \fR?\fIpattern\fR?... -Returns a list of axes matching zero or more patterns. If no -\fIpattern\fR argument is give, the names of all axes are returned. -.TP -\fIpathName \fBaxis transform \fIaxisName value\fR -Transforms the coordinate \fIvalue\fR to a screen-coordinate by mapping -the it to \fIaxisName\fR. Returns the transformed screen-coordinate. -.PP -Only four axes can be displayed simultaneously. By default, they are -\f(CWx\fR, \f(CWy\fR, \f(CWx2\fR, and \f(CWy2\fR. You can swap in a different -axis with \fBuse\fR operation of the special axis components: -\fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR. -.CS -\&.g create axis temp -\&.g create axis time -\&... -\&.g xaxis use temp -\&.g yaxis use time -.CE -Only the axes specified for use are displayed on the screen. -.PP -The \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR -components operate on an axis location rather than a specific axis -like the more general \fBaxis\fR component does. The \fBxaxis\fR -component manages the X-axis located in the bottom margin (whatever -axis that happens to be). Likewise, \fByaxis\fR uses the Y-axis in -the left margin, \fBx2axis\fR the top X-axis, and \fBy2axis\fR the -right Y-axis. -.PP -They implicitly control the axis that is currently using to that -location. By default, \fBxaxis\fR uses the \f(CWx\fR axis, \fByaxis\fR -uses \f(CWy\fR, \fBx2axis\fR uses \f(CWx2\fR, and \fBy2axis\fR uses -\f(CWy2\fR. These components can be more convenient to use than always -determining what axes are current being displayed by the graph. -.PP -The following operations are available for axes. They mirror exactly -the operations of the \fBaxis\fR component. The \fIaxis\fR argument -must be \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, or \fBy2axis\fR. -.TP -\fIpathName \fIaxis \fBcget \fIoption\fR -.TP -\fIpathName \fIaxis \fBconfigure \fR?\fIoption value\fR?... -.TP -\fIpathName \fIaxis\fB invtransform \fIvalue\fR -.TP -\fIpathName \fIaxis \fBlimits\fR -.TP -\fIpathName \fIaxis\fB transform \fIvalue\fR -.TP -\fIpathName \fIaxis\fB use \fR?\fIaxisName\fR? -Designates the axis \fIaxisName\fR is to be displayed at this -location. \fIAxisName\fR can not be already in use at another location. -This command returns the name of the axis currently using this location. -.SS "CROSSHAIRS COMPONENT" -Cross hairs consist of two intersecting lines (one vertical and one horizontal) -drawn completely across the plotting area. They are used to position -the mouse in relation to the coordinate axes. Cross hairs differ from line -markers in that they are implemented using XOR drawing primitives. -This means that they can be quickly drawn and erased without redrawing -the entire widget. -.PP -The following operations are available for cross hairs: -.TP -\fIpathName \fBcrosshairs cget \fIoption\fR -Returns the current value of the cross hairs configuration option -given by \fIoption\fR. \fIOption\fR may be any option -described below for the cross hairs \fBconfigure\fR operation. -.TP -\fIpathName \fBcrosshairs configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options of the cross hairs. If -\fIoption\fR isn't specified, a list describing all the current -options for the cross hairs is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the cross hairs option \fIoption\fR is set to -\fIvalue\fR. -The following options are available for cross hairs. -.RS -.TP -\fB\-color \fIcolor\fR -Sets the color of the cross hairs. The default is \f(CWblack\fR. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the cross hairs. \fIDashList\fR is a list of up -to 11 numbers that alternately represent the lengths of the dashes -and gaps on the cross hair lines. Each number must be between 1 and -255. If \fIdashList\fR is \f(CW""\fR, the cross hairs will be solid -lines. -.TP -\fB\-hide \fIboolean\fR -Indicates whether cross hairs are drawn. If \fIboolean\fR is true, -cross hairs are not drawn. The default is \f(CWyes\fR. -.TP -\fB\-linewidth \fIpixels\fR -Set the width of the cross hair lines. The default is \f(CW1\fR. -.TP -\fB\-position \fIpos\fR -Specifies the screen position where the cross hairs intersect. -\fIPos\fR must be in the form "\fI@x,y\fR", where \fIx\fR and \fIy\fR -are the window coordinates of the intersection. -.PP -Cross hairs configuration options may be also be set by the -\fBoption\fR command. The resource name and class are -\f(CWcrosshairs\fR and \f(CWCrosshairs\fR respectively. -.CS -option add *Barchart.Crosshairs.LineWidth 2 -option add *Barchart.Crosshairs.Color red -.CE -.RE -.TP -\fIpathName \fBcrosshairs off\fR -Turns off the cross hairs. -.TP -\fIpathName \fBcrosshairs on\fR -Turns on the display of the cross hairs. -.TP -\fIpathName \fBcrosshairs toggle\fR -Toggles the current state of the cross hairs, alternately mapping and -unmapping the cross hairs. -.SH "ELEMENTS" -A data element represents a set of data. It contains x and y vectors -which are the coordinates of the data points. Elements are displayed -as bars where the length of the bar is proportional to the ordinate of -the data point. Elements also control the appearance of the data, -such as the color, stipple, relief, etc. -.PP -When new data elements are created, they are automatically added to a -list of displayed elements. The display list controls what elements -are drawn and in what order. -.PP -The following operations are available for elements. -.TP -\fIpathName \fBelement activate \fIelemName \fR?\fIindex\fR?... -Specifies the data points of element \fIelemName\fR to be drawn -using active foreground and background colors. \fIElemName\fR is the -name of the element and \fIindex\fR is a number representing the index -of the data point. If no indices are present then all data points -become active. -.TP -\fIpathName \fBelement bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for an element with this -tag, \fIcommand\fR will be invoked. The syntax is similar to the -\fBbind\fR command except that it operates on graph elements, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBelement cget \fIelemName \fIoption\fR -Returns the current value of the element configuration option given by -\fIoption\fR. \fIOption\fR may be any of the options described below -for the element \fBconfigure\fR operation. -.TP -\fIpathName \fBelement closest \fIx y\fR ?\fIoption value\fR?... ?\fIelemName\fR?... -Finds the data point representing the bar closest to the window -coordinates \fIx\fR and \fIy\fR in the element \fIelemName\fR. -\fIElemName\fR is the name of an element, which must be currently displayed. -If no elements are specified, then all displayed elements are searched. It -returns a key-value list containing the name of the closest element, -the index of its closest point, and the graph-coordinates of the -point. If no data point within the threshold distance can be found, -\f(CW""\fR is returned. The following \fIoption\fR-\fIvalue\fR pairs -are available. -.RS -.TP -\fB\-halo \fIpixels\fR -Specifies a threshold distance where selected data points are ignored. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -If this option isn't specified, then it defaults to the value of the -\fBbarchart\fR's \fB\-halo\fR option. -.RE -.TP -\fIpathName \fBelement configure \fIelemName \fR?\fIelemName\fR... ?\fIoption value\fR?... -Queries or modifies the configuration options for elements. Several -elements can be modified at the same time. If \fIoption\fR isn't -specified, a list describing all the current options for -\fIelemName\fR is returned. If \fIoption\fR is specified, but not -\fIvalue\fR, then a list describing the option \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the element option \fIoption\fR is set -to \fIvalue\fR. The following options are valid for elements. -.RS -.TP -\fB\-activepen \fIpenName\fR -Specifies pen to use to draw active element. If \fIpenName\fR is -\f(CW""\fR, no active elements will be drawn. The default is -\f(CWactiveLine\fR. -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for the element. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events for elements. Each tag in the list matching the current event -sequence will have its Tcl command executed. Implicitly the name of -the element is always the first tag in the list. The default value is -\f(CWall\fR. -.TP -\fB\-background \fIcolor\fR -Sets the the color of the border around each bar. The default is -\f(CWwhite\fR. -.TP -\fB\-barwidth \fIvalue\fR -Specifies the width the bars drawn for the element. \fIValue\fR is -the width in X-coordinates. If this option isn't -specified, the width of each bar is the value of the widget's -\fB\-barwidth\fR option. -.TP -\fB\-baseline \fIvalue\fR -Specifies the baseline of the bar segments. This affects how bars are -drawn since bars are drawn from their respective y-coordinate the -baseline. By default the baseline is \f(CW0.0\fR. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the border width of the 3-D border drawn around the outside of -each bar. The \fB\-relief\fR option determines if such a border is -drawn. \fIPixels\fR must be a valid screen distance like \f(CW2\fR or -\f(CW0.25i\fR. The default is \f(CW2\fR. -.TP -\fB\-data \fIcoordList\fR -Specifies the X\-Y coordinates of the data. \fICoordList\fR is a -list of numeric expressions representing the X\-Y coordinate pairs -of each data point. -.TP -\fB\-foreground \fIcolor\fR -Sets the color of the interior of the bars. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the element is displayed. The default is \f(CWno\fR. -.TP -\fB\-label \fItext\fR -Sets the element's label in the legend. If \fItext\fR -is \f(CW""\fR, the element will have no entry in the legend. -The default label is the element's name. -.TP -\fB\-mapx \fIxAxis\fR -Selects the X\-axis to map the element's X\-coordinates onto. -\fIXAxis\fR must be the name of an axis. The default is \f(CWx\fR. -.TP -\fB\-mapy \fIyAxis\fR -Selects the Y\-axis to map the element's Y\-coordinates onto. -\fIYAxis\fR must be the name of an axis. The default is \f(CWy\fR. -.TP -\fB\-relief \fIstring\fR -Specifies the 3-D effect desired for bars. \fIRelief\fR indicates how -the interior of the bar should appear relative to the surface of the -chart; for example, \f(CWraised\fR means the bar should appear to -protrude from the surface of the plotting area. The default is -\f(CWraised\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies a stipple pattern with which to draw the bars. If -\fIbitmap\fR is \f(CW""\fR, then the bar is drawn in a solid fashion. -.TP -\fB\-xdata \fIxVector\fR -Specifies the x-coordinate vector of the data. -\fIXVector\fR is the name of a BLT vector or a -list of numeric expressions. -.TP -\fB\-ydata \fIyVector\fR -Specifies the y-coordinate vector of the data. -\fIYVector\fR is the name of a BLT vector or a list of -numeric expressions. -.PP -Element configuration options may also be set by the -\fBoption\fR command. The resource names in the option database -are prefixed by \f(CWelem\fR. -.CS -option add *Barchart.Element.background blue -.CE -.RE -.TP -\fIpathName \fBelement create \fIelemName\fR ?\fIoption value\fR?... -Creates a new element \fIelemName\fR. Element -names must be unique, so an element \fIelemName\fR may not already -exist. If additional arguments are present, they specify any of the -element options valid for element \fBconfigure\fR operation. -.TP -\fIpathName \fBelement deactivate \fIpattern\fR... -Deactivates all the elements matching \fIpattern\fR for the graph. -Elements whose names match any of the patterns given are redrawn -using their normal colors. -.TP -\fIpathName \fBelement delete\fR ?\fIpattern\fR?... -Deletes all the elements matching \fIpattern\fR for the graph. -Elements whose names match any of the patterns given are deleted. -The graph will be redrawn without the deleted elements. -.TP -\fIpathName \fBelement exists \fIelemName\fR -Returns \f(CW1\fR if an element \fIelemName\fR currently exists and -\f(CW0\fR otherwise. -.TP -\fIpathName \fBelement names \fR?\fIpattern\fR?... -Returns the elements matching one or more pattern. If no -\fIpattern\fR is given, the names of all elements is returned. -.TP -\fIpathName \fBelement show\fR ?\fInameList\fR? -Queries or modifies the element display list. The element display -list designates the elements drawn and in what -order. \fINameList\fR is a list of elements to be displayed in the -order they are named. If there is no \fInameList\fR argument, -the current display list is returned. -.TP -\fIpathName \fBelement type\fR \fIelemName\fR -Returns the type of \fIelemName\fR. -If the element is a bar element, the commands returns the string -\f(CW"bar"\fR, otherwise it returns \f(CW"line"\fR. -.CE -.SS "GRID COMPONENT" -Grid lines extend from the major and minor ticks of each axis -horizontally or vertically across the plotting area. The following -operations are available for grid lines. -.TP -\fIpathName \fBgrid cget \fIoption\fR -Returns the current value of the grid line configuration option given by -\fIoption\fR. \fIOption\fR may be any option described below -for the grid \fBconfigure\fR operation. -.TP -\fIpathName \fBgrid configure\fR ?\fIoption value\fR?... -Queries or modifies the configuration options for grid lines. If -\fIoption\fR isn't specified, a list describing all the current -grid options for \fIpathName\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the grid line option \fIoption\fR is set to -\fIvalue\fR. The following options are valid for grid lines. -.RS -.TP -\fB\-color \fIcolor\fR -Sets the color of the grid lines. The default is \f(CWblack\fR. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the grid lines. \fIDashList\fR is a list of up -to 11 numbers that alternately represent the lengths of the dashes -and gaps on the grid lines. Each number must be between 1 and 255. -If \fIdashList\fR is \f(CW""\fR, the grid will be solid lines. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the grid should be drawn. If \fIboolean\fR -is true, grid lines are not shown. The default is \f(CWyes\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of grid lines. The default width is \f(CW1\fR. -.TP -\fB\-mapx \fIxAxis\fR -Specifies the X\-axis to display grid lines. \fIXAxis\fR -must be the name of an axis or \f(CW""\fR for no grid lines. -The default is \f(CW""\fR. -.TP -\fB\-mapy \fIyAxis\fR -Specifies the Y\-axis to display grid lines. \fIYAxis\fR -must be the name of an axis or \f(CW""\fR for no grid lines. -The default is \f(CWy\fR. -.TP -\fB\-minor \fIboolean\fR -Indicates whether the grid lines should be drawn for minor ticks. -If \fIboolean\fR is true, the lines will appear at -minor tick intervals. The default is \f(CW1\fR. -.PP -Grid configuration options may also be set by the -\fBoption\fR command. The resource name and class are \f(CWgrid\fR and -\f(CWGrid\fR respectively. -.CS -option add *Barchart.grid.LineWidth 2 -option add *Barchart.Grid.Color black -.CE -.RE -.TP -\fIpathName \fBgrid off\fR -Turns off the display the grid lines. -.TP -\fIpathName \fBgrid on\fR -Turns on the display the grid lines. -.TP -\fIpathName \fBgrid toggle\fR -Toggles the display of the grid. -.SS "LEGEND COMPONENT" -The legend displays a list of the data elements. Each entry consists -of the element's symbol and label. The legend can appear in any -margin (the default location is in the right margin). It -can also be positioned anywhere within the plotting area. -.PP -The following operations are valid for the legend. -.TP -\fIpathName \fBlegend activate \fIpattern\fR... -Selects legend entries to be drawn using the active legend colors and relief. -All entries whose element names match \fIpattern\fR are selected. To -be selected, the element name must match only one \fIpattern\fR. -.TP -\fIpathName \fBlegend bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for a legend entry with this -tag, \fIcommand\fR will be invoked. Implicitly the element names -in the entry are tags. The syntax is similar to the -\fBbind\fR command except that it operates on legend entries, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBlegend cget \fIoption\fR -Returns the current value of a legend configuration option. -\fIOption\fR may be any option described below in the -legend \fBconfigure\fR operation. -.TP -\fIpathName \fBlegend configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options for the legend. If -\fIoption\fR isn't specified, a list describing the current -legend options for \fIpathName\fR is returned. If \fIoption\fR is -specified, but not \fIvalue\fR, then a list describing \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the legend option \fIoption\fR is set -to \fIvalue\fR. The following options are valid for the legend. -.RS -.TP -\fB\-activebackground \fIcolor\fR -Sets the background color for active legend entries. All legend -entries marked active (see the legend \fBactivate\fR operation) are -drawn using this background color. -.TP -\fB\-activeborderwidth \fIpixels\fR -Sets the width of the 3-D border around the outside edge of the active legend -entries. The default is \f(CW2\fR. -.TP -\fB\-activeforeground \fIcolor\fR -Sets the foreground color for active legend entries. All legend -entries marked as active (see the legend \fBactivate\fR operation) are -drawn using this foreground color. -.TP -\fB\-activerelief \fIrelief\fR -Specifies the 3-D effect desired for active legend entries. -\fIRelief\fR denotes how the interior of the entry should appear -relative to the legend; for example, \f(CWraised\fR means the entry -should appear to protrude from the legend, relative to the surface of -the legend. The default is \f(CWflat\fR. -.TP -\fB\-anchor \fIanchor\fR -Tells how to position the legend relative to the positioning point for -the legend. This is dependent on the value of the \fB\-position\fR -option. The default is \f(CWcenter\fR. -.RS -.TP 1.25i -\f(CWleft\fR or \f(CWright\fR -The anchor describes how to position the legend vertically. -.TP -\f(CWtop\fR or \f(CWbottom\fR -The anchor describes how to position the legend horizontally. -.TP -\f(CW@x,y\fR -The anchor specifies how to position the legend relative to the -positioning point. For example, if \fIanchor\fR is \f(CWcenter\fR then -the legend is centered on the point; if \fIanchor\fR is \f(CWn\fR then -the legend will be drawn such that the top center point of the -rectangular region occupied by the legend will be at the positioning -point. -.TP -\f(CWplotarea\fR -The anchor specifies how to position the legend relative to the -plotting area. For example, if \fIanchor\fR is \f(CWcenter\fR then the -legend is centered in the plotting area; if \fIanchor\fR is \f(CWne\fR -then the legend will be drawn such that occupies the upper right -corner of the plotting area. -.RE -.TP -\fB\-background \fIcolor\fR -Sets the background color of the legend. If \fIcolor\fR is \f(CW""\fR, -the legend background with be transparent. -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for legend entries. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events for legend entries. Each tag in the list matching the current -event sequence will have its Tcl command executed. The default value -is \f(CWall\fR. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the width of the 3-D border around the outside edge of the legend (if -such border is being drawn; the \fBrelief\fR option determines this). -The default is \f(CW2\fR pixels. -.TP -\fB\-font \fIfontName\fR -\fIFontName\fR specifies a font to use when drawing the labels of each -element into the legend. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-12-120-*\fR. -.TP -\fB\-foreground \fIcolor\fR -Sets the foreground color of the text drawn for the element's label. -The default is \f(CWblack\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the legend should be displayed. If \fIboolean\fR is -true, the legend will not be draw. The default is \f(CWno\fR. -.TP -\fB\-ipadx \fIpad\fR -Sets the amount of internal padding to be added to the width of each -legend entry. \fIPad\fR can be a list of one or two screen distances. If -\fIpad\fR has two elements, the left side of the legend entry is -padded by the first distance and the right side by the second. If -\fIpad\fR is just one distance, both the left and right sides are padded -evenly. The default is \f(CW2\fR. -.TP -\fB\-ipady \fIpad\fR -Sets an amount of internal padding to be added to the height of each -legend entry. \fIPad\fR can be a list of one or two screen distances. If -\fIpad\fR has two elements, the top of the entry is padded by the -first distance and the bottom by the second. If \fIpad\fR is just -one distance, both the top and bottom of the entry are padded evenly. -The default is \f(CW2\fR. -.TP -\fB\-padx \fIpad\fR -Sets the padding to the left and right exteriors of the legend. -\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR -has two elements, the left side of the legend is padded by the first -distance and the right side by the second. If \fIpad\fR has just one -distance, both the left and right sides are padded evenly. The -default is \f(CW4\fR. -.TP -\fB\-pady \fIpad\fR -Sets the padding above and below the legend. \fIPad\fR can be a list -of one or two screen distances. If \fIpad\fR has two elements, the area above -the legend is padded by the first distance and the area below by the -second. If \fIpad\fR is just one distance, both the top and -bottom areas are padded evenly. The default is \f(CW0\fR. -.TP -\fB\-position \fIpos\fR -Specifies where the legend is drawn. The -\fB\-anchor\fR option also affects where the legend is positioned. If -\fIpos\fR is \f(CWleft\fR, \f(CWleft\fR, \f(CWtop\fR, or \f(CWbottom\fR, the -legend is drawn in the specified margin. If \fIpos\fR is -\f(CWplotarea\fR, then the legend is drawn inside the plotting area at a -particular anchor. If \fIpos\fR is in the form "\fI@x,y\fR", where -\fIx\fR and \fIy\fR are the window coordinates, the legend is drawn in -the plotting area at the specified coordinates. The default is -\f(CWright\fR. -.TP -\fB\-raised \fIboolean\fR -Indicates whether the legend is above or below the data elements. This -matters only if the legend is in the plotting area. If \fIboolean\fR -is true, the legend will be drawn on top of any elements that may -overlap it. The default is \f(CWno\fR. -.TP -\fB\-relief \fIrelief\fR -Specifies the 3-D effect for the border around the legend. -\fIRelief\fR specifies how the interior of the legend should appear -relative to the bar chart; for example, \f(CWraised\fR means the legend -should appear to protrude from the bar chart, relative to the surface of -the bar chart. The default is \f(CWsunken\fR. -.PP -Legend configuration options may also be set by the \fBoption\fR -command. The resource name and class are \f(CWlegend\fR and -\f(CWLegend\fR respectively. -.CS -option add *Barchart.legend.Foreground blue -option add *Barchart.Legend.Relief raised -.CE -.RE -.TP -\fIpathName \fBlegend deactivate \fIpattern\fR... -Selects legend entries to be drawn using the normal legend colors and -relief. All entries whose element names match \fIpattern\fR are -selected. To be selected, the element name must match only one -\fIpattern\fR. -.TP -\fIpathName \fBlegend get \fIpos\fR -Returns the name of the element whose entry is at the screen position -\fIpos\fR in the legend. \fIPos\fR must be in the form "\fI@x,y\fR", -where \fIx\fR and \fIy\fR are window coordinates. If the given -coordinates do not lie over a legend entry, \f(CW""\fR is returned. -.SS "PEN COMPONENTS" -Pens define attributes for elements. -Pens mirror the configuration options of data elements that pertain to -how symbols and lines are drawn. Data elements use pens to determine -how they are drawn. A data element may use several pens at once. In -this case, the pen used for a particular data point is determined from -each element's weight vector (see the element's \fB\-weight\fR and -\fB\-style\fR options). -.PP -One pen, called \f(CWactiveBar\fR, is automatically created. -It's used as the default active pen for elements. So you can change -the active attributes for all elements by simply reconfiguring this -pen. -.CS -\&.g pen configure "activeBar" -fg green -bg green4 -.CE -You can create and use several pens. To create a pen, invoke -the pen component and its create operation. -.CS -\&.g pen create myPen -.CE -You map pens to a data element using either the element's -\fB\-pen\fR or \fB\-activepen\fR options. -.CS -\&.g element create "e1" -xdata $x -ydata $tempData \\ - -pen myPen -.CE -An element can use several pens at once. This is done by specifying -the name of the pen in the element's style list (see the -\fB\-styles\fR option). -.CS -\&.g element configure "e1" -styles { myPen 2.0 3.0 } -.CE -This says that any data point with a weight between 2.0 and 3.0 -is to be drawn using the pen \f(CWmyPen\fR. All other points -are drawn with the element's default attributes. -.PP -The following operations are available for pen components. -.PP -.TP -\fIpathName \fBpen \fBcget \fIpenName \fIoption\fR -Returns the current value of the option given by \fIoption\fR for -\fIpenName\fR. \fIOption\fR may be any option described below -for the pen \fBconfigure\fR operation. -.TP -\fIpathName \fBpen \fBconfigure \fIpenName \fR?\fIpenName\fR... ?\fIoption value\fR?... -Queries or modifies the configuration options of -\fIpenName\fR. Several pens can be modified at once. If \fIoption\fR -isn't specified, a list describing the current options for -\fIpenName\fR is returned. If \fIoption\fR is specified, but not -\fIvalue\fR, then a list describing \fIoption\fR is returned. If one -or more \fIoption\fR and \fIvalue\fR pairs are specified, then for -each pair, the pen option \fIoption\fR is set to \fIvalue\fR. The -following options are valid for pens. -.RS -.TP -\fB\-background \fIcolor\fR -Sets the the color of the border around each bar. The default is -\f(CWwhite\fR. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the border width of the 3-D border drawn around the outside of -each bar. The \fB\-relief\fR option determines if such a border is -drawn. \fIPixels\fR must be a valid screen distance like \f(CW2\fR or -\f(CW0.25i\fR. The default is \f(CW2\fR. -.TP -\fB\-foreground \fIcolor\fR -Sets the color of the interior of the bars. -.TP -\fB\-relief \fIstring\fR -Specifies the 3-D effect desired for bars. \fIRelief\fR indicates how -the interior of the bar should appear relative to the surface of the -chart; for example, \f(CWraised\fR means the bar should appear to -protrude from the bar chart, relative to the surface of the plotting -area. The default is \f(CWraised\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies a stipple pattern with which to draw the bars. If -\fIbitmap\fR is \f(CW""\fR, then the bar is drawn in a solid fashion. -.TP -\fB\-type \fIelemType\fR -Specifies the type of element the pen is to be used with. -This option should only be employed when creating the pen. This -is for those that wish to mix different types of elements (bars and -lines) on the same graph. The default type is "bar". -.PP -Pen configuration options may be also be set by the \fBoption\fR -command. The resource class is \f(CWPen\fR. The resource names -are the names of the pens. -.CS -option add *Barchart.Pen.Foreground blue -option add *Barchart.activeBar.foreground green -.CE -.RE -.TP -\fIpathName \fBpen \fBcreate \fIpenName \fR?\fIoption value\fR?... -Creates a new pen by the name \fIpenName\fR. No pen by the same -name can already exist. \fIOption\fR and \fIvalue\fR are described -in above in the pen \fBconfigure\fR operation. -.TP -\fIpathName \fBpen \fBdelete \fR?\fIpenName\fR?... -Deletes the named pens. A pen is not really -deleted until it is not longer in use, so it's safe to delete -pens mapped to elements. -.TP -\fIpathName \fBpen names \fR?\fIpattern\fR?... -Returns a list of pens matching zero or more patterns. If no -\fIpattern\fR argument is give, the names of all pens are returned. -.SS "POSTSCRIPT COMPONENT" -The barchart can generate encapsulated PostScript output. There -are several configuration options you can specify to control how the -plot will be generated. You can change the page dimensions and -borders. The plot itself can be scaled, centered, or rotated to -landscape. The PostScript output can be written directly to a file or -returned through the interpreter. -.PP -The following postscript operations are available. -.TP -\fIpathName \fBpostscript cget \fIoption\fR -Returns the current value of the postscript option given by -\fIoption\fR. \fIOption\fR may be any option described -below for the postscript \fBconfigure\fR operation. -.TP -\fIpathName \fBpostscript configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options for PostScript -generation. If \fIoption\fR isn't specified, a list describing -the current postscript options for \fIpathName\fR is returned. If -\fIoption\fR is specified, but not \fIvalue\fR, then a list describing -\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR -pairs are specified, then for each pair, the postscript option -\fIoption\fR is set to \fIvalue\fR. The following postscript options -are available. -.RS -.TP -\fB\-center \fIboolean\fR -Indicates whether the plot should be centered on the PostScript page. If -\fIboolean\fR is false, the plot will be placed in the upper left -corner of the page. The default is \f(CW1\fR. -.TP -\fB\-colormap \fIvarName\fR -\fIVarName\fR must be the name of a global array variable that -specifies a color mapping from the X color name to PostScript. Each -element of \fIvarName\fR must consist of PostScript code to set a -particular color value (e.g. ``\f(CW1.0 1.0 0.0 setrgbcolor\fR''). When -generating color information in PostScript, the array variable \fIvarName\fR -is checked if an element of the name as the color exists. If so, it uses -its value as the PostScript -command to set the color. If this option hasn't been specified, or if -there isn't an entry in \fIvarName\fR for a given color, then it uses -the red, green, and blue intensities from the X color. -.TP -\fB\-colormode \fImode\fR -Specifies how to output color information. \fIMode\fR must be either -\f(CWcolor\fR (for full color output), \f(CWgray\fR (convert all colors to -their gray-scale equivalents) or \f(CWmono\fR (convert foreground colors -to black and background colors to white). The default mode is -\f(CWcolor\fR. -.TP -\fB\-fontmap \fIvarName\fR -\fIVarName\fR must be the name of a global array variable that -specifies a font mapping from the X font name to PostScript. Each -element of \fIvarName\fR must consist of a Tcl list with one or two -elements; the name and point size of a PostScript font. -When outputting PostScript commands for a particular font, the array -variable \fIvarName\fR is checked to see if an element by the -specified font exists. If there is such an element, then the font -information contained in that element is used in the PostScript -output. (If the point size is omitted from the list, the point size -of the X font is used). Otherwise the X font is examined in an -attempt to guess what PostScript font to use. This works only for -fonts whose foundry property is \fIAdobe\fR (such as Times, Helvetica, -Courier, etc.). If all of this fails then the font defaults to -\f(CWHelvetica-Bold\fR. -.TP -\fB\-decorations \fIboolean\fR -Indicates whether PostScript commands to generate color backgrounds and 3-D -borders will be output. If \fIboolean\fR is false, the graph will -background will be white and no 3-D borders will be generated. The -default is \f(CW1\fR. -.TP -\fB\-height \fIpixels\fR -Sets the height of the plot. This lets you print the bar chart with a -height different from the one drawn on the screen. If -\fIpixels\fR is 0, the height is the same as the widget's height. -The default is \f(CW0\fR. -.TP -\fB\-landscape \fIboolean\fR -If \fIboolean\fR is true, this specifies the printed area is to be -rotated 90 degrees. In non-rotated output the X\-axis of the printed -area runs along the short dimension of the page (``portrait'' -orientation); in rotated output the X\-axis runs along the long -dimension of the page (``landscape'' orientation). Defaults to -\f(CW0\fR. -.TP -\fB\-maxpect \fIboolean\fR -Indicates to scale the plot so that it fills the PostScript page. -The aspect ratio of the barchart is still retained. The default is -\f(CW0\fR. -.TP -\fB\-padx \fIpad\fR -Sets the horizontal padding for the left and right page borders. The -borders are exterior to the plot. \fIPad\fR can be a list of one or -two screen distances. If \fIpad\fR has two elements, the left border is padded -by the first distance and the right border by the second. If -\fIpad\fR has just one distance, both the left and right borders are -padded evenly. The default is \f(CW1i\fR. -.TP -\fB\-pady \fIpad\fR -Sets the vertical padding for the top and bottom page borders. The -borders are exterior to the plot. \fIPad\fR can be a list of one or -two screen distances. If \fIpad\fR has two elements, the top border is padded -by the first distance and the bottom border by the second. If -\fIpad\fR has just one distance, both the top and bottom borders are -padded evenly. The default is \f(CW1i\fR. -.TP -\fB\-paperheight \fIpixels\fR -Sets the height of the postscript page. This can be used to select -between different page sizes (letter, A4, etc). The default height is -\f(CW11.0i\fR. -.TP -\fB\-paperwidth \fIpixels\fR -Sets the width of the postscript page. This can be used to select -between different page sizes (letter, A4, etc). The default width is -\f(CW8.5i\fR. -.TP -\fB\-width \fIpixels\fR -Sets the width of the plot. This lets you generate a plot -of a width different from that of the widget. If \fIpixels\fR -is 0, the width is the same as the widget's width. The default is -\f(CW0\fR. -.PP -Postscript configuration options may be also be set by the -\fBoption\fR command. The resource name and class are -\f(CWpostscript\fR and \f(CWPostscript\fR respectively. -.CS -option add *Barchart.postscript.Decorations false -option add *Barchart.Postscript.Landscape true -.CE -.RE -.TP -\fIpathName \fBpostscript output \fR?\fIfileName\fR? ?\fIoption value\fR?... -Outputs a file of encapsulated PostScript. If a -\fIfileName\fR argument isn't present, the command returns the -PostScript. If any \fIoption-value\fR pairs are present, they set -configuration options controlling how the PostScript is generated. -\fIOption\fR and \fIvalue\fR can be anything accepted by the -postscript \fBconfigure\fR operation above. -.SS "MARKER COMPONENTS" -Markers are simple drawing procedures used to annotate or highlight -areas of the graph. Markers have various types: text strings, -bitmaps, images, connected lines, windows, or polygons. They can be -associated with a particular element, so that when the element is -hidden or un-hidden, so is the marker. By default, markers are the -last items drawn, so that data elements will appear in -behind them. You can change this by configuring the \fB\-under\fR -option. -.PP -Markers, in contrast to elements, don't affect the scaling of the -coordinate axes. They can also have \fIelastic\fR coordinates -(specified by \f(CW-Inf\fR and \f(CWInf\fR respectively) that translate -into the minimum or maximum limit of the axis. For example, you can -place a marker so it always remains in the lower left corner of the -plotting area, by using the coordinates \f(CW-Inf\fR,\f(CW-Inf\fR. -.PP -The following operations are available for markers. -.TP -\fIpathName \fBmarker after \fImarkerId\fR ?\fIafterId\fR? -Changes the order of the markers, drawing the first -marker after the second. If no second \fIafterId\fR argument is -specified, the marker is placed at the end of the display list. This -command can be used to control how markers are displayed since markers -are drawn in the order of this display list. -.TP -\fIpathName \fBmarker before \fImarkerId\fR ?\fIbeforeId\fR? -Changes the order of the markers, drawing the first -marker before the second. If no second \fIbeforeId\fR argument is -specified, the marker is placed at the beginning of the display list. -This command can be used to control how markers are displayed since -markers are drawn in the order of this display list. -.TP -\fIpathName \fBmarker bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for a marker with this -tag, \fIcommand\fR will be invoked. The syntax is similar to the -\fBbind\fR command except that it operates on graph markers, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBmarker cget \fIoption\fR -Returns the current value of the marker configuration option given by -\fIoption\fR. \fIOption\fR may be any option described -below in the \fBconfigure\fR operation. -.TP -\fIpathName \fBmarker configure \fImarkerId\fR ?\fIoption value\fR?... -Queries or modifies the configuration options for markers. If -\fIoption\fR isn't specified, a list describing the current -options for \fImarkerId\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the marker option \fIoption\fR is set to \fIvalue\fR. -.sp -The following options are valid for all markers. -Each type of marker also has its own type-specific options. -They are described in the sections below. -.RS -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for the marker. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events for markers are handled. Each tag in the list matching the -current event sequence will have its Tcl command executed. Implicitly -the name of the marker is always the first tag in the list. -The default value is \f(CWall\fR. -.TP -\fB\-coords \fIcoordList\fR -Specifies the coordinates of the marker. \fICoordList\fR is -a list of graph-coordinates. The number of coordinates required -is dependent on the type of marker. Text, image, and window markers -need only two coordinates (an X\-Y coordinate). Bitmap markers -can take either two or four coordinates (if four, they represent the -corners of the bitmap). Line markers -need at least four coordinates, polygons at least six. -If \fIcoordList\fR is \f(CW""\fR, the marker will not be displayed. -The default is \f(CW""\fR. -.TP -\fB\-element \fIelemName\fR -Links the marker with the element \fIelemName\fR. The marker is -drawn only if the element is also currently displayed (see the -element's \fBshow\fR operation). If \fIelemName\fR is \f(CW""\fR, the -marker is always drawn. The default is \f(CW""\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the marker is drawn. If \fIboolean\fR is true, -the marker is not drawn. The default is \f(CWno\fR. -.TP -\fB\-mapx \fIxAxis\fR -Specifies the X\-axis to map the marker's X\-coordinates onto. -\fIXAxis\fR must the name of an axis. The default is \f(CWx\fR. -.TP -\fB\-mapy \fIyAxis\fR -Specifies the Y\-axis to map the marker's Y\-coordinates onto. -\fIYAxis\fR must the name of an axis. The default is \f(CWy\fR. -.TP -\fB\-name \fImarkerId\fR -Changes the identifier for the marker. The identifier \fImarkerId\fR -can not already be used by another marker. If this option -isn't specified, the marker's name is uniquely generated. -.TP -\fB\-under \fIboolean\fR -Indicates whether the marker is drawn below/above data -elements. If \fIboolean\fR is true, the marker is be drawn -underneath the data elements. Otherwise, the marker is -drawn on top of the element. The default is \f(CW0\fR. -.TP -\fB\-xoffset \fIpixels\fR -Specifies a screen distance to offset the marker horizontally. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -The default is \f(CW0\fR. -.TP -\fB\-yoffset \fIpixels\fR -Specifies a screen distance to offset the markers vertically. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -The default is \f(CW0\fR. -.PP -Marker configuration options may also be set by the \fBoption\fR command. -The resource class is either \f(CWBitmapMarker\fR, \f(CWImageMarker\fR, -\f(CWLineMarker\fR, \f(CWPolygonMarker\fR, \f(CWTextMarker\fR, or \f(CWWindowMarker\fR, -depending on the type of marker. The resource name is the name of the -marker. -.CS -option add *Barchart.TextMarker.Foreground white -option add *Barchart.BitmapMarker.Foreground white -option add *Barchart.m1.Background blue -.CE -.RE -.TP -\fIpathName \fBmarker create \fItype\fR ?\fIoption value\fR?... -Creates a marker of the selected type. \fIType\fR may be either -\f(CWtext\fR, \f(CWline\fR, \f(CWbitmap\fR, \f(CWimage\fR, \f(CWpolygon\fR, or -\f(CWwindow\fR. This command returns the marker identifier, -used as the \fImarkerId\fR argument in the other marker-related -commands. If the \fB\-name\fR option is used, this overrides the -normal marker identifier. If the name provided is already used for -another marker, the new marker will replace the old. -.TP -\fIpathName \fBmarker delete\fR ?\fIname\fR?... -Removes one of more markers. The graph will automatically be redrawn -without the marker.\fR. -.TP -\fIpathName \fBmarker exists \fImarkerId\fR -Returns \f(CW1\fR if the marker \fImarkerId\fR exists and \f(CW0\fR -otherwise. -.TP -\fIpathName \fBmarker names\fR ?\fIpattern\fR? -Returns the names of all the markers that currently exist. If -\fIpattern\fR is supplied, only those markers whose names match it -will be returned. -.TP -\fIpathName \fBmarker type \fImarkerId\fR -Returns the type of the marker given by \fImarkerId\fR, such as -\f(CWline\fR or \f(CWtext\fR. If \fImarkerId\fR is not a valid a marker -identifier, \f(CW""\fR is returned. -.SS "BITMAP MARKERS" -A bitmap marker displays a bitmap. The size of the -bitmap is controlled by the number of coordinates specified. If two -coordinates, they specify the position of the top-left corner of the -bitmap. The bitmap retains its normal width and height. If four -coordinates, the first and second pairs of coordinates represent the -corners of the bitmap. The bitmap will be stretched or reduced as -necessary to fit into the bounding rectangle. -.PP -Bitmap markers are created with the marker's \fBcreate\fR operation in -the form: -.DS -\fIpathName \fBmarker create bitmap \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR pairs, each -sets a configuration options for the marker. These -same \fIoption\fR\-\fIvalue\fR pairs may be used with the marker's -\fBconfigure\fR operation. -.PP -The following options are specific to bitmap markers: -.TP -\fB\-background \fIcolor\fR -Same as the \fB\-fill\fR option. -.TP -\fB\-bitmap \fIbitmap\fR -Specifies the bitmap to be displayed. If \fIbitmap\fR is \f(CW""\fR, -the marker will not be displayed. The default is \f(CW""\fR. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the bitmap. If \fIcolor\fR is the empty -string, no background will be transparent. The default background color is -\f(CW""\fR. -.TP -\fB\-foreground \fIcolor\fR -Same as the \fB\-outline\fR option. -.TP -\fB\-mask \fImask\fR -Specifies a mask for the bitmap to be displayed. This mask is a bitmap -itself, denoting the pixels that are transparent. If \fImask\fR is -\f(CW""\fR, all pixels of the bitmap will be drawn. The default is -\f(CW""\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the foreground color of the bitmap. The default value is \f(CWblack\fR. -.TP -\fB\-rotate \fItheta\fR -Sets the rotation of the bitmap. \fITheta\fR is a real number -representing the angle of rotation in degrees. The marker is first -rotated and then placed according to its anchor position. The default -rotation is \f(CW0.0\fR. -.SS "IMAGE MARKERS" -A image marker displays an image. Image markers are -created with the marker's \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create image \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR operation. -.PP -The following options are specific to image markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the image relative to the -positioning point for the image. For example, if \fIanchor\fR -is \f(CWcenter\fR then the image is centered on the point; if -\fIanchor\fR is \f(CWn\fR then the image will be drawn such that -the top center point of the rectangular region occupied by the -image will be at the positioning point. -This option defaults to \f(CWcenter\fR. -.TP -\fB\-image \fIimage\fR -Specifies the image to be drawn. -If \fIimage\fR is \f(CW""\fR, the marker will not be -drawn. The default is \f(CW""\fR. -.SS "LINE MARKERS" -A line marker displays one or more connected line segments. -Line markers are created with marker's \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create line \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR operation. -.PP -The following options are specific to line markers: -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the line. \fIDashList\fR is a list of up to 11 -numbers that alternately represent the lengths of the dashes and gaps -on the line. Each number must be between 1 and 255. If -\fIdashList\fR is \f(CW""\fR, the marker line will be solid. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the line. This color is used with -striped lines (see the \fB\-dashes\fR option). If \fIcolor\fR is -the empty string, no background color is drawn (the line will be -dashed, not striped). The default background color is \f(CW""\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the lines. -The default width is \f(CW0\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the foreground color of the line. The default value is \f(CWblack\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies a stipple pattern used to draw the line, rather than -a solid line. -\fIBitmap\fR specifies a bitmap to use as the stipple -pattern. If \fIbitmap\fR is \f(CW""\fR, then the -line is drawn in a solid fashion. The default is \f(CW""\fR. -.SS "POLYGON MARKERS" -A polygon marker displays a closed region described as two or more -connected line segments. It is assumed the first and -last points are connected. Polygon markers are created using the -marker \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create polygon \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the \fBmarker configure\fR command to change the marker's -configuration. -The following options are supported for polygon markers: -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the outline of the polygon. \fIDashList\fR is a -list of up to 11 numbers that alternately represent the lengths of -the dashes and gaps on the outline. Each number must be between 1 and -255. If \fIdashList\fR is \f(CW""\fR, the outline will be a solid line. -.TP -\fB\-fill \fIcolor\fR -Sets the fill color of the polygon. If \fIcolor\fR is \f(CW""\fR, then -the interior of the polygon is transparent. -The default is \f(CWwhite\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the outline of the polygon. If \fIpixels\fR is zero, -no outline is drawn. The default is \f(CW0\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color of the outline of the polygon. If the polygon is -stippled (see the \fB\-stipple\fR option), then this represents the -foreground color of the stipple. The default is \f(CWblack\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies that the polygon should be drawn with a stippled pattern -rather than a solid color. \fIBitmap\fR specifies a bitmap to use as -the stipple pattern. If \fIbitmap\fR is \f(CW""\fR, then the polygon is -filled with a solid color (if the \fB\-fill\fR option is set). The -default is \f(CW""\fR. -.SS "TEXT MARKERS" -A text marker displays a string of characters on one or more lines of -text. Embedded newlines cause line breaks. They may be used to -annotate regions of the graph. Text markers are created with the -\fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create text \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR pairs, -each sets a configuration option for the text marker. -These same \fIoption\fR\-\fIvalue\fR pairs may be used with the -marker's \fBconfigure\fR operation. -.PP -The following options are specific to text markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the text relative to the -positioning point for the text. For example, if \fIanchor\fR is -\f(CWcenter\fR then the text is centered on the point; if -\fIanchor\fR is \f(CWn\fR then the text will be drawn such that the -top center point of the rectangular region occupied by the text will -be at the positioning point. This default is \f(CWcenter\fR. -.TP -\fB\-background \fIcolor\fR -Same as the \fB\-fill\fR option. -.TP -\fB\-font \fIfontName\fR -Specifies the font of the text. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-120-*\fR. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the text. If \fIcolor\fR is the empty -string, no background will be transparent. The default background color is -\f(CW""\fR. -.TP -\fB\-foreground \fIcolor\fR -Same as the \fB\-outline\fR option. -.TP -\fB\-justify \fIjustify\fR -Specifies how the text should be justified. This matters only when -the marker contains more than one line of text. \fIJustify\fR must be -\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color of the text. The default value is \f(CWblack\fR. -.TP -\fB\-padx \fIpad\fR -Sets the padding to the left and right exteriors of the text. -\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR -has two elements, the left side of the text is padded by the first -distance and the right side by the second. If \fIpad\fR has just one -distance, both the left and right sides are padded evenly. The -default is \f(CW4\fR. -.TP -\fB\-pady \fIpad\fR -Sets the padding above and below the text. \fIPad\fR can be a list of -one or two screen distances. If \fIpad\fR has two elements, the area above the -text is padded by the first distance and the area below by the second. -If \fIpad\fR is just one distance, both the top and bottom areas -are padded evenly. The default is \f(CW4\fR. -.TP -\fB\-rotate \fItheta\fR -Specifies the number of degrees to rotate the text. \fITheta\fR is a -real number representing the angle of rotation. The marker is first -rotated along its center and is then drawn according to its anchor -position. The default is \f(CW0.0\fR. -.TP -\fB\-text \fItext\fR -Specifies the text of the marker. The exact way the text is -displayed may be affected by other options such as \fB\-anchor\fR or -\fB\-rotate\fR. -.SS "WINDOW MARKERS" -A window marker displays a widget at a given position. -Window markers are created with the marker's \fBcreate\fR operation in -the form: -.DS -\fIpathName \fBmarker create window \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR command. -.PP -The following options are specific to window markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the widget relative to the -positioning point for the widget. For example, if \fIanchor\fR is -\f(CWcenter\fR then the widget is centered on the point; if \fIanchor\fR -is \f(CWn\fR then the widget will be displayed such that the top center -point of the rectangular region occupied by the widget will be at the -positioning point. This option defaults to \f(CWcenter\fR. -.TP -\fB\-height \fIpixels\fR -Specifies the height to assign to the marker's window. If this option -isn't specified, or if it is specified as \f(CW""\fR, then the window is -given whatever height the widget requests internally. -.TP -\fB\-width \fIpixels\fR -Specifies the width to assign to the marker's window. If this option -isn't specified, or if it is specified as \f(CW""\fR, then the window is -given whatever width the widget requests internally. -.TP -\fB\-window \fIpathName\fR -Specifies the widget to be managed by the barchart. \fIPathName\fR must -be a child of the \fBbarchart\fR widget. -.SH "GRAPH COMPONENT BINDINGS" -Specific barchart components, such as elements, markers and legend -entries, can have a command trigger when event occurs in them, much -like canvas items in Tk's canvas widget. Not all event sequences are -valid. The only binding events that may be specified are those -related to the mouse and keyboard (such as \fBEnter\fR, \fBLeave\fR, -\fBButtonPress\fR, \fBMotion\fR, and \fBKeyPress\fR). -.PP -Only one element or marker can be picked during an event. This means, -that if the mouse is directly over both an element and a marker, only -the uppermost component is selected. This isn't true for legend entries. -Both a legend entry and an element (or marker) binding commands -will be invoked if both items are picked. -.PP -It is possible for multiple bindings to match a particular event. -This could occur, for example, if one binding is associated with the -element name and another is associated with one of the element's tags -(see the \fB\-bindtags\fR option). When this occurs, all of the -matching bindings are invoked. A binding associated with the element -name is invoked first, followed by one binding for each of the element's -bindtags. If there are multiple matching bindings for a single tag, -then only the most specific binding is invoked. A continue command -in a binding script terminates that script, and a break command -terminates that script and skips any remaining scripts for the event, -just as for the bind command. -.PP -The \fB\-bindtags\fR option for these components controls addition -tag names which can be matched. Implicitly elements and markers -always have tags matching their names. Setting the value of -the \fB\-bindtags\fR option doesn't change this. -.SH "C LANGUAGE API" -You can manipulate data elements from the C language. There -may be situations where it is too expensive to translate the data -values from ASCII strings. Or you might want to read data in a -special file format. -.PP -Data can manipulated from the C language using BLT vectors. -You specify the X-Y data coordinates of an element as vectors and -manipulate the vector from C. The barchart will be redrawn automatically -after the vectors are updated. -.PP -From Tcl, create the vectors and configure the element to use them. -.CS -vector X Y -\&.g element configure line1 -xdata X -ydata Y -.CE -To set data points from C, you pass the values as arrays of doubles -using the \fBBlt_ResetVector\fR call. The vector is reset with the -new data and at the next idle point (when Tk re-enters its event -loop), the graph will be redrawn automatically. -.CS -#include -#include - -register int i; -Blt_Vector *xVec, *yVec; -double x[50], y[50]; - -/* Get the BLT vectors "X" and "Y" (created above from Tcl) */ -if ((Blt_GetVector(interp, "X", 50, &xVec) != TCL_OK) || - (Blt_GetVector(interp, "Y", 50, &yVec) != TCL_OK)) { - return TCL_ERROR; -} - -for (i = 0; i < 50; i++) { - x[i] = i * 0.02; - y[i] = sin(x[i]); -} - -/* Put the data into BLT vectors */ -if ((Blt_ResetVector(xVec, x, 50, 50, TCL_VOLATILE) != TCL_OK) || - (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) { - return TCL_ERROR; -} -.CE -See the \fBvector\fR manual page for more details. -.SH SPEED TIPS -There may be cases where the bar chart needs to be drawn and updated as -quickly as possible. If drawing speed becomes a big -problem, here are a few tips to speed up displays. -.TP 2 -\(bu -Try to minimize the number of data points. The more data points -looked at, the more work the bar chart must do. -.TP 2 -\(bu -If your data is generated as floating point values, the time required -to convert the data values to and from ASCII strings can be -significant, especially when there any many data points. You can -avoid the redundant string-to-decimal conversions using the C API to -BLT vectors. -.TP 2 -\(bu -Don't stipple or dash the element. Solid bars are much faster. -.TP 2 -\(bu -If you update data elements frequently, try turning off the -widget's \fB\-bufferelements\fR option. When the bar chart is first -displayed, it draws data elements into an internal pixmap. The pixmap -acts as a cache, so that when the bar chart needs to be redrawn again, and -the data elements or coordinate axes haven't changed, the pixmap is -simply copied to the screen. This is especially useful when you are -using markers to highlight points and regions on the bar chart. But if -the bar chart is updated frequently, changing either the element data or -coordinate axes, the buffering becomes redundant. -.SH LIMITATIONS -Auto-scale routines do not use requested min/max limits -as boundaries when the axis is logarithmically scaled. -.PP -The PostScript output generated for polygons with more than 1500 -points may exceed the limits of some printers (See PostScript Language -Reference Manual, page 568). The work-around is to break the polygon -into separate pieces. -.SH KEYWORDS -bar chart, widget diff --git a/tkblt/doc/graph.html b/tkblt/doc/graph.html deleted file mode 100644 index 70f1e6f..0000000 --- a/tkblt/doc/graph.html +++ /dev/null @@ -1,1759 +0,0 @@ - - -
-
-
-
-

SYNOPSIS

-       graph pathName ?option value?...
-
-
-
-

DESCRIPTION

-       The  graph  command  creates  a graph for plotting two-dimensional data
-       (X-Y coordinates). It  has  many  configurable  components:  coordinate
-       axes,  elements,  legend, grid lines, cross hairs, etc.  They allow you
-       to customize the look and feel of the graph.
-
-
-
-

INTRODUCTION

-       The graph command creates a new  window  for  plotting  two-dimensional
-       data  (X-Y coordinates).  Data points are plotted in a rectangular area
-       displayed in the center of the new window.  This is the plotting  area.
-       The  coordinate axes are drawn in the margins around the plotting area.
-       By default, the legend is displayed in the right margin.  The title  is
-       displayed in top margin.
-
-       The  graph  widget  is composed of several components: coordinate axes,
-       data elements, legend, grid, cross hairs, pens, postscript, and annota-
-       tion markers.
-
-       axis      The  graph has four standard axes (x, x2, y, and y2), but you
-                 can create and display any number of axes.  Axes control what
-                 region  of data is displayed and how the data is scaled. Each
-                 axis consists of the axis line, title, major and minor ticks,
-                 and tick labels.  Tick labels display the value at each major
-                 tick.
-
-       crosshairs
-                 Cross hairs are used to position the mouse  pointer  relative
-                 to  the  X  and  Y  coordinate axes. Two perpendicular lines,
-                 intersecting at the current location  of  the  mouse,  extend
-                 across the plotting area to the coordinate axes.
-
-       element   An  element  represents a set of data points. Elements can be
-                 plotted with a symbol at each data point and lines connecting
-                 the  points.  The appearance of the element, such as its sym-
-                 bol, line width, and color is configurable.
-
-       grid      Extends the major and minor ticks of the X-axis and/or Y-axis
-                 across the plotting area.
-
-       legend    The legend displays the name and symbol of each data element.
-                 The legend can be drawn in any  margin  or  in  the  plotting
-                 area.
-
-       marker    Markers  are  used  annotate or highlight areas of the graph.
-                 For example, you could use a polygon marker to fill  an  area
-                 under  a  curve,  or a text marker to label a particular data
-                 point. Markers come in various forms: text strings,  bitmaps,
-                 connected  line  segments, images, polygons, or embedded wid-
-                 gets.
-
-       graph  pathName ?option value?...  The graph command creates a new win-
-       dow pathName and makes it into a graph widget.  At the time  this  com-
-       mand  is  invoked,  there  must  not exist a window named pathName, but
-       pathName's parent must exist.  Additional options may be  specified  on
-       the  command line or in the option database to configure aspects of the
-       graph such as its colors and font.  See the configure  operation  below
-       for the exact details about what option and value pairs are valid.
-
-       If successful, graph returns the path name of the widget.  It also cre-
-       ates a new Tcl command by the same name.  You can use this  command  to
-       invoke  various operations that query or modify the graph.  The general
-       form is: pathName operation ?arg?...  Both operation and its  arguments
-       determine  the exact behavior of the command.  The operations available
-       for the graph are described in the GRAPH OPERATIONS section.
-
-       The command can also be used to access components of the graph.   path-
-       Name component operation ?arg?...  The operation, now located after the
-       name of the component, is the function to be performed on  that  compo-
-       nent. Each component has its own set of operations that manipulate that
-       component.  They will be described below in their own sections.
-
-
-
-

EXAMPLE

-       The graph command creates a new graph.  # Create a new graph.  Plotting
-       area  is black.  graph .g -plotbackground black A new Tcl command .g is
-       also created.  This command can be used to query and modify the  graph.
-       For example, to change the title of the graph to "My Plot", you use the
-       new command and the graph's configure operation.  # Change  the  title.
-       .g configure -title "My Plot" A graph has several components. To access
-       a particular component you use the component's name.  For  example,  to
-       add  data  elements, you use the new command and the element component.
-       # Create a  new  element  named  "line1"  .g  element  create  line1  \
-            -xdata { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } \      -ydata {
-       26.18 50.46 72.85 93.31 111.86 128.47  143.14            155.85  166.60
-       175.38  }  The  element's  X-Y coordinates are specified using lists of
-       numbers.  Alternately, BLT vectors could be used to hold the X-Y  coor-
-       dinates.   # Create two vectors and add them to the graph.  vector xVec
-       yVec xVec set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 }  yVec  set  {
-       26.18  50.46 72.85 93.31 111.86 128.47 143.14 155.85      166.60 175.38
-       } .g element create line1 -xdata xVec  -ydata  yVec  The  advantage  of
-       using  vectors  is that when you modify one, the graph is automatically
-       redrawn to reflect the new values.  # Change the y  coordinate  of  the
-       first  point.   set yVector(0) 25.18 An element named e1 is now created
-       in .b.  It is automatically added to the display list of elements.  You
-       can  use this list to control in what order elements are displayed.  To
-       query or reset the element display list, you  use  the  element's  show
-       operation.   #  Get  the  current display list set elemList [.b element
-       show] # Remove the first element so it won't be displayed.  .b  element
-       show  [lrange $elemList 0 end] The element will be displayed by as many
-       bars as there are data points (in this case there are ten).   The  bars
-       will  be drawn centered at the x-coordinate of the data point.  All the
-       bars will have the same attributes (colors, stipple, etc).   The  width
-       of each bar is by default one unit.  You can change this with using the
-       example, you change the scale of the Y-axis from linear  to  log  using
-       the  axis  component.   #  Y-axis  is  log  scale.  .g axis configure y
-       -logscale yes One important way axes are used is to zoom in on  a  par-
-       ticular  data  region.   Zooming  is done by simply specifying new axis
-       limits using the -min and -max configuration options.  .g axis  config-
-       ure  x  -min  1.0  -max 1.5 .g axis configure y -min 12.0 -max 55.15 To
-       zoom interactively, you link the axis configure  operations  with  some
-       user  interaction  (such  as pressing the mouse button), using the bind
-       command.  To convert between screen  and  graph  coordinates,  use  the
-       invtransform  operation.   # Click the button to set a new minimum bind
-       .g <ButtonPress-1> {
-           %W axis configure x -min [%W axis invtransform x %x]
-           %W axis configure x -min [%W axis invtransform x %y] } By  default,
-       the  limits of the axis are determined from data values.  To reset back
-       to the default limits, set the -min  and  -max  options  to  the  empty
-       value.   # Reset the axes to autoscale again.  .g axis configure x -min
-       {} -max {} .g axis configure y -min {} -max {} By default,  the  legend
-       is  drawn  in the right margin.  You can change this or any legend con-
-       figuration options using the legend component.  # Configure the  legend
-       font,  color,  and  relief  .g  legend configure -position left -relief
-       raised \      -font fixed -fg blue To prevent  the  legend  from  being
-       displayed,  turn  on the -hide option.  # Don't display the legend.  .g
-       legend configure -hide yes The graph widget has simple  drawing  proce-
-       dures  called  markers.  They can be used to highlight or annotate data
-       in the graph. The types of markers available are bitmaps, images, poly-
-       gons,  lines, or windows.  Markers can be used, for example, to mark or
-       brush points.  In this example, is a text marker that labels  the  data
-       first point.  Markers are created using the marker component.  # Create
-       a label for the first data point of "line1".   .g  marker  create  text
-       -name  first_marker  -coords { 0.2 26.18 } \      -text "start" -anchor
-       se  -xoffset  -10  -yoffset  -10  This  creates  a  text  marker  named
-       first_marker.  It will display the text "start" near the coordinates of
-       the first data point.  The -anchor, -xoffset, and -yoffset options  are
-       used  to display the marker above and to the left of the data point, so
-       that the data point isn't covered by the marker.  By  default,  markers
-       are  drawn  last,  on top of data.  You can change this with the -under
-       option.  # Draw the label before elements are drawn.  .g marker config-
-       ure first_marker -under yes You can add cross hairs or grid lines using
-       the crosshairs and grid components.  # Display  both  cross  hairs  and
-       grid  lines.   .g crosshairs configure -hide no -color red .g grid con-
-       figure -hide no -dashes { 2 2 } # Set up a binding  to  reposition  the
-       crosshairs.  bind .g <Motion> {
-           .g crosshairs configure -position @%x,%y } The crosshairs are repo-
-       sitioned as the mouse pointer is moved in the graph.  The  pointer  X-Y
-       coordinates define the center of the crosshairs.
-
-       Finally, to get hardcopy of the graph, use the postscript component.  #
-       Print the graph into file "file.ps" .g postscript output file.ps  -max-
-       pect  yes  -decorations no This generates a file file.ps containing the
-       encapsulated PostScript of the graph.   The  option  -maxpect  says  to
-       scale  the  plot to the size of the page.  Turning off the -decorations
-       option denotes that no borders or color  backgrounds  should  be  drawn
-              option.   Option  may be any option described below for the con-
-              figure operation.
-
-       pathName configure ?option value?...
-              Queries or modifies the configuration options of the graph.   If
-              option  isn't  specified,  a list describing the current options
-              for pathName is returned.   If  option  is  specified,  but  not
-              value,  then  a  list  describing option is returned.  If one or
-              more option and value pairs are specified, then for  each  pair,
-              the  option  option  is set to value.  The following options are
-              valid.
-
-              -aspect width/height
-                     Force a fixed aspect ratio of  width/height,  a  floating
-                     point number.
-
-              -background color
-                     Sets  the background color. This includes the margins and
-                     legend, but not the plotting area.
-
-              -borderwidth pixels
-                     Sets the width of the 3-D border around the outside  edge
-                     of the widget.  The -relief option determines if the bor-
-                     der is to be drawn.  The default is 2.
-
-              -bottommargin pixels
-                     If non-zero, overrides the computed size  of  the  margin
-                     extending  below  the X-coordinate axis.  If pixels is 0,
-                     the automatically computed size is used.  The default  is
-                     0.
-
-              -bufferelements boolean
-                     Indicates  whether  an internal pixmap to buffer the dis-
-                     play of data elements should  be  used.   If  boolean  is
-                     true,  data  elements  are  drawn  to an internal pixmap.
-                     This option  is  especially  useful  when  the  graph  is
-                     redrawn  frequently while the remains data unchanged (for
-                     example, moving a marker across the plot).  See the SPEED
-                     TIPS section.  The default is 1.
-
-              -cursor cursor
-                     Specifies  the  widget's  cursor.   The default cursor is
-                     crosshair.
-
-              -font fontName
-                     Specifies the font of the graph  title.  The  default  is
-                     *-Helvetica-Bold-R-Normal-*-18-180-*.
-
-              -halo pixels
-                     Specifies  a  maximum distance to consider when searching
-                     for the closest data point  (see  the  element's  closest
-                     operation  below).   Data points further than pixels away
-                     text.  Justify  must  be  left,  right,  or  center.  The
-                     default is center.
-
-              -leftmargin pixels
-                     If non-zero, overrides the computed size  of  the  margin
-                     extending from the left edge of the window to the Y-coor-
-                     dinate axis.  If pixels is 0, the automatically  computed
-                     size is used.  The default is 0.
-
-              -plotbackground color
-                     Specifies the background color of the plotting area.  The
-                     default is white.
-
-              -plotborderwidth pixels
-                     Sets the width of the  3-D  border  around  the  plotting
-                     area.   The  -plotrelief option determines if a border is
-                     drawn.  The default is 2.
-
-              -plotpadx pad
-                     Sets the amount of padding to be added to  the  left  and
-                     right  sides  of the plotting area.  Pad can be a list of
-                     one or two screen distances.  If pad  has  two  elements,
-                     the left side of the plotting area entry is padded by the
-                     first distance and the right side by the second.  If  pad
-                     is  just  one distance, both the left and right sides are
-                     padded evenly.  The default is 8.
-
-              -plotpady pad
-                     Sets the amount of padding to be added  to  the  top  and
-                     bottom of the plotting area.  Pad can be a list of one or
-                     two screen distances.  If pad has two elements,  the  top
-                     of  the plotting area is padded by the first distance and
-                     the bottom by the second.  If pad is just  one  distance,
-                     both  the  top and bottom are padded evenly.  The default
-                     is 8.
-
-              -plotrelief relief
-                     Specifies the 3-D effect for the plotting  area.   Relief
-                     specifies  how  the  interior of the plotting area should
-                     appear relative to rest of the graph; for example, raised
-                     means  the plot should appear to protrude from the graph,
-                     relative to the surface of the  graph.   The  default  is
-                     sunken.
-
-              -relief relief
-                     Specifies  the  3-D  effect for the graph widget.  Relief
-                     specifies how the graph should appear relative to  widget
-                     it  is  packed  into; for example, raised means the graph
-                     should appear to protrude.  The default is flat.
-
-              -rightmargin pixels
-                     If non-zero, overrides the computed size  of  the  margin
-
-              -tile image
-                     Specifies  a  tiled  background for the widget.  If image
-                     isn't "", the background is tiled  using  image.   Other-
-                     wise,  the  normal  background  color  is  drawn (see the
-                     -background option).  Image  must  be  an  image  created
-                     using the Tk image command.  The default is "".
-
-              -title text
-                     Sets  the  title to text. If text is "", no title will be
-                     displayed.
-
-              -topmargin pixels
-                     If non-zero, overrides the computed size  of  the  margin
-                     above  the  x2  axis.   If pixels is 0, the automatically
-                     computed size is used.  The default is 0.
-
-              -width pixels
-                     Specifies the requested width of the widget.  The default
-                     is 5i.
-
-       pathName crosshairs operation ?arg?
-              See the CROSSHAIRS COMPONENT section.
-
-       pathName element operation ?arg?...
-              See the ELEMENT COMPONENTS section.
-
-       pathName extents item
-              Returns  the  size of a particular item in the graph.  Item must
-              be  either  leftmargin,  rightmargin,  topmargin,  bottommargin,
-              plotwidth, or plotheight.
-
-       pathName grid operation ?arg?...
-              See the GRID COMPONENT section.
-
-       pathName invtransform winX winY
-              Performs  an  inverse  coordinate transformation, mapping window
-              coordinates back to graph coordinates, using the standard X-axis
-              and  Y-axis.  Returns a list of containing the X-Y graph coordi-
-              nates.
-
-       pathName inside x y
-              Returns 1 is the designated  screen  coordinate  (x  and  y)  is
-              inside the plotting area and 0 otherwise.
-
-       pathName legend operation ?arg?...
-              See the LEGEND COMPONENT section.
-
-       pathName line operation arg...
-              The operation is the same as element.
-
-       pathName marker operation ?arg?...
-                        photo  Saves a Tk photo image.  OutputName  represents
-                               the  name of a Tk photo image that must already
-                               have been created.
-
-                        wmf    Saves an Aldus Placeable Metafile.   OutputName
-                               represents  the  filename where the metafile is
-                               written.  If outputName is CLIPBOARD, then out-
-                               put  is  written  directly to the Windows clip-
-                               board.  This format  is  available  only  under
-                               Microsoft Windows.
-
-                        emf    Saves  an  Enhanced Metafile. OutputName repre-
-                               sents the filename where the metafile is  writ-
-                               ten.   If  outputName is CLIPBOARD, then output
-                               is written directly to the  Windows  clipboard.
-                               This  format  is available only under Microsoft
-                               Windows.
-
-              -height size
-                        Specifies the height of the graph.  Size is  a  screen
-                        distance.  The graph will be redrawn using this dimen-
-                        sion, rather than its current window height.
-
-              -width size
-                        Specifies the width of the graph.  Size  is  a  screen
-                        distance.  The graph will be redrawn using this dimen-
-                        sion, rather than its current window width.
-
-       pathName transform x y
-              Performs a coordinate transformation, mapping graph  coordinates
-              to  window  coordinates,  using  the standard X-axis and Y-axis.
-              Returns a list containing the X-Y screen coordinates.
-
-       pathName xaxis operation ?arg?...
-
-       pathName x2axis operation ?arg?...
-
-       pathName yaxis operation ?arg?...
-
-       pathName y2axis operation ?arg?...
-              See the AXIS COMPONENTS section.
-
-
-
-

GRAPH COMPONENTS

-       A graph is composed of several components: coordinate axes,  data  ele-
-       ments,  legend,  grid, cross hairs, postscript, and annotation markers.
-       Instead of one big set of configuration  options  and  operations,  the
-       graph  is  partitioned,  where each component has its own configuration
-       options and operations that specifically control that aspect or part of
-       the graph.
-
-   AXIS COMPONENTS
-       Four  coordinate  axes are automatically created: two X-coordinate axes
-       You can have several axes. To create an axis, invoke the axis component
-       and  its  create  operation.   # Create a new axis called "tempAxis" .g
-       axis create tempAxis You map data elements to an axis  using  the  ele-
-       ment's  -mapy and -mapx configuration options. They specify the coordi-
-       nate axes an element is mapped onto.  # Now map the  tempAxis  data  to
-       this  axis.   .g element create "e1" -xdata $x -ydata $y -mapy tempAxis
-       Any number of axes can be displayed simultaneously. They are  drawn  in
-       the  margins  surrounding  the plotting area.  The default axes x and y
-       are drawn in the bottom and left margins. The axes x2 and y2 are  drawn
-       in  top  and  right  margins.  By default, only x and y are shown. Note
-       that the axes can have different scales.
-
-       To display a different axis or more than one axis, you  invoke  one  of
-       the  following components: xaxis, yaxis, x2axis, and y2axis.  Each com-
-       ponent has a use operation that designates the axis  (or  axes)  to  be
-       drawn  in  that corresponding margin: xaxis in the bottom, yaxis in the
-       left, x2axis in the top, and y2axis in the right.  # Display  the  axis
-       tempAxis  in  the left margin.  .g yaxis use tempAxis The use operation
-       takes a list of axis names as its last argument.  This is the  list  of
-       axes to be drawn in this margin.
-
-       You  can  configure  axes in many ways. The axis scale can be linear or
-       logarithmic.  The  values  along  the  axis  can  either  monotonically
-       increase  or decrease.  If you need custom tick labels, you can specify
-       a Tcl procedure to format the label any way you wish.  You can  control
-       how  ticks are drawn, by changing the major tick interval or the number
-       of minor ticks.  You can define non-uniform tick intervals, such as for
-       time-series plots.
-
-
-       pathName axis bind tagName ?sequence?  ?command?
-              Associates  command  with  tagName  such that whenever the event
-              sequence given by sequence occurs for an  axis  with  this  tag,
-              command will be invoked.  The syntax is similar to the bind com-
-              mand except that it operates on graph axes, rather than widgets.
-              See  the  bind manual entry for complete details on sequence and
-              the substitutions performed on command before invoking it.
-
-              If all arguments are specified then a new  binding  is  created,
-              replacing  any  existing  binding for the same sequence and tag-
-              Name.  If the first character of command is + then command  aug-
-              ments  an existing binding rather than replacing it.  If no com-
-              mand argument is provided then the command currently  associated
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-       pathName axis cget axisName option
-              Returns the current value of the  option  given  by  option  for
-              axisName.  Option may be any option described below for the axis
-              configure operation.
-                     the  list  matching  the current event sequence will have
-                     its Tcl command executed.  Implicitly  the  name  of  the
-                     element is always the first tag in the list.  The default
-                     value is all.
-
-              -color color
-                     Sets the color of the axis and tick labels.  The  default
-                     is black.
-
-              -descending boolean
-                     Indicates whether the values along the axis are monotoni-
-                     cally increasing or decreasing.  If boolean is true,  the
-                     axis values will be decreasing.  The default is 0.
-
-              -hide boolean
-                     Indicates  if  the axis is displayed. If boolean is false
-                     the axis will be displayed. Any  element  mapped  to  the
-                     axis is displayed regardless.  The default value is 0.
-
-              -justify justify
-                     Specifies  how  the axis title should be justified.  This
-                     matters only when the axis title contains more  than  one
-                     line  of  text.  Justify  must be left, right, or center.
-                     The default is center.
-
-              -limits formatStr
-                     Specifies a printf-like description to format the minimum
-                     and maximum limits of the axis.  The limits are displayed
-                     at the top/bottom or left/right  sides  of  the  plotting
-                     area.   FormatStr is a list of one or two format descrip-
-                     tions.  If one description is supplied, both the  minimum
-                     and  maximum  limits  are  formatted in the same way.  If
-                     two, the first designates  the  format  for  the  minimum
-                     limit,  the  second  for  the maximum.  If "" is given as
-                     either description, then the that limit will not be  dis-
-                     loosely, at the outer tick intervals.  If the axis  limit
-                     is  set  with  the -min or -max option, the axes are dis-
-                     played tightly.  If boolean is true, the  axis  range  is
-                     "loose".  The default is 0.
-
-              -majorticks majorList
-                     Specifies where to display major axis ticks.  You can use
-                     this option to display ticks  at  non-uniform  intervals.
-                     MajorList  is  a list of axis coordinates designating the
-                     location of major ticks.  No minor ticks are  drawn.   If
-                     majorList  is  "", major ticks will be automatically com-
-                     puted. The default is "".
-
-              -max value
-                     Sets the maximum  limit  of  axisName.   Any  data  point
-                     greater than value is not displayed.  If value is "", the
-                     maximum limit is calculated using the largest data value.
-                     The default is "".
-
-              -min value
-                     Sets  the  minimum limit of axisName. Any data point less
-                     than value is not displayed.  If value is "", the minimum
-                     limit  is  calculated using the smallest data value.  The
-                     default is "".
-
-              -minorticks minorList
-                     Specifies where to display minor axis ticks.  You can use
-                     this  option to display minor ticks at non-uniform inter-
-                     vals. MinorList is a list of real  values,  ranging  from
-                     0.0  to  1.0,  designating the placement of a minor tick.
-                     No minor ticks are drawn if the -majortick option is also
-                     set.   If  minorList is "", minor ticks will be automati-
-                     cally computed. The default is "".
-
-              -rotate theta
-                     Specifies the how many degrees to rotate  the  axis  tick
-                     labels.  Theta is a real value representing the number of
-                     degrees to rotate the tick labels.  The  default  is  0.0
-                     degrees.
-
-              -scrollcommand command
-                     Specify the prefix for a command used to communicate with
-                     scrollbars for this axis, such as .sbar set.
-
-              -scrollmax value
-                     Sets the maximum limit of the  axis  scroll  region.   If
-                     value  is  "",  the maximum limit is calculated using the
-                     largest data value.  The default is "".
-
-              -scrollmin value
-                     Sets the minimum limit of axis scroll region.   If  value
-                     is "", the minimum limit is calculated using the smallest
-                     Indicates how many minor axis ticks are to be drawn.  For
-                     example, if number is two, only one minor tick is  drawn.
-                     If  number  is  one,  no  minor ticks are displayed.  The
-                     default is 2.
-
-              -tickfont fontName
-                     Specifies the font for axis tick labels. The  default  is
-                     *-Courier-Bold-R-Normal-*-100-*.
-
-              -tickformat formatStr
-                     Specifies a printf-like description to format teh axis
-                     tick labels.  You can get the standard tick labels again by
-                     setting formatStr to "".  The default is "".
-
-              -tickformatcommand, -command prefix
-                     Specifies a Tcl command to be invoked when formatting the
-                     axis tick labels. Prefix is a string containing the  name
-                     of  a Tcl proc and any extra arguments for the procedure.
-                     This command is invoked for each major tick on the  axis.
-                     Two additional arguments are passed to the procedure: the
-                     pathname of the widget and the current the numeric  value
-                     of  the  tick.   The procedure returns the formatted tick
-                     label.  If "" is returned, no label will appear  next  to
-                     the  tick.  You can get the standard tick labels again by
-                     setting prefix to "".  The default is "".
-
-                     The numeric value for the tick might change when using the
-                     -logscale and -tickformat options.
-
-                     Please note that this  procedure  is  invoked  while  the
-                     graph  is  redrawn.  You may query configuration options.
-                     But  do  not  them,  because  this  can  have  unexpected
-                     results.
-
-              -ticklength pixels
-                     Sets the length of major and minor ticks (minor ticks are
-                     half the length of major ticks). If pixels is  less  than
-                     zero, the axis will be inverted with ticks drawn pointing
-                     towards the plot.  The default is 0.1i.
-
-              -title text
-                     Sets the title of the axis. If text is "", no axis  title
-                     will be displayed.
-
-              -titlealternate boolean
-                     Indicates  to  display  the  axis  title in its alternate
-                     location.  Normally the axis title is centered along  the
-                     axis.   This  option  places the axis either to the right
-                     (horizontal axes) or above (vertical axes) the axis.  The
-                     default is 0.
-
-              -titlecolor color
-                     Sets the color of the axis title. The default is black.
-
-              -titlefont fontName
-                     Specifies  the font for axis title. The default is *-Hel-
-                     vetica-Bold-R-Normal-*-14-140-*.
-
-              Axis configuration options may be also be set by the option com-
-              mand.   The  resource class is Axis.  The resource names are the
-              names  of  the  axes  (such   as   x   or   x2).    option   add
-              *Graph.Axis.Color    blue  option  add  *Graph.x.LogScale   true
-              option add *Graph.x2.LogScale false
-
-       pathName axis create axisName ?option value?...
-              Creates a new axis by the name axisName.  No axis  by  the  same
-              name  can already exist. Option and value are described in above
-              in the axis configure operation.
-
-       pathName axis delete ?axisName?...
-              Deletes the named axes. An axis is not really deleted  until  it
-              is not longer in use, so it's safe to delete axes mapped to ele-
-              ments.
-
-       pathName axis invtransform axisName value
-              Performs the inverse transformation, changing the screen coordi-
-              nate  value  to  a graph coordinate, mapping the value mapped to
-
-       pathName axis view axisName
-              Change the viewable area of this axis. Use as an argument  to  a
-              scrollbar's "-command".
-
-       The  default  axes are x, y, x2, and y2.  But you can display more than
-       four axes simultaneously.  You can also swap in a different  axis  with
-       use operation of the special axis components: xaxis, x2axis, yaxis, and
-       y2axis.  .g create axis temp .g create axis time ...  .g xaxis use temp
-       .g  yaxis use time Only the axes specified for use are displayed on the
-       screen.
-
-       The xaxis, x2axis, yaxis, and y2axis  components  operate  on  an  axis
-       location  rather than a specific axis like the more general axis compo-
-       nent does.  They implicitly control the axis that is currently using to
-       that location.  By default, xaxis uses the x axis, yaxis uses y, x2axis
-       uses x2, and y2axis uses y2.  When more than one axis is displayed in a
-       margin, it represents the first axis displayed.
-
-       The  following  operations  are available for axes. They mirror exactly
-       the operations of the axis component.  The axis argument must be xaxis,
-       x2axis,  yaxis,  or y2axis.  This feature is deprecated since more than
-       one axis can now be used a margin.  You  should  only  use  the  xaxis,
-       x2axis,  yaxis,  and y2axis components with the use operation.  For all
-       other operations, use the general axis component instead.
-
-       pathName axis cget option
-
-       pathName axis configure ?option value?...
-
-       pathName axis invtransform value
-
-       pathName axis limits
-
-       pathName axis transform value
-
-       pathName axis use ?axisName?
-              Designates the axis axisName is to be displayed  at  this  loca-
-              tion.   AxisName  can not be already in use at another location.
-              This command returns the name of the axis currently  using  this
-              location.
-
-   CROSSHAIRS COMPONENT
-       Cross  hairs  consist  of  two intersecting lines (one vertical and one
-       horizontal) drawn completely across the plotting area.  They  are  used
-       to  position the mouse in relation to the coordinate axes.  Cross hairs
-       differ from line markers in that they are implemented using XOR drawing
-       primitives.  This means that they can be quickly drawn and erased with-
-       out redrawing the entire graph.
-
-       The following operations are available for cross hairs:
-
-              -color color
-                     Sets the color of the cross hairs.  The default is black.
-
-              -dashes dashList
-                     Sets  the  dash  style  of the cross hairs. DashList is a
-                     list of up to 11 numbers that alternately  represent  the
-                     lengths  of  the dashes and gaps on the cross hair lines.
-                     Each number must be between 1 and 255.   If  dashList  is
-                     "", the cross hairs will be solid lines.
-
-              -hide boolean
-                     Indicates  whether  cross  hairs are drawn. If boolean is
-                     true, cross hairs are not drawn.  The default is yes.
-
-              -linewidth pixels
-                     Set the width of the cross hair lines.  The default is 1.
-
-              -position pos
-                     Specifies  the  screen  position  where  the  cross hairs
-                     intersect.  Pos must be in the form "@x,y", where x and y
-                     are the window coordinates of the intersection.
-
-              Cross  hairs  configuration  options  may  be also be set by the
-              option command.  The resource name and class are crosshairs  and
-              Crosshairs respectively.  option add *Graph.Crosshairs.LineWidth
-              2 option add *Graph.Crosshairs.Color     red
-
-       pathName crosshairs off
-              Turns off the cross hairs.
-
-       pathName crosshairs on
-              Turns on the display of the cross hairs.
-
-       pathName crosshairs toggle
-              Toggles the current state of the cross hairs,  alternately  map-
-              ping and unmapping the cross hairs.
-
-   ELEMENT COMPONENTS
-       A  data  element represents a set of data.  It contains x and y vectors
-       containing the coordinates of the data points.  Elements  can  be  dis-
-       played  with  a  symbol  at  each  data  point and lines connecting the
-       points.  Elements also control the appearance of the data, such as  the
-       symbol type, line width, color etc.
-
-       When  new  data elements are created, they are automatically added to a
-       list of displayed elements.   The display list controls  what  elements
-       are drawn and in what order.
-
-       The following operations are available for elements.
-
-       pathName element activate elemName ?index?...
-              Specifies  the data points of element elemName to be drawn using
-              replacing  any  existing  binding for the same sequence and tag-
-              Name.  If the first character of command is + then command  aug-
-              ments  an existing binding rather than replacing it.  If no com-
-              mand argument is provided then the command currently  associated
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-       pathName element cget elemName option
-              Returns the current value of the  element  configuration  option
-              given  by  option.   Option  may be any of the options described
-              below for the element configure operation.
-
-       pathName element closest x y ?option value?... ?elemName?...
-              Searches for the data point closest to the window coordinates  x
-              and  y.  By default, all elements are searched.  Hidden elements
-              (see the -hide option is false) are ignored.  You can limit  the
-              search  by  specifying  only the elements you want to be consid-
-              ered.  ElemName must be the name of an element that can  not  be
-              hidden.   It returns a key-value list containing the name of the
-              closest element, the index of the closest data  point,  and  the
-              graph-coordinates  of  the  point.  Returns "", if no data point
-              within the  threshold  distance  can  be  found.  The  following
-              option-value pairs are available.
-
-              -along direction
-                     Search for the closest element using the following crite-
-                     ria:
-
-                     x      Find closest element vertically from the given  X-
-                            coordinate.
-
-                     y      Find  the  closest  element  horizontally from the
-                            given Y-coordinate.
-
-                     both   Find the  closest  element  for  the  given  point
-                            (using both the X and Y coordinates).
-
-              -halo pixels
-                     Specifies a threshold distance where selected data points
-                     are ignored.  Pixels is a valid screen distance, such  as
-                     2  or  1.2i.   If  this  option  isn't specified, then it
-                     defaults to the value of the graph's -halo option.
-
-              -interpolate string
-                     Indicates whether to consider projections that lie  along
-                     the  line  segments connecting data points when searching
-                     for the closest point.  The default value is 0. The  val-
-                     ues for string are described below.
-
-                     no          Search only for the closest data point.
-
-              -activepen penName
-                     Specifies pen to use to draw active element.  If  penName
-                     is  "", no active elements will be drawn.  The default is
-                     activeLine.
-
-              -areabackground color
-                     Specifies the background color  of  the  area  under  the
-                     curve.  The  background area color is drawn only for bit-
-                     maps (see the -areapattern option).  If color is "",  the
-                     background is transparent.  The default is black.
-
-              -areaforeground color
-                     Specifies  the  foreground  color  of  the area under the
-                     curve.  The default is black.
-
-              -areapattern pattern
-                     Specifies how to fill the area under the curve.   Pattern
-                     may  be  the  name  of  a  Tk  bitmap,  solid, or "".  If
-                     "solid", then the area under the curve is drawn with  the
-                     color  designated  by  the  -areaforeground option.  If a
-                     bitmap, then the bitmap  is  stippled  across  the  area.
-                     Here  the  bitmap colors are controlled by the -areafore-
-                     ground and -areabackground options.  If pattern is "", no
-                     filled area is drawn.  The default is "".
-
-              -areatile image
-                     Specifies  the  name of a Tk image to be used to tile the
-                     area under the curve.  This option supersedes the -areap-
-                     attern option.  Image must be a photo image.  If image is
-                     "", no tiling is performed.  The default is "".
-
-              -bindtags tagList
-                     Specifies the binding tags for the element.  TagList is a
-                     list of binding tag names.  The tags and their order will
-                     determine how events are handled for elements.  Each  tag
-                     in the list matching the current event sequence will have
-                     its Tcl command executed.  Implicitly  the  name  of  the
-                     element is always the first tag in the list.  The default
-                     value is all.
-
-              -color color
-                     Sets the color of the traces connecting the data  points.
-
-              -dashes dashList
-                     Sets  the  dash style of element line. DashList is a list
-                     of up  to  11  numbers  that  alternately  represent  the
-                     lengths of the dashes and gaps on the element line.  Each
-                     number must be between 1 and 255.  If dashList is "", the
-                     lines will be solid.
-
-              -data coordList
-                     Specifies  the X-Y coordinates of the data.  CoordList is
-                     Sets  the  element's label in the legend.  If text is "",
-                     the element will  have  no  entry  in  the  legend.   The
-                     default label is the element's name.
-
-              -linewidth pixels
-                     Sets  the  width  of  the  connecting  lines between data
-                     points.  If pixels is 0,  no  connecting  lines  will  be
-                     drawn between symbols.  The default is 0.
-
-              -mapx xAxis
-                     Selects  the  X-axis  to  map the element's X-coordinates
-                     onto.  XAxis must be the name of an axis.  The default is
-                     x.
-
-              -mapy yAxis
-                     Selects  the  Y-axis  to  map the element's Y-coordinates
-                     onto.  YAxis must be the name of an axis. The default  is
-                     y.
-
-              -offdash color
-                     Sets the color of the stripes when traces are dashed (see
-                     the -dashes option).  If color is "", then the "off" pix-
-                     els  will represent gaps instead of stripes.  If color is
-                     defcolor, then the color will be the same as  the  -color
-                     option.  The default is defcolor.
-
-              -outline color
-                     Sets  the  color  or  the outline around each symbol.  If
-                     color is "", then no outline is drawn. If color  is  def-
-                     color,  then  the  color  will  be the same as the -color
-                     option.  The default is defcolor.
-
-              -pen penname
-                     Set the pen to use for this element.
-
-              -outlinewidth pixels
-                     Sets the width of the outline bordering each symbol.   If
-                     pixels  is 0, no outline will be drawn. The default is 1.
-
-              -pixels pixels
-                     Sets the size of symbols.  If pixels  is  0,  no  symbols
-                     will be drawn.  The default is 0.125i.
-
-              -scalesymbols boolean
-                     If  boolean  is  true,  the size of the symbols drawn for
-                     elemName will change with scale of the X-axis and Y-axis.
-                     At the time this option is set, the current ranges of the
-                     axes are saved as the normalized scales (i.e scale factor
-                     is  1.0)  and the element is drawn at its designated size
-                     (see the -pixels option).   As  the  scale  of  the  axes
-                     change,  the  symbol  will  be  scaled  according  to the
-                     smaller of the X-axis and Y-axis scales.  If  boolean  is
-                     dratic spline is used.  The default is linear.
-
-              -styles styleList
-                     Specifies what pen to use based on the range  of  weights
-                     given.  StyleList is a list of style specifications. Each
-                     style specification, in turn, is a list consisting  of  a
-                     pen  name,  and  optionally  a minimum and maximum range.
-                     Data points whose weight (see the -weight  option)  falls
-                     in  this  range, are drawn with this pen.  If no range is
-                     specified it defaults to the index  of  the  pen  in  the
-                     list.   Note  that  this  affects only symbol attributes.
-                     Line attributes, such as line  width,  dashes,  etc.  are
-                     ignored.
-
-              -symbol symbol
-                     Specifies  the  symbol  for  data  points.  Symbol can be
-                     either  square,  circle,  diamond,  plus,  cross,  splus,
-                     scross,  triangle,  ""  (where  no symbol is drawn), or a
-                     bitmap.  Bitmaps are specified as "source ?mask?",  where
-                     source  is  the  name of the bitmap, and mask is the bit-
-                     map's optional mask.  The default is circle.
-
-              -trace direction
-                     Indicates whether connecting lines  between  data  points
-                     (whose  X-coordinate  values  are  either  increasing  or
-                     decreasing) are drawn.   Direction  must  be  increasing,
-                     decreasing,  or  both.   For  example,  if  direction  is
-                     increasing, connecting lines will be drawn  only  between
-                     those data points where X-coordinate values are monotoni-
-                     cally increasing.  If direction is both, connecting lines
-                     will  be  draw  between  all data points.  The default is
-                     both.
-
-              -weights wVec
-                     Specifies the weights  of  the  individual  data  points.
-                     This,  with the list pen styles (see the -styles option),
-                     controls how data points are drawn.  WVec is the name  of
-                     a  BLT vector or a list of numeric expressions represent-
-                     ing the weights for each data point.
-
-              -xdata xVec
-                     Specifies the X-coordinates of the  data.   XVec  is  the
-                     name of a BLT vector or a list of numeric expressions.
-
-              -ydata yVec
-                     Specifies  the  Y-coordinates  of  the data.  YVec is the
-                     name of a BLT vector or a list of numeric expressions.
-
-              Element configuration options may also be set by the option com-
-              mand.   The  resource class is Element. The resource name is the
-              name of the  element.   option  add  *Graph.Element.symbol  line
-              option add *Graph.e1.symbol line
-
-       pathName element exists elemName
-              Returns  1  if an element elemName currently exists and 0 other-
-              wise.
-
-       pathName element names ?pattern?...
-              Returns the elements matching one or more pattern.  If  no  pat-
-              tern is given, the names of all elements is returned.
-
-       pathName element show ?nameList?
-              Queries  or modifies the element display list.  The element dis-
-              play list designates the  elements  drawn  and  in  what  order.
-              NameList is a list of elements to be displayed in the order they
-              are named.  If there is no nameList argument, the  current  dis-
-              play list is returned.
-
-       pathName element type elemName
-              Returns  the type of elemName.  If the element is a bar element,
-              the commands returns the  string  "bar",  otherwise  it  returns
-              "line".
-
-   GRID COMPONENT
-       Grid  lines extend from the major and minor ticks of each axis horizon-
-       tally or vertically across the plotting area.  The following operations
-       are available for grid lines.
-
-       pathName grid cget option
-              Returns  the current value of the grid line configuration option
-              given by option.  Option may be any option described  below  for
-              the grid configure operation.
-
-       pathName grid configure ?option value?...
-              Queries  or  modifies  the configuration options for grid lines.
-              If option isn't specified, a list  describing  all  the  current
-              grid  options for pathName is returned.  If option is specified,
-              but not value, then a list describing option  is  returned.   If
-              one  or more option and value pairs are specified, then for each
-              pair, the grid line option option is set to value.  The  follow-
-              ing options are valid for grid lines.
-
-              -color color
-                     Sets  the color of the grid lines.  The default is black.
-
-              -dashes dashList
-                     Sets the dash style of the grid lines. DashList is a list
-                     of  up  to  11  numbers  that  alternately  represent the
-                     lengths of the dashes and gaps on the grid  lines.   Each
-                     number must be between 1 and 255.  If dashList is "", the
-                     grid will be solid lines.
-
-              -hide boolean
-                     Indicates whether the grid should be drawn. If boolean is
-
-              -minor boolean
-                     Indicates  whether  the  grid  lines  should be drawn for
-                     minor ticks.  If boolean is true, the lines  will  appear
-                     at minor tick intervals.  The default is 1.
-
-              Grid  configuration  options  may also be set by the option com-
-              mand.  The resource name and class are  grid  and  Grid  respec-
-              tively.    option   add   *Graph.grid.LineWidth   2  option  add
-              *Graph.Grid.Color     black
-
-       pathName grid off
-              Turns off the display the grid lines.
-
-       pathName grid on
-              Turns on the display the grid lines.
-
-       pathName grid toggle
-              Toggles the display of the grid.
-
-   LEGEND COMPONENT
-       The legend displays a list of the data elements.  Each  entry  consists
-       of the element's symbol and label.  The legend can appear in any margin
-       (the default location is in the right margin).  It can  also  be  posi-
-       tioned anywhere within the plotting area.
-
-       The following operations are valid for the legend.
-
-       pathName legend activate pattern...
-              Selects  legend entries to be drawn using the active legend col-
-              ors and relief.  All entries whose element names  match  pattern
-              are  selected.  To be selected, the element name must match only
-              one pattern.
-
-       pathName legend bind tagName ?sequence?  ?command?
-              Associates command with tagName such  that  whenever  the  event
-              sequence  given  by sequence occurs for a legend entry with this
-              tag, command will be invoked.  Implicitly the element  names  in
-              the  entry  are tags.  The syntax is similar to the bind command
-              except that it operates on legend entries, rather than  widgets.
-              See  the  bind manual entry for complete details on sequence and
-              the substitutions performed on command before invoking it.
-
-              If all arguments are specified then a new  binding  is  created,
-              replacing  any  existing  binding for the same sequence and tag-
-              Name.  If the first character of command is + then command  aug-
-              ments  an existing binding rather than replacing it.  If no com-
-              mand argument is provided then the command currently  associated
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-              -activebackground color
-                     Sets the background color for active legend entries.  All
-                     legend  entries  marked  active  (see the legend activate
-                     operation) are drawn using this background color.
-
-              -activeborderwidth pixels
-                     Sets the width of the 3-D border around the outside  edge
-                     of the active legend entries.  The default is 2.
-
-              -activeforeground color
-                     Sets the foreground color for active legend entries.  All
-                     legend entries marked as active (see the legend  activate
-                     operation) are drawn using this foreground color.
-
-              -activerelief relief
-                     Specifies  the  3-D  effect  desired  for  active  legend
-                     entries.  Relief denotes how the interior  of  the  entry
-                     should appear relative to the legend; for example, raised
-                     means the entry should appear to protrude from  the  leg-
-                     end,  relative to the surface of the legend.  The default
-                     is flat.
-
-              -anchor anchor
-                     Tells how to position the legend relative  to  the  posi-
-                     tioning  point  for the legend.  This is dependent on the
-                     value of the -position option.  The default is center.
-
-                     left or right
-                                 The anchor describes how to position the leg-
-                                 end vertically.
-
-                     top or bottom
-                                 The anchor describes how to position the leg-
-                                 end horizontally.
-
-                     @x,y        The anchor specifies how to position the leg-
-                                 end  relative  to  the positioning point. For
-                                 example, if anchor is center then the  legend
-                                 is centered on the point; if anchor is n then
-                                 the legend will be drawn such  that  the  top
-                                 center  point of the rectangular region occu-
-                                 pied by the legend will be at the positioning
-                                 point.
-
-                     plotarea    The anchor specifies how to position the leg-
-                                 end relative to the plotting area. For  exam-
-                                 ple,  if  anchor is center then the legend is
-                                 centered in the plotting area; if  anchor  is
-                                 ne  then  the  legend will be drawn such that
-                                 occupies the upper right corner of the  plot-
-                                 ting area.
-
-                     Sets  the width of the 3-D border around the outside edge
-                     of the legend (if such border is being drawn; the  relief
-                     option determines this).  The default is 2 pixels.
-
-              -font fontName
-                     FontName  specifies a font to use when drawing the labels
-                     of each element into the legend.  The default  is  *-Hel-
-                     vetica-Bold-R-Normal-*-12-120-*.
-
-              -foreground color
-                     Sets  the foreground color of the text drawn for the ele-
-                     ment's label.  The default is black.
-
-              -hide boolean
-                     Indicates whether the  legend  should  be  displayed.  If
-                     boolean  is  true,  the  legend  will  not  be draw.  The
-                     default is no.
-
-              -ipadx pad
-                     Sets the amount of internal padding to be  added  to  the
-                     width  of each legend entry.  Pad can be a list of one or
-                     two screen distances.  If pad has two elements, the  left
-                     side  of the legend entry is padded by the first distance
-                     and the right side by the second.  If  pad  is  just  one
-                     distance,  both  the  left  and  right  sides  are padded
-                     evenly.  The default is 2.
-
-              -ipady pad
-                     Sets an amount of internal padding to  be  added  to  the
-                     height of each legend entry.  Pad can be a list of one or
-                     two screen distances.  If pad has two elements,  the  top
-                     of the entry is padded by the first distance and the bot-
-                     tom by the second.  If pad is just one distance, both the
-                     top  and  bottom  of  the  entry  are padded evenly.  The
-                     default is 2.
-
-              -padx pad
-                     Sets the padding to the left and right exteriors  of  the
-                     legend.   Pad  can  be  a  list of one or two screen dis-
-                     tances.  If pad has two elements, the left  side  of  the
-                     legend is padded by the first distance and the right side
-                     by the second.  If pad has just one  distance,  both  the
-                     left  and  right sides are padded evenly.  The default is
-                     4.
-
-              -pady pad
-                     Sets the padding above and below the legend.  Pad can  be
-                     a  list  of  one or two screen distances.  If pad has two
-                     elements, the area above the  legend  is  padded  by  the
-                     first  distance and the area below by the second.  If pad
-                     is just one distance, both the top and bottom  areas  are
-                     padded evenly.  The default is 0.
-                     plotting area.  If boolean is true, the  legend  will  be
-                     drawn  on  top  of  any elements that may overlap it. The
-                     default is no.
-
-              -relief relief
-                     Specifies the 3-D effect for the border around  the  leg-
-                     end.   Relief  specifies  how  the interior of the legend
-                     should appear relative to the graph; for example,  raised
-                     means  the  legend  should  appear  to  protrude from the
-                     graph, relative to the surface of the graph.  The default
-                     is sunken.
-
-              Legend  configuration options may also be set by the option com-
-              mand.  The resource name and class are legend and Legend respec-
-              tively.   option  add  *Graph.legend.Foreground  blue option add
-              *Graph.Legend.Relief     raised
-
-       pathName legend deactivate pattern...
-              Selects legend entries to be drawn using the normal legend  col-
-              ors  and  relief.  All entries whose element names match pattern
-              are selected.  To be selected, the element name must match  only
-              one pattern.
-
-       pathName legend get pos
-              Returns  the  name  of  the element whose entry is at the screen
-              position pos in the legend.  Pos must be  in  the  form  "@x,y",
-              where  x and y are window coordinates.  If the given coordinates
-              do not lie over a legend entry, "" is returned.
-
-   PEN COMPONENTS
-       Pens define attributes (both symbol and line style) for elements.  Pens
-       mirror  the  configuration options of data elements that pertain to how
-       symbols and lines are drawn.  Data elements use pens to  determine  how
-       they  are drawn.  A data element may use several pens at once.  In this
-       case, the pen used for a particular data point is determined from  each
-       element's weight vector (see the element's -weight and -style options).
-
-       One pen, called activeLine, is automatically created.  It's used as the
-       default  active  pen  for  elements.  So  you  can  change  the  active
-       attributes for all elements by simply reconfiguring this pen.   .g  pen
-       configure  "activeLine"  -color  green  You  can create and use several
-       pens. To create a pen, invoke the pen component and its  create  opera-
-       tion.   .g pen create myPen You map pens to a data element using either
-       the element's -pen or -activepen options.  .g  element  create  "line1"
-       -xdata $x -ydata $tempData \
-           -pen myPen An element can use several pens at once. This is done by
-       specifying the name of the pen in the element's  style  list  (see  the
-       -styles  option).  .g element configure "line1" -styles { myPen 2.0 3.0
-       } This says that any data point with a weight between 2.0 and 3.0 is to
-       be drawn using the pen myPen.  All other points are drawn with the ele-
-       ment's default attributes.
-
-              specified,  then  for each pair, the pen option option is set to
-              value.  The following options are valid for pens.
-
-              -color color
-                     Sets the color of the traces connecting the data  points.
-
-              -dashes dashList
-                     Sets  the  dash style of element line. DashList is a list
-                     of up  to  11  numbers  that  alternately  represent  the
-                     lengths of the dashes and gaps on the element line.  Each
-                     number must be between 1 and 255.  If dashList is "", the
-                     lines will be solid.
-
-              -fill color
-                     Sets the interior color of symbols.  If color is "", then
-                     the interior of the symbol is transparent.  If  color  is
-                     defcolor,  then  the color will be the same as the -color
-                     option.  The default is defcolor.
-
-              -linewidth pixels
-                     Sets the width  of  the  connecting  lines  between  data
-                     points.   If  pixels  is  0,  no connecting lines will be
-                     drawn between symbols.  The default is 0.
-
-              -offdash color
-                     Sets the color of the stripes when traces are dashed (see
-                     the -dashes option).  If color is "", then the "off" pix-
-                     els will represent gaps instead of stripes.  If color  is
-                     defcolor,  then  the color will be the same as the -color
-                     option.  The default is defcolor.
-
-              -outline color
-                     Sets the color or the outline  around  each  symbol.   If
-                     color  is  "", then no outline is drawn. If color is def-
-                     color, then the color will be  the  same  as  the  -color
-                     option.  The default is defcolor.
-
-              -outlinewidth pixels
-                     Sets  the width of the outline bordering each symbol.  If
-                     pixels is 0, no outline will be drawn. The default is  1.
-
-              -pixels pixels
-                     Sets  the  size  of  symbols.  If pixels is 0, no symbols
-                     will be drawn.  The default is 0.125i.
-
-              -symbol symbol
-                     Specifies the symbol for  data  points.   Symbol  can  be
-                     either  square,  circle,  diamond,  plus,  cross,  splus,
-                     scross, triangle, "" (where no symbol  is  drawn),  or  a
-                     bitmap.   Bitmaps are specified as "source ?mask?", where
-                     source is the name of the bitmap, and mask  is  the  bit-
-                     map's optional mask.  The default is circle.
-
-              Creates a new pen by the name penName.  No pen by the same  name
-              can  already  exist.  Option and value are described in above in
-              the pen configure operation.
-
-       pathName pen delete ?penName?...
-              Deletes the named pens. A pen is not really deleted until it  is
-              not  longer  in  use, so it's safe to delete pens mapped to ele-
-              ments.
-
-       pathName pen names ?pattern?...
-              Returns a list of pens matching zero or more  patterns.   If  no
-              pattern argument is give, the names of all pens are returned.
-
-   POSTSCRIPT COMPONENT
-       The  graph can generate encapsulated PostScript output.  There are sev-
-       eral configuration options you can specify to control how the plot will
-       be  generated.   You  can  change the page dimensions and borders.  The
-       plot itself can be scaled, centered,  or  rotated  to  landscape.   The
-       PostScript output can be written directly to a file or returned through
-       the interpreter.
-
-       The following postscript operations are available.
-
-       pathName postscript cget option
-              Returns the current value of  the  postscript  option  given  by
-              option.   Option may be any option described below for the post-
-              script configure operation.
-
-       pathName postscript configure ?option value?...
-              Queries or modifies the  configuration  options  for  PostScript
-              generation.   If  option  isn't specified, a list describing the
-              current postscript options for pathName is returned.  If  option
-              is  specified,  but  not value, then a list describing option is
-              returned.  If one or more option and value pairs are  specified,
-              then  for  each  pair,  the  postscript  option option is set to
-              value.  The following postscript options are available.
-
-              -center boolean
-                     Indicates whether the plot  should  be  centered  on  the
-                     PostScript  page.   If boolean is false, the plot will be
-                     placed in the upper left corner of the page.  The default
-                     is 1.
-
-              -colormap varName
-                     VarName  must be the name of a global array variable that
-                     specifies a color mapping from the X color name to  Post-
-                     Script.   Each  element  of varName must consist of Post-
-                     Script code to set a particular color value  (e.g.  ``1.0
-                     1.0  0.0  setrgbcolor'').  When generating color informa-
-                     tion in PostScript, the array variable varName is checked
-                     if  an element of the name as the color exists. If so, it
-                     uses its value as  the  PostScript  command  to  set  the
-                     Script.   Each  element  of varName must consist of a Tcl
-                     list with one or two elements; the name and point size of
-                     a  PostScript  font.  When outputting PostScript commands
-                     for a particular font,  the  array  variable  varName  is
-                     checked  to  see  if  an  element  by  the specified font
-                     exists.  If there is  such  an  element,  then  the  font
-                     information  contained  in  that  element  is used in the
-                     PostScript output.  (If the point size  is  omitted  from
-                     the  list, the point size of the X font is used).  Other-
-                     wise the X font is examined in an attempt to  guess  what
-                     PostScript  font to use.  This works only for fonts whose
-                     foundry property is  Adobe  (such  as  Times,  Helvetica,
-                     Courier,  etc.).   If  all  of  this  fails then the font
-                     defaults to Helvetica-Bold.
-
-              -decorations boolean
-                     Indicates whether PostScript commands to  generate  color
-                     backgrounds  and  3-D borders will be output.  If boolean
-                     is false, the background will be white and no 3-D borders
-                     will be generated. The default is 1.
-
-              -height pixels
-                     Sets  the  height  of  the plot.  This lets you print the
-                     graph with a height different from the one drawn  on  the
-                     screen.   If  pixels  is 0, the height is the same as the
-                     widget's height.  The default is 0.
-
-              -landscape boolean
-                     If boolean is true, this specifies the printed area is to
-                     be  rotated 90 degrees.  In non-rotated output the X-axis
-                     of the printed area runs along the short dimension of the
-                     page  (``portrait''  orientation);  in rotated output the
-                     X-axis runs along the long dimension of the page (``land-
-                     scape'' orientation).  Defaults to 0.
-
-              -maxpect boolean
-                     Indicates  to  scale  the plot so that it fills the Post-
-                     Script page.  The aspect ratio  of  the  graph  is  still
-                     retained.  The default is 0.
-
-              -padx pad
-                     Sets  the  horizontal padding for the left and right page
-                     borders.  The borders are exterior to the plot.  Pad  can
-                     be a list of one or two screen distances.  If pad has two
-                     elements, the left border is padded by the first distance
-                     and  the right border by the second.  If pad has just one
-                     distance, both the left  and  right  borders  are  padded
-                     evenly.  The default is 1i.
-
-              -pady pad
-                     Sets  the  vertical  padding  for the top and bottom page
-                     borders. The borders are exterior to the plot.   Pad  can
-                     The default width is 8.5i.
-
-              -width pixels
-                     Sets  the  width  of  the plot.  This lets you generate a
-                     plot of a width different from that of  the  widget.   If
-                     pixels is 0, the width is the same as the widget's width.
-                     The default is 0.
-
-              Postscript configuration options may  be  also  be  set  by  the
-              option  command.  The resource name and class are postscript and
-              Postscript respectively.  option  add  *Graph.postscript.Decora-
-              tions false option add *Graph.Postscript.Landscape   true
-
-       pathName postscript output ?fileName? ?option value?...
-              Outputs  a file of encapsulated PostScript.  If a fileName argu-
-              ment isn't present, the command returns the PostScript.  If  any
-              option-value  pairs  are present, they set configuration options
-              controlling how the PostScript is generated.  Option  and  value
-              can  be  anything accepted by the postscript configure operation
-              above.
-
-   MARKER COMPONENTS
-       Markers are simple drawing procedures used  to  annotate  or  highlight
-       areas of the graph.  Markers have various types: text strings, bitmaps,
-       images, connected lines, windows, or polygons.  They can be  associated
-       with  a  particular  element, so that when the element is hidden or un-
-       hidden, so is the marker.  By  default,  markers  are  the  last  items
-       drawn,  so  that  data  elements  will  appear in behind them.  You can
-       change this by configuring the -under option.
-
-       Markers, in contrast to elements, don't affect the scaling of the coor-
-       dinate axes.  They can also have elastic coordinates (specified by -Inf
-       and Inf respectively) that translate into the minimum or maximum  limit
-       of  the axis.  For example, you can place a marker so it always remains
-       in the lower left corner of the plotting area, by using the coordinates
-       -Inf,-Inf.
-
-       The following operations are available for markers.
-
-       pathName marker after markerId ?afterId?
-              Changes the order of the markers, drawing the first marker after
-              the second.  If no second afterId  argument  is  specified,  the
-              marker  is  placed at the end of the display list.  This command
-              can be used to control how markers are displayed  since  markers
-              are drawn in the order of this display list.
-
-       pathName marker before markerId ?beforeId?
-              Changes  the  order  of  the  markers,  drawing the first marker
-              before the second.  If no second beforeId argument is specified,
-              the marker is placed at the beginning of the display list.  This
-              command can be used to control how markers are  displayed  since
-              markers are drawn in the order of this display list.
-              with  tagName  and  sequence (it's an error occurs if there's no
-              such binding) is returned.  If both  command  and  sequence  are
-              missing  then  a list of all the event sequences for which bind-
-              ings have been defined for tagName.
-
-       pathName marker cget option
-              Returns the current value of  the  marker  configuration  option
-              given  by  option.   Option may be any option described below in
-              the configure operation.
-
-       pathName marker configure markerId ?option value?...
-              Queries or modifies the configuration options for  markers.   If
-              option  isn't  specified,  a list describing the current options
-              for markerId is returned.   If  option  is  specified,  but  not
-              value,  then  a  list  describing option is returned.  If one or
-              more option and value pairs are specified, then for  each  pair,
-              the marker option option is set to value.
-
-              The  following  options are valid for all markers.  Each type of
-              marker  also  has  its  own  type-specific  options.   They  are
-              described in the sections below.
-
-              -bindtags tagList
-                     Specifies  the binding tags for the marker.  TagList is a
-                     list of binding tag names.  The tags and their order will
-                     determine  how  events for markers are handled.  Each tag
-                     in the list matching the current event sequence will have
-                     its  Tcl  command  executed.   Implicitly the name of the
-                     marker is always the first tag in the list.  The  default
-                     value is all.
-
-              -coords coordList
-                     Specifies  the coordinates of the marker.  CoordList is a
-                     list of graph coordinates.   The  number  of  coordinates
-                     required  is  dependent  on  the  type  of marker.  Text,
-                     image, and window markers need only two  coordinates  (an
-                     X-Y  coordinate).   Bitmap markers can take either two or
-                     four coordinates (if four, they represent the corners  of
-                     the bitmap). Line markers need at least four coordinates,
-                     polygons at least six.  If coordList is  "",  the  marker
-                     will not be displayed.  The default is "".
-
-              -element elemName
-                     Links  the  marker with the element elemName.  The marker
-                     is drawn only if the element is also currently  displayed
-                     (see  the  element's show operation).  If elemName is "",
-                     the marker is always drawn.  The default is "".
-
-              -hide boolean
-                     Indicates whether the marker  is  drawn.  If  boolean  is
-                     true, the marker is not drawn.  The default is no.
-
-              -under boolean
-                     Indicates whether the marker is  drawn  below/above  data
-                     elements.   If  boolean  is  true, the marker is be drawn
-                     underneath the data element symbols  and  lines.   Other-
-                     wise,  the  marker  is  drawn on top of the element.  The
-                     default is 0.
-
-              -xoffset pixels
-                     Specifies a screen distance to offset the marker horizon-
-                     tally.   Pixels  is a valid screen distance, such as 2 or
-                     1.2i.  The default is 0.
-
-              -yoffset pixels
-                     Specifies a screen distance to offset the markers  verti-
-                     cally.   Pixels  is a valid screen distance, such as 2 or
-                     1.2i.  The default is 0.
-
-              Marker configuration options may also be set by the option  com-
-              mand.   The resource class is either BitmapMarker,  ImageMarker,
-              LineMarker, PolygonMarker, TextMarker, or WindowMarker,  depend-
-              ing on the type of marker.  The resource name is the name of the
-              marker.  option add  *Graph.TextMarker.Foreground  white  option
-              add     *Graph.BitmapMarker.Foreground    white    option    add
-              *Graph.m1.Background     blue
-
-       pathName marker create type ?option value?...
-              Creates a marker of the selected type. Type may be either  text,
-              line,  bitmap,  image, polygon, or window.  This command returns
-              the marker identifier, used as  the  markerId  argument  in  the
-              other  marker-related  commands.   If  the -name option is used,
-              this overrides the normal marker identifier.  If the  name  pro-
-              vided  is  already  used for another marker, the new marker will
-              replace the old.
-
-       pathName marker delete ?name?...
-              Removes one of more markers.  The graph  will  automatically  be
-              redrawn without the marker..
-
-       pathName marker exists markerId
-              Returns 1 if the marker markerId exists and 0 otherwise.
-
-       pathName marker names ?pattern?
-              Returns  the  names of all the markers that currently exist.  If
-              pattern is supplied, only those markers  whose  names  match  it
-              will be returned.
-
-       pathName marker type markerId
-              Returns  the  type of the marker given by markerId, such as line
-              or text.  If markerId is not a valid a marker identifier, ""  is
-              returned.
-
-   BITMAP MARKERS
-       The following options are specific to bitmap markers:
-
-       -background color
-              Same as the -fill option.
-
-       -bitmap bitmap
-              Specifies  the  bitmap  to  be  displayed.  If bitmap is "", the
-              marker will not be displayed.  The default is "".
-
-       -fill color
-              Sets the background color of the bitmap.  If color is the  empty
-              string,  no  background  will be transparent.  The default back-
-              ground color is "".
-
-       -foreground color
-              Same as the -outline option.
-
-       -mask mask
-              Specifies a mask for the bitmap to be displayed. This mask is  a
-              bitmap  itself,  denoting  the  pixels that are transparent.  If
-              mask is "", all pixels of the bitmap will be drawn.  The default
-              is "".
-
-       -outline color
-              Sets  the  foreground  color of the bitmap. The default value is
-              black.
-
-       -rotate theta
-              Sets the rotation of the bitmap.  Theta is a real number  repre-
-              senting  the  angle of rotation in degrees.  The marker is first
-              rotated and then placed according to its anchor  position.   The
-              default rotation is 0.0.
-
-   IMAGE MARKERS
-       A  image  marker displays an image.  Image markers are created with the
-       marker's create operation in the form:  pathName  marker  create  image
-       ?option  value?...   There  may be many option-value pairs, each sets a
-       configuration option for the marker.  These same option-value pairs may
-       be used with the marker's configure operation.
-
-       The following options are specific to image markers:
-
-       -anchor anchor
-              Anchor tells how to position the image relative to the position-
-              ing point for the image. For example, if anchor is  center  then
-              the  image  is  centered  on the point;  if anchor is n then the
-              image will be drawn such that the top center point of the  rect-
-              angular  region occupied by the image will be at the positioning
-              point.  This option defaults to center.
-
-       -image image
-              Specifies the image to be drawn.  If image  is  "",  the  marker
-              gaps  on  the  line.  Each number must be between 1 and 255.  If
-              dashList is "", the marker line will be solid.
-
-       -fill color
-              Sets the background color of the line.  This color is used  with
-              striped  lines  (see the -fdashes option). If color is the empty
-              string, no background color is drawn (the line will  be  dashed,
-              not striped).  The default background color is "".
-
-       -linewidth pixels
-              Sets the width of the lines.  The default width is 0.
-
-       -outline color
-              Sets  the  foreground  color  of  the line. The default value is
-              black.
-
-       -stipple bitmap
-              Specifies a stipple pattern used to draw the line, rather than a
-              solid  line.   Bitmap  specifies  a bitmap to use as the stipple
-              pattern.  If bitmap is "", then the line is  drawn  in  a  solid
-              fashion. The default is "".
-
-   POLYGON MARKERS
-       A polygon marker displays a closed region described as two or more con-
-       nected line segments.  It is assumed the first and last points are con-
-       nected.   Polygon markers are created using the marker create operation
-       in the form: pathName marker create polygon  ?option  value?...   There
-       may  be  many  option-value pairs, each sets a configuration option for
-       the marker.  These same option-value pairs may be used with the  marker
-       configure  command to change the marker's configuration.  The following
-       options are supported for polygon markers:
-
-       -dashes dashList
-              Sets the dash style of the outline of the polygon. DashList is a
-              list  of up to 11 numbers that alternately represent the lengths
-              of the dashes and gaps on the  outline.   Each  number  must  be
-              between  1  and  255.  If  dashList is "", the outline will be a
-              solid line.
-
-       -fill color
-              Sets the fill color of the polygon.  If color is  "",  then  the
-              interior of the polygon is transparent.  The default is white.
-
-       -linewidth pixels
-              Sets the width of the outline of the polygon. If pixels is zero,
-              no outline is drawn. The default is 0.
-
-       -outline color
-              Sets the color of the outline of the polygon.  If the polygon is
-              stippled  (see  the  -stipple  option), then this represents the
-              foreground color of the stipple.  The default is black.
-
-       the marker's configure operation.
-
-       The following options are specific to text markers:
-
-       -anchor anchor
-              Anchor tells how to position the text relative to the  position-
-              ing  point  for  the text. For example, if anchor is center then
-              the text is centered on the point; if anchor is n then the  text
-              will  be drawn such that the top center point of the rectangular
-              region occupied by the text will be at  the  positioning  point.
-              This default is center.
-
-       -background color
-              Same as the -fill option.
-
-       -font fontName
-              Specifies  the  font  of  the text.  The default is *-Helvetica-
-              Bold-R-Normal-*-120-*.
-
-       -fill color
-              Sets the background color of the text.  If color  is  the  empty
-              string,  no  background  will be transparent.  The default back-
-              ground color is "".
-
-       -foreground color
-              Same as the -outline option.
-
-       -justify justify
-              Specifies how the text should be justified.  This  matters  only
-              when  the  marker  contains  more than one line of text. Justify
-              must be left, right, or center.  The default is center.
-
-       -outline color
-              Sets the color of the text. The default value is black.
-
-       -padx pad
-              Sets the padding to the left and right exteriors  of  the  text.
-              Pad  can  be  a list of one or two screen distances.  If pad has
-              two elements, the left side of the text is padded by  the  first
-              distance  and the right side by the second.  If pad has just one
-              distance, both the left and right sides are padded evenly.   The
-              default is 4.
-
-       -pady pad
-              Sets the padding above and below the text.  Pad can be a list of
-              one or two screen distances.  If pad has two elements, the  area
-              above  the  text  is  padded  by the first distance and the area
-              below by the second.  If pad is just one distance, both the  top
-              and bottom areas are padded evenly.  The default is 4.
-
-       -rotate theta
-              Specifies  the number of degrees to rotate the text.  Theta is a
-
-       option-value pairs may be used with the marker's configure command.
-
-       The following options are specific to window markers:
-
-       -anchor anchor
-              Anchor tells how to position the widget relative  to  the  posi-
-              tioning  point  for the widget. For example, if anchor is center
-              then the widget is centered on the point; if anchor  is  n  then
-              the  widget  will be displayed such that the top center point of
-              the rectangular region occupied by the widget  will  be  at  the
-              positioning point.  This option defaults to center.
-
-       -height pixels
-              Specifies  the height to assign to the marker's window.  If this
-              option isn't specified, or if it is specified as  "",  then  the
-              window  is given whatever height the widget requests internally.
-
-       -width pixels
-              Specifies the width to assign to the marker's window.   If  this
-              option  isn't  specified,  or if it is specified as "", then the
-              window is given whatever width the widget requests internally.
-
-       -window pathName
-              Specifies the widget to be managed by the graph.  PathName  must
-              be a child of the graph widget.
-
-
-
-

GRAPH COMPONENT BINDINGS

-       Specific  graph  components,  such  as  elements,  markers  and  legend
-       entries, can have a command trigger when event  occurs  in  them,  much
-       like  canvas  items in Tk's canvas widget.  Not all event sequences are
-       valid.  The only binding events that may be specified are those related
-       to  the  mouse and keyboard (such as Enter, Leave, ButtonPress, Motion,
-       and KeyPress).
-
-       Only one element or marker can be picked during an event.  This  means,
-       that  if  the mouse is directly over both an element and a marker, only
-       the uppermost component  is  selected.   This  isn't  true  for  legend
-       entries.   Both  a legend entry and an element (or marker) binding com-
-       mands will be invoked if both items are picked.
-
-       It is possible for multiple bindings to match a particular event.  This
-       could occur, for example, if one binding is associated with the element
-       name and another is associated with one of the element's tags (see  the
-       -bindtags  option).  When this occurs, all of the matching bindings are
-       invoked.  A binding associated with the element name is invoked  first,
-       followed  by  one binding for each of the element's bindtags.  If there
-       are multiple matching bindings for a single tag,  then  only  the  most
-       specific  binding  is  invoked.  A continue command in a binding script
-       terminates that script, and a break command terminates that script  and
-       skips  any  remaining  scripts for the event, just as for the bind com-
-       mand.
-
-       vectors are updated.
-
-       From  Tcl,  create  the  vectors and configure the element to use them.
-       vector X Y .g element configure line1 -xdata X -ydata  Y  To  set  data
-       points  from  C,  you  pass  the  values as arrays of doubles using the
-       Blt_ResetVector call.  The vector is reset with the new data and at the
-       next  idle  point (when Tk re-enters its event loop), the graph will be
-       redrawn automatically.  #include <tcl.h> #include <blt.h>
-
-       register int i; Blt_Vector *xVec, *yVec; double x[50], y[50];
-
-       /* Get the BLT vectors "X" and "Y"  (created  above  from  Tcl)  */  if
-       ((Blt_GetVector(interp, "X", &xVec) != TCL_OK) ||
-           (Blt_GetVector(interp, "Y", &yVec) != TCL_OK)) {
-           return TCL_ERROR; }
-
-       for (i = 0; i < 50; i++) {
-           x[i] = i * 0.02;
-           y[i] = sin(x[i]); }
-
-       /*  Put  the data into BLT vectors */ if ((Blt_ResetVector(xVec, x, 50,
-       50, TCL_VOLATILE) != TCL_OK) ||
-           (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) {
-          return TCL_ERROR; } See the vector manual page for more details.
-
-
-
-

SPEED TIPS

-       There may be cases where the graph needs to be  drawn  and  updated  as
-       quickly  as possible.  If drawing speed becomes a big problem, here are
-       a few tips to speed up displays.
-
-       o Try to minimize the number of data points.  The more data points  the
-         looked at, the more work the graph must do.
-
-       o If your data is generated as floating point values, the time required
-         to convert the data values to and from ASCII strings can be  signifi-
-         cant,  especially when there any many data points.  You can avoid the
-         redundant string-to-decimal conversions using the C API to  BLT  vec-
-         tors.
-
-       o Data  elements  without  symbols  are drawn faster than with symbols.
-         Set the data element's -symbol option to none.  If you need  to  draw
-         symbols, try using the simple symbols such as splus and scross.
-
-       o Don't stipple or dash the element.  Solid lines are much faster.
-
-       o If  you update data elements frequently, try turning off the widget's
-         -bufferelements option.  When the graph is first displayed, it  draws
-         data  elements  into an internal pixmap.  The pixmap acts as a cache,
-         so that when the graph needs to be redrawn again, and the  data  ele-
-         ments or coordinate axes haven't changed, the pixmap is simply copied
-         to the screen.  This is especially useful when you are using  markers
-         to  highlight  points  and regions on the graph.  But if the graph is
-
-
-
-BLT                               BLT_VERSION                         graph(n)
-
-
-
-Man(1) output converted with -man2html -
- - diff --git a/tkblt/doc/graph.n b/tkblt/doc/graph.n deleted file mode 100644 index fbbbb9b..0000000 --- a/tkblt/doc/graph.n +++ /dev/null @@ -1,2408 +0,0 @@ -'\" -'\" Smithsonian Astrophysical Observatory, Cambridge, MA, USA -'\" This code has been modified under the terms listed below and is made -'\" available under the same terms. -'\" -'\" Copyright 1991-1998 by Bell Labs Innovations for Lucent Technologies. -'\" -'\" Permission to use, copy, modify, and distribute this software and its -'\" documentation for any purpose and without fee is hereby granted, provided -'\" that the above copyright notice appear in all copies and that both that the -'\" copyright notice and warranty disclaimer appear in supporting documentation, -'\" and that the names of Lucent Technologies any of their entities not be used -'\" in advertising or publicity pertaining to distribution of the software -'\" without specific, written prior permission. -'\" -'\" Lucent Technologies disclaims all warranties with regard to this software, -'\" including all implied warranties of merchantability and fitness. In no event -'\" shall Lucent Technologies be liable for any special, indirect or -'\" consequential damages or any damages whatsoever resulting from loss of use, -'\" data or profits, whether in an action of contract, negligence or other -'\" tortuous action, arising out of or in connection with the use or performance -'\" of this software. -'\" -'\" Graph widget created by Sani Nassif and George Howlett. -'\" -.TH graph n BLT_VERSION BLT "BLT Built-In Commands" -.BS -'\" Note: do not modify the .SH NAME line immediately below! -.SH NAME -graph \- 2D graph for plotting X\-Y coordinate data. -.SH SYNOPSIS -\fBgraph\fI \fIpathName \fR?\fIoption value\fR?... -.BE -.SH DESCRIPTION -The \fBgraph\fR command creates a graph for plotting -two-dimensional data (X\-Y coordinates). It has many configurable -components: coordinate axes, elements, legend, grid lines, cross -hairs, etc. They allow you to customize the look and feel of the -graph. -.SH INTRODUCTION -The \fBgraph\fR command creates a new window for plotting -two-dimensional data (X\-Y coordinates). Data points are plotted in a -rectangular area displayed in the center of the new window. This is the -\fIplotting area\fR. The coordinate axes are drawn in the -margins around the plotting area. By default, the legend is displayed -in the right margin. The title is displayed in top margin. -.PP -The \fBgraph\fR widget is composed of several components: coordinate -axes, data elements, legend, grid, cross hairs, pens, postscript, and -annotation markers. -.TP 1i -\f(CWaxis\fR -The graph has four standard axes (\f(CWx\fR, \f(CWx2\fR, -\f(CWy\fR, and \f(CWy2\fR), but you can create and display any number -of axes. Axes control what region of data is -displayed and how the data is scaled. Each axis consists of the axis -line, title, major and minor ticks, and tick labels. Tick labels -display the value at each major tick. -.TP 1i -\f(CWcrosshairs\fR -Cross hairs are used to position the mouse pointer relative to the X -and Y coordinate axes. Two perpendicular lines, intersecting at the -current location of the mouse, extend across the plotting area to the -coordinate axes. -.TP 1i -\f(CWelement\fR -An element represents a set of data points. Elements can be plotted -with a symbol at each data point and lines connecting the points. -The appearance of the element, such as its symbol, line width, and -color is configurable. -.TP 1i -\f(CWgrid\fR -Extends the major and minor ticks of the X\-axis and/or Y\-axis across the -plotting area. -.TP 1i -\f(CWlegend\fR -The legend displays the name and symbol of each data element. -The legend can be drawn in any margin or in the plotting area. -.TP 1i -\f(CWmarker\fR -Markers are used annotate or highlight areas of the graph. For -example, you could use a polygon marker to fill an area under a -curve, or a text marker to label a particular data point. Markers -come in various forms: text strings, bitmaps, connected line -segments, images, polygons, or embedded widgets. -.TP 1i -\f(CWpen\fR -Pens define attributes (both symbol and line style) for elements. -Data elements use pens to specify how they should be drawn. A data -element may use many pens at once. Here, the particular pen -used for a data point is determined from each element's weight -vector (see the element's \fB\-weight\fR and \fB\-style\fR options). -.TP 1i -\f(CWpostscript\fR -The widget can generate encapsulated PostScript output. This component -has several options to configure how the PostScript is generated. -.SH SYNTAX -.DS -\fBgraph \fIpathName \fR?\fIoption value\fR?... -.DE -The \fBgraph\fR command creates a new window \fIpathName\fR and makes -it into a \fBgraph\fR widget. At the time this command is invoked, there -must not exist a window named \fIpathName\fR, but \fIpathName\fR's -parent must exist. Additional options may be specified on the -command line or in the option database to configure aspects of the -graph such as its colors and font. See the \fBconfigure\fR operation -below for the exact details about what \fIoption\fR and \fIvalue\fR -pairs are valid. -.PP -If successful, \fBgraph\fR returns the path name of the widget. It -also creates a new Tcl command by the same name. You can use this -command to invoke various operations that query or modify the graph. -The general form is: -.DS -\fIpathName \fIoperation\fR \fR?\fIarg\fR?... -.DE -Both \fIoperation\fR and its arguments determine the exact behavior of -the command. The operations available for the graph are described in -the -.SB "GRAPH OPERATIONS" -section. -.PP -The command can also be used to access components of the graph. -.DS -\fIpathName component operation\fR ?\fIarg\fR?... -.DE -The operation, now located after the name of the component, is the -function to be performed on that component. Each component has its own -set of operations that manipulate that component. They will be -described below in their own sections. -.SH EXAMPLE -The \fBgraph\fR command creates a new graph. -.CS -# Create a new graph. Plotting area is black. -graph .g \-plotbackground black -.CE -A new Tcl command \f(CW.g\fR is also created. This command can be used -to query and modify the graph. For example, to change the title of -the graph to "My Plot", you use the new command and the graph's -\fBconfigure\fR operation. -.CS -# Change the title. -\&.g configure \-title "My Plot" -.CE -A graph has several components. To access a particular component you -use the component's name. For example, to add data elements, you use -the new command and the \fBelement\fR component. -.CS -# Create a new element named "line1" -\&.g element create line1 \\ - \-xdata { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } \\ - \-ydata { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 - 155.85 166.60 175.38 } -.CE -The element's X-Y coordinates are specified using lists of -numbers. Alternately, BLT vectors could be used to hold the X\-Y -coordinates. -.CS -# Create two vectors and add them to the graph. -vector xVec yVec -xVec set { 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 } -yVec set { 26.18 50.46 72.85 93.31 111.86 128.47 143.14 155.85 - 166.60 175.38 } -\&.g element create line1 \-xdata xVec \-ydata yVec -.CE -The advantage of using vectors is that when you modify one, the graph -is automatically redrawn to reflect the new values. -.CS -# Change the y coordinate of the first point. -set yVector(0) 25.18 -.CE -An element named \f(CWe1\fR is now created in \f(CW.b\fR. It -is automatically added to the display list of elements. You can -use this list to control in what order elements are displayed. -To query or reset the element display list, you use the element's -\fBshow\fR operation. -.CS -# Get the current display list -set elemList [.b element show] -# Remove the first element so it won't be displayed. -\&.b element show [lrange $elemList 0 end] -.CE -The element will be displayed by as many bars as there are data points -(in this case there are ten). The bars will be drawn centered at the -x-coordinate of the data point. All the bars will have the same -attributes (colors, stipple, etc). The width of each bar is by -default one unit. You can change this with using the \fB\-barwidth\fR -option. -.CS -# Change the X\-Y coordinates of the first point. -set xVec(0) 0.18 -set yVec(0) 25.18 -.CE -An element named \f(CWline1\fR is now created in \f(CW.g\fR. By -default, the element's label in the legend will be also \f(CWline1\fR. -You can change the label, or specify no legend entry, again using the -element's \fBconfigure\fR operation. -.CS -# Don't display "line1" in the legend. -\&.g element configure line1 \-label "" -.CE -You can configure more than just the element's label. An element has -many attributes such as symbol type and size, dashed or solid lines, -colors, line width, etc. -.CS -\&.g element configure line1 \-symbol square \-color red \\ - \-dashes { 2 4 2 } \-linewidth 2 \-pixels 2c -.CE -Four coordinate axes are automatically created: \f(CWx\fR, \f(CWx2\fR, -\f(CWy\fR, and \f(CWy2\fR. And by default, elements are mapped onto the -axes \f(CWx\fR and \f(CWy\fR. This can be changed with the \fB\-mapx\fR -and \fB\-mapy\fR options. -.CS -# Map "line1" on the alternate Y\-axis "y2". -\&.g element configure line1 \-mapy y2 -.CE -Axes can be configured in many ways too. For example, you change the -scale of the Y\-axis from linear to log using the \fBaxis\fR component. -.CS -# Y\-axis is log scale. -\&.g axis configure y \-logscale yes -.CE -One important way axes are used is to zoom in on a particular data -region. Zooming is done by simply specifying new axis limits using -the \fB\-min\fR and \fB\-max\fR configuration options. -.CS -\&.g axis configure x \-min 1.0 \-max 1.5 -\&.g axis configure y \-min 12.0 \-max 55.15 -.CE -To zoom interactively, you link the \fBaxis configure\fR operations with -some user interaction (such as pressing the mouse button), using the -\fBbind\fR command. To convert between screen and graph coordinates, -use the \fBinvtransform\fR operation. -.CS -# Click the button to set a new minimum -bind .g { - %W axis configure x \-min [%W axis invtransform x %x] - %W axis configure x \-min [%W axis invtransform x %y] -} -.CE -By default, the limits of the axis are determined from data values. -To reset back to the default limits, set the \fB\-min\fR and -\fB\-max\fR options to the empty value. -.CS -# Reset the axes to autoscale again. -\&.g axis configure x \-min {} \-max {} -\&.g axis configure y \-min {} \-max {} -.CE -By default, the legend is drawn in the right margin. You can -change this or any legend configuration options using the -\fBlegend\fR component. -.CS -# Configure the legend font, color, and relief -\&.g legend configure \-position left \-relief raised \\ - \-font fixed \-fg blue -.CE -To prevent the legend from being displayed, turn on the \fB\-hide\fR -option. -.CS -# Don't display the legend. -\&.g legend configure \-hide yes\fR -.CE -The \fBgraph\fR widget has simple drawing procedures called markers. -They can be used to highlight or annotate data in the graph. The types -of markers available are bitmaps, images, polygons, lines, or windows. -Markers can be used, for example, to mark or brush points. In this -example, is a text marker that labels the data first point. Markers -are created using the \fBmarker\fR component. -.CS -# Create a label for the first data point of "line1". -\&.g marker create text \-name first_marker \-coords { 0.2 26.18 } \\ - \-text "start" \-anchor se \-xoffset -10 \-yoffset -10 -.CE -This creates a text marker named \f(CWfirst_marker\fR. It will display -the text "start" near the coordinates of the first data point. The -\fB\-anchor\fR, \fB\-xoffset\fR, and \fB\-yoffset\fR options are used -to display the marker above and to the left of the data point, so that -the data point isn't covered by the marker. By default, -markers are drawn last, on top of data. You can change this with the -\fB\-under\fR option. -.CS -# Draw the label before elements are drawn. -\&.g marker configure first_marker \-under yes -.CE -You can add cross hairs or grid lines using the \fBcrosshairs\fR and -\fBgrid\fR components. -.CS -# Display both cross hairs and grid lines. -\&.g crosshairs configure \-hide no \-color red -\&.g grid configure \-hide no \-dashes { 2 2 } -# Set up a binding to reposition the crosshairs. -bind .g { - .g crosshairs configure -position @%x,%y -} -.CE -The crosshairs are repositioned as the mouse pointer is moved -in the graph. The pointer X-Y coordinates define the center -of the crosshairs. -.PP -Finally, to get hardcopy of the graph, use the \fBpostscript\fR -component. -.CS -# Print the graph into file "file.ps" -\&.g postscript output file.ps \-maxpect yes \-decorations no -.CE -This generates a file \f(CWfile.ps\fR containing the encapsulated -PostScript of the graph. The option \fB\-maxpect\fR says to scale the -plot to the size of the page. Turning off the \fB\-decorations\fR -option denotes that no borders or color backgrounds should be -drawn (i.e. the background of the margins, legend, and plotting -area will be white). -.SH "GRAPH OPERATIONS" -.TP -\fIpathName \fBaxis \fIoperation \fR?\fIarg\fR?... -See the -.SB "AXIS COMPONENTS" -section. -.TP -\fIpathName \fBbar \fIelemName \fR?\fIoption value\fR?... -Creates a new barchart element \fIelemName\fR. It's an -error if an element \fIelemName\fR already exists. -See the manual for \fBbarchart\fR for details about -what \fIoption\fR and \fIvalue\fR pairs are valid. -.TP -\fIpathName \fBcget\fR \fIoption\fR -Returns the current value of the configuration option given by -\fIoption\fR. \fIOption\fR may be any option described -below for the \fBconfigure\fR operation. -.TP -\fIpathName \fBconfigure \fR?\fIoption value\fR?... -Queries or modifies the configuration options of the graph. If -\fIoption\fR isn't specified, a list describing the current -options for \fIpathName\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the option \fIoption\fR is set to \fIvalue\fR. -The following options are valid. -.RS -.TP -\fB\-aspect \fIwidth/height\fR -Force a fixed aspect ratio of \fIwidth/height\fR, a floating point number. -.TP -\fB\-background \fIcolor\fR -Sets the background color. This includes the margins and -legend, but not the plotting area. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the width of the 3\-D border around the outside edge of the widget. The -\fB\-relief\fR option determines if the border is to be drawn. The -default is \f(CW2\fR. -.TP -\fB\-bottommargin \fIpixels\fR -If non-zero, overrides the computed size of the margin extending -below the X\-coordinate axis. -If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used. -The default is \f(CW0\fR. -.TP -\fB\-bufferelements \fIboolean\fR -Indicates whether an internal pixmap to buffer the display of data -elements should be used. If \fIboolean\fR is true, data elements are -drawn to an internal pixmap. This option is especially useful when -the graph is redrawn frequently while the remains data unchanged (for -example, moving a marker across the plot). See the -.SB "SPEED TIPS" -section. -The default is \f(CW1\fR. -.TP -\fB\-cursor \fIcursor\fR -Specifies the widget's cursor. The default cursor is \f(CWcrosshair\fR. -.TP -\fB\-font \fIfontName\fR -Specifies the font of the graph title. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-18-180-*\fR. -.TP -\fB\-halo \fIpixels\fR -Specifies a maximum distance to consider when searching for the -closest data point (see the element's \fBclosest\fR operation below). -Data points further than \fIpixels\fR away are ignored. The default is -\f(CW0.5i\fR. -.TP -\fB\-height \fIpixels\fR -Specifies the requested height of widget. The default is -\f(CW4i\fR. -.TP -\fB\-invertxy \fIboolean\fR -Indicates whether the placement X\-axis and Y\-axis should be inverted. If -\fIboolean\fR is true, the X and Y axes are swapped. The default is -\f(CW0\fR. -.TP -\fB\-justify \fIjustify\fR -Specifies how the title should be justified. This matters only when -the title contains more than one line of text. \fIJustify\fR must be -\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-leftmargin \fIpixels\fR -If non-zero, overrides the computed size of the margin extending -from the left edge of the window to the Y\-coordinate axis. -If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used. -The default is \f(CW0\fR. -.TP -\fB\-plotbackground \fIcolor\fR -Specifies the background color of the plotting area. The default is -\f(CWwhite\fR. -.TP -\fB\-plotborderwidth \fIpixels\fR -Sets the width of the 3-D border around the plotting area. The -\fB\-plotrelief\fR option determines if a border is drawn. The -default is \f(CW2\fR. -.TP -\fB\-plotpadx \fIpad\fR -Sets the amount of padding to be added to the left and right sides of -the plotting area. \fIPad\fR can be a list of one or two screen -distances. If \fIpad\fR has two elements, the left side of the -plotting area entry is padded by the first distance and the right side -by the second. If \fIpad\fR is just one distance, both the left and -right sides are padded evenly. The default is \f(CW8\fR. -.TP -\fB\-plotpady \fIpad\fR -Sets the amount of padding to be added to the top and bottom of the -plotting area. \fIPad\fR can be a list of one or two screen -distances. If \fIpad\fR has two elements, the top of the plotting -area is padded by the first distance and the bottom by the second. If -\fIpad\fR is just one distance, both the top and bottom are padded -evenly. The default is \f(CW8\fR. -.TP -\fB\-plotrelief \fIrelief\fR -Specifies the 3-D effect for the plotting area. \fIRelief\fR -specifies how the interior of the plotting area should appear relative -to rest of the graph; for example, \f(CWraised\fR means the plot should -appear to protrude from the graph, relative to the surface of the -graph. The default is \f(CWsunken\fR. -.TP -\fB\-relief \fIrelief\fR -Specifies the 3-D effect for the graph widget. \fIRelief\fR -specifies how the graph should appear relative to widget it is packed -into; for example, \f(CWraised\fR means the graph should -appear to protrude. The default is \f(CWflat\fR. -.TP -\fB\-rightmargin \fIpixels\fR -If non-zero, overrides the computed size of the margin extending -from the plotting area to the right edge of -the window. By default, the legend is drawn in this margin. -If \fIpixels\fR is \f(CW0\fR, the automatically computed size is used. -The default is \f(CW0\fR. -.TP -\fB\-takefocus\fR \fIfocus\fR -Provides information used when moving the focus from window to window -via keyboard traversal (e.g., Tab and Shift-Tab). If \fIfocus\fR is -\f(CW0\fR, this means that this window should be skipped entirely during -keyboard traversal. \f(CW1\fR means that the this window should always -receive the input focus. An empty value means that the traversal -scripts make the decision whether to focus on the window. -The default is \f(CW""\fR. -.TP -\fB\-tile \fIimage\fR -Specifies a tiled background for the widget. If \fIimage\fR isn't -\f(CW""\fR, the background is tiled using \fIimage\fR. -Otherwise, the normal background color is drawn (see the -\fB\-background\fR option). \fIImage\fR must be an image created -using the Tk \fBimage\fR command. The default is \f(CW""\fR. -.TP -\fB\-title \fItext\fR -Sets the title to \fItext\fR. If \fItext\fR is \f(CW""\fR, -no title will be displayed. -.TP -\fB\-topmargin \fIpixels\fR -If non-zero, overrides the computed size of the margin above the x2 -axis. If \fIpixels\fR is \f(CW0\fR, the automatically computed size -is used. The default is \f(CW0\fR. -.TP -\fB\-width \fIpixels\fR -Specifies the requested width of the widget. The default is -\f(CW5i\fR. -.RE -.TP -\fIpathName \fBcrosshairs \fIoperation \fR?\fIarg\fR? -See the -.SB "CROSSHAIRS COMPONENT" -section. -.TP -\fIpathName \fBelement \fIoperation \fR?\fIarg\fR?... -See the -.SB "ELEMENT COMPONENTS" -section. -.TP -\fIpathName \fBextents \fIitem\fR -Returns the size of a particular item in the graph. \fIItem\fR must -be either \f(CWleftmargin\fR, \f(CWrightmargin\fR, \f(CWtopmargin\fR, -\f(CWbottommargin\fR, \f(CWplotwidth\fR, or \f(CWplotheight\fR. -.TP -\fIpathName \fBgrid \fIoperation \fR?\fIarg\fR?... -See the -.SB "GRID COMPONENT" -section. -.TP -\fIpathName \fBinvtransform \fIwinX winY\fR -Performs an inverse coordinate transformation, mapping window -coordinates back to graph coordinates, using the standard X\-axis and Y\-axis. -Returns a list of containing the X-Y graph coordinates. -.TP -\fIpathName \fBinside \fIx y\fR -Returns \f(CW1\fR is the designated screen coordinate (\fIx\fR and \fIy\fR) -is inside the plotting area and \f(CW0\fR otherwise. -.TP -\fIpathName \fBlegend \fIoperation \fR?\fIarg\fR?... -See the -.SB "LEGEND COMPONENT" -section. -.TP -\fIpathName \fBline\fB operation arg\fR... -The operation is the same as \fBelement\fR. -.TP -\fIpathName \fBmarker \fIoperation \fR?\fIarg\fR?... -See the -.SB "MARKER COMPONENTS" -section. -.TP -\fIpathName \fBpostscript \fIoperation \fR?\fIarg\fR?... -See the -.SB "POSTSCRIPT COMPONENT" -section. -.TP -\fIpathName \fBsnap \fR?\fIswitches\fR? \fIoutputName\fR -Takes a snapshot of the graph, saving the output in \fIoutputName\fR. -The following switches are available. -.RS -.TP 1i -\fB\-format\fR \fIformat\fR -Specifies how the snapshot is output. \fIFormat\fR may be one of -the following listed below. The default is \f(CWphoto\fR. -.RS -.TP -\f(CWphoto\fR -Saves a Tk photo image. \fIOutputName\fR represents the name of a -Tk photo image that must already have been created. -.TP -\f(CWwmf\fR -Saves an Aldus Placeable Metafile. \fIOutputName\fR represents the -filename where the metafile is written. If \fIoutputName\fR is -\f(CWCLIPBOARD\fR, then output is written directly to the Windows -clipboard. This format is available only under Microsoft Windows. -.TP -\f(CWemf\fR -Saves an Enhanced Metafile. \fIOutputName\fR represents the filename -where the metafile is written. If \fIoutputName\fR is -\f(CWCLIPBOARD\fR, then output is written directly to the Windows -clipboard. This format is available only under Microsoft Windows. -.RE -.TP 1i -\fB\-height\fR \fIsize\fR -Specifies the height of the graph. \fISize\fR is a screen distance. -The graph will be redrawn using this dimension, rather than its -current window height. -.TP 1i -\fB\-width\fR \fIsize\fR -Specifies the width of the graph. \fISize\fR is a screen distance. -The graph will be redrawn using this dimension, rather than its -current window width. -.RE -.TP -\fIpathName \fBtransform \fIx y\fR -Performs a coordinate transformation, mapping graph coordinates to -window coordinates, using the standard X\-axis and Y\-axis. -Returns a list containing the X\-Y screen coordinates. -.TP -\fIpathName \fBxaxis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fBx2axis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fByaxis \fIoperation\fR ?\fIarg\fR?... -.TP -\fIpathName \fBy2axis \fIoperation\fR ?\fIarg\fR?... -See the -.SB "AXIS COMPONENTS" -section. -.SH "GRAPH COMPONENTS" -A graph is composed of several components: coordinate axes, data -elements, legend, grid, cross hairs, postscript, and annotation -markers. Instead of one big set of configuration options and -operations, the graph is partitioned, where each component has its own -configuration options and operations that specifically control that -aspect or part of the graph. -.SS "AXIS COMPONENTS" -Four coordinate axes are automatically created: two X\-coordinate axes -(\f(CWx\fR and \f(CWx2\fR) and two Y\-coordinate axes (\f(CWy\fR, and -\f(CWy2\fR). By default, the axis \f(CWx\fR is located in the bottom -margin, \f(CWy\fR in the left margin, \f(CWx2\fR in the top margin, and -\f(CWy2\fR in the right margin. -.PP -An axis consists of the axis line, title, major and minor ticks, and -tick labels. Major ticks are drawn at uniform intervals along the -axis. Each tick is labeled with its coordinate value. Minor ticks -are drawn at uniform intervals within major ticks. -.PP -The range of the axis controls what region of data is plotted. -Data points outside the minimum and maximum limits of the axis are -not plotted. By default, the minimum and maximum limits are -determined from the data, but you can reset either limit. -.PP -You can have several axes. To create an axis, invoke -the axis component and its create operation. -.CS -# Create a new axis called "tempAxis" -\&.g axis create tempAxis -.CE -You map data elements to an axis using the element's \-mapy and \-mapx -configuration options. They specify the coordinate axes an element -is mapped onto. -.CS -# Now map the tempAxis data to this axis. -\&.g element create "e1" \-xdata $x \-ydata $y \-mapy tempAxis -.CE -Any number of axes can be displayed simultaneously. They are drawn in -the margins surrounding the plotting area. The default axes \f(CWx\fR -and \f(CWy\fR are drawn in the bottom and left margins. The axes -\f(CWx2\fR and \f(CWy2\fR are drawn in top and right margins. By -default, only \f(CWx\fR and \f(CWy\fR are shown. Note that the axes -can have different scales. -.PP -To display a different axis or more than one axis, you invoke one of -the following components: \fBxaxis\fR, \fByaxis\fR, \fBx2axis\fR, and -\fBy2axis\fR. Each component has a \fBuse\fR operation that -designates the axis (or axes) to be drawn in that corresponding -margin: \fBxaxis\fR in the bottom, \fByaxis\fR in the left, -\fBx2axis\fR in the top, and \fBy2axis\fR in the right. -.CS -# Display the axis tempAxis in the left margin. -\&.g yaxis use tempAxis -.CE -The \fBuse\fR operation takes a list of axis names as its last -argument. This is the list of axes to be drawn in this margin. -.PP -You can configure axes in many ways. The axis scale can be linear or -logarithmic. The values along the axis can either monotonically -increase or decrease. If you need custom tick labels, you can specify -a Tcl procedure to format the label any way you wish. You can control -how ticks are drawn, by changing the major tick interval or the number -of minor ticks. You can define non-uniform tick intervals, such as -for time-series plots. -.PP -.TP -\fIpathName \fBaxis bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for an axis with this -tag, \fIcommand\fR will be invoked. The syntax is similar to the -\fBbind\fR command except that it operates on graph axes, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBaxis \fBcget \fIaxisName \fIoption\fR -Returns the current value of the option given by \fIoption\fR for -\fIaxisName\fR. \fIOption\fR may be any option described below -for the axis \fBconfigure\fR operation. -.TP -\fIpathName \fBaxis \fBconfigure \fIaxisName \fR?\fIaxisName\fR?... ?\fIoption value\fR?... -Queries or modifies the configuration options of \fIaxisName\fR. -Several axes can be changed. If \fIoption\fR isn't specified, a list -describing all the current options for \fIaxisName\fR is returned. If -\fIoption\fR is specified, but not \fIvalue\fR, then a list describing -\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR -pairs are specified, then for each pair, the axis option \fIoption\fR -is set to \fIvalue\fR. The following options are valid for axes. -.RS -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for the axis. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events for axes are handled. Each tag in the list matching the current event -sequence will have its Tcl command executed. Implicitly the name of -the element is always the first tag in the list. The default value is -\f(CWall\fR. -.TP -\fB\-color \fIcolor\fR -Sets the color of the axis and tick labels. -The default is \f(CWblack\fR. -.TP -\fB\-descending \fIboolean\fR -Indicates whether the values along the axis are monotonically increasing or -decreasing. If \fIboolean\fR is true, the axis values will be -decreasing. The default is \f(CW0\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates if the axis is displayed. If \fIboolean\fR is false the axis -will be displayed. Any element mapped to the axis is displayed regardless. -The default value is \f(CW0\fR. -.TP -\fB\-justify \fIjustify\fR -Specifies how the axis title should be justified. This matters only -when the axis title contains more than one line of text. \fIJustify\fR -must be \f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-limits \fIformatStr\fR -Specifies a printf-like description to format the minimum and maximum -limits of the axis. The limits are displayed at the top/bottom or -left/right sides of the plotting area. \fIFormatStr\fR is a list of -one or two format descriptions. If one description is supplied, both -the minimum and maximum limits are formatted in the same way. If two, -the first designates the format for the minimum limit, the second for -the maximum. If \f(CW""\fR is given as either description, then -the that limit will not be displayed. The default is \f(CW""\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the axis and tick lines. The default is \f(CW1\fR -pixel. -.TP -\fB\-logscale \fIboolean\fR -Indicates whether the scale of the axis is logarithmic or linear. If -\fIboolean\fR is true, the axis is logarithmic. The default scale is -linear. -.TP -\fB\-loose \fIboolean\fR -Indicates whether the limits of the axis should fit the data points tightly, -at the outermost data points, or loosely, at the outer tick intervals. -If the axis limit is set with the -min or -max option, the axes are -displayed tightly. -If \fIboolean\fR is true, the axis range is "loose". -The default is \f(CW0\fR. -.TP -\fB\-majorticks \fImajorList\fR -Specifies where to display major axis ticks. You can use this option -to display ticks at non-uniform intervals. \fIMajorList\fR is a list -of axis coordinates designating the location of major ticks. No -minor ticks are drawn. If \fImajorList\fR is \f(CW""\fR, -major ticks will be automatically computed. The default is \f(CW""\fR. -.TP -\fB\-max \fIvalue\fR -Sets the maximum limit of \fIaxisName\fR. Any data point greater -than \fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR, -the maximum limit is calculated using the largest data value. -The default is \f(CW""\fR. -.TP -\fB\-min \fIvalue\fR -Sets the minimum limit of \fIaxisName\fR. Any data point less than -\fIvalue\fR is not displayed. If \fIvalue\fR is \f(CW""\fR, -the minimum limit is calculated using the smallest data value. -The default is \f(CW""\fR. -.TP -\fB\-minorticks \fIminorList\fR -Specifies where to display minor axis ticks. You can use this option -to display minor ticks at non-uniform intervals. \fIMinorList\fR is a -list of real values, ranging from 0.0 to 1.0, designating the placement of -a minor tick. No minor ticks are drawn if the \fB\-majortick\fR -option is also set. If \fIminorList\fR is \f(CW""\fR, minor ticks will -be automatically computed. The default is \f(CW""\fR. -.TP -\fB\-rotate \fItheta\fR -Specifies the how many degrees to rotate the axis tick labels. -\fITheta\fR is a real value representing the number of degrees -to rotate the tick labels. The default is \f(CW0.0\fR degrees. -.TP -\fB\-scrollcommand \fIcommand\fR -Specify the prefix for a command used to communicate with scrollbars -for this axis, such as \fI.sbar set\fP. -.TP -\fB\-scrollmax \fIvalue\fR -Sets the maximum limit of the axis scroll region. If \fIvalue\fR is -\f(CW""\fR, the maximum limit is calculated using the largest data -value. The default is \f(CW""\fR. -.TP -\fB\-scrollmin \fIvalue\fR -Sets the minimum limit of axis scroll region. If \fIvalue\fR is -\f(CW""\fR, the minimum limit is calculated using the smallest data -value. The default is \f(CW""\fR. -.TP -\fB\-showticks \fIboolean\fR -Indicates whether axis ticks should be drawn. If \fIboolean\fR is -true, ticks are drawn. If false, only the -axis line is drawn. The default is \f(CW1\fR. -.TP -\fB\-stepsize \fIvalue\fR -Specifies the interval between major axis ticks. If \fIvalue\fR isn't -a valid interval (must be less than the axis range), -the request is ignored and the step size is automatically calculated. -.TP -\fB\-subdivisions \fInumber\fR -Indicates how many minor axis ticks are -to be drawn. For example, if \fInumber\fR is two, only one minor -tick is drawn. If \fInumber\fR is one, no minor ticks are -displayed. The default is \f(CW2\fR. -.TP -\fB\-tickfont \fIfontName\fR -Specifies the font for axis tick labels. The default is -\f(CW*-Courier-Bold-R-Normal-*-100-*\fR. -.TP -\fB\-tickformat\fR \fIformatStr\fR -Specifies a printf-like description to format teh axis -tick labels. You can get the standard tick labels again by -setting \fIformatStr\fR to \f(CW""\fR. The default is \f(CW""\fR. -.TP -\fB\-tickformatcommand\fR, \fB\-command \fIprefix\fR -Specifies a Tcl command to be invoked when formatting the axis tick -labels. \fIPrefix\fR is a string containing the name of a Tcl proc and -any extra arguments for the procedure. This command is invoked for each -major tick on the axis. Two additional arguments are passed to the -procedure: the pathname of the widget and the current the numeric -value of the tick. The procedure returns the formatted tick label. If -\f(CW""\fR is returned, no label will appear next to the tick. You can -get the standard tick labels again by setting \fIprefix\fR to -\f(CW""\fR. The default is \f(CW""\fR. -.sp 1 -The numeric value for the tick might change when using the -\fB\-logscale\fR and \fB\-tickformat\fR options. -.sp 1 -Please note that this procedure is invoked while the graph is redrawn. -You may query configuration options. But do not them, because this -can have unexpected results. -.TP -\fB\-ticklength \fIpixels\fR -Sets the length of major and minor ticks (minor ticks are half the -length of major ticks). If \fIpixels\fR is less than zero, the axis -will be inverted with ticks drawn pointing towards the plot. The -default is \f(CW0.1i\fR. -.TP -\fB\-title \fItext\fR -Sets the title of the axis. If \fItext\fR is -\f(CW""\fR, no axis title will be displayed. -.TP -\fB\-titlealternate \fIboolean\fR -Indicates to display the axis title in its alternate location. -Normally the axis title is centered along the axis. This option -places the axis either to the right (horizontal axes) or above -(vertical axes) the axis. The default is \f(CW0\fR. -.TP -\fB\-titlecolor \fIcolor\fR -Sets the color of the axis title. The default is \f(CWblack\fR. -.TP -\fB\-titlefont \fIfontName\fR -Specifies the font for axis title. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-14-140-*\fR. -.PP -Axis configuration options may be also be set by the \fBoption\fR -command. The resource class is \f(CWAxis\fR. The resource names -are the names of the axes (such as \f(CWx\fR or \f(CWx2\fR). -.CS -option add *Graph.Axis.Color blue -option add *Graph.x.LogScale true -option add *Graph.x2.LogScale false -.CE -.RE -.TP -\fIpathName \fBaxis \fBcreate \fIaxisName \fR?\fIoption value\fR?... -Creates a new axis by the name \fIaxisName\fR. No axis by the same -name can already exist. \fIOption\fR and \fIvalue\fR are described -in above in the axis \fBconfigure\fR operation. -.TP -\fIpathName \fBaxis \fBdelete \fR?\fIaxisName\fR?... -Deletes the named axes. An axis is not really -deleted until it is not longer in use, so it's safe to delete -axes mapped to elements. -.TP -\fIpathName \fBaxis invtransform \fIaxisName value\fR -Performs the inverse transformation, changing the screen coordinate -\fIvalue\fR to a graph coordinate, mapping the value mapped to -\fIaxisName\fR. Returns the graph coordinate. -.TP -\fIpathName \fBaxis limits \fIaxisName\fR -Returns a list of the minimum and maximum limits for \fIaxisName\fR. The order -of the list is \f(CWmin max\fR. -.TP -\fIpathName \fBaxis names \fR?\fIpattern\fR?... -Returns a list of axes matching zero or more patterns. If no -\fIpattern\fR argument is give, the names of all axes are returned. -.TP -\fIpathName \fBaxis transform \fIaxisName value\fR -Transforms the coordinate \fIvalue\fR to a screen coordinate by mapping -the it to \fIaxisName\fR. Returns the transformed screen coordinate. -.TP -\fIpathName \fBaxis view \fIaxisName\fR -Change the viewable area of this axis. Use as an argument to a scrollbar's "\fI\-command\fR". -.PP -The default axes are \f(CWx\fR, \f(CWy\fR, \f(CWx2\fR, and \f(CWy2\fR. -But you can display more than four axes simultaneously. You can also -swap in a different axis with \fBuse\fR operation of the special axis -components: \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR. -.CS -\&.g create axis temp -\&.g create axis time -\&... -\&.g xaxis use temp -\&.g yaxis use time -.CE -Only the axes specified for use are displayed on the screen. -.PP -The \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, and \fBy2axis\fR -components operate on an axis location rather than a specific axis -like the more general \fBaxis\fR component does. They implicitly -control the axis that is currently using to that location. By -default, \fBxaxis\fR uses the \f(CWx\fR axis, \fByaxis\fR uses -\f(CWy\fR, \fBx2axis\fR uses \f(CWx2\fR, and \fBy2axis\fR uses -\f(CWy2\fR. When more than one axis is displayed in a margin, it -represents the first axis displayed. -.PP -The following operations are available for axes. They mirror exactly -the operations of the \fBaxis\fR component. The \fIaxis\fR argument -must be \fBxaxis\fR, \fBx2axis\fR, \fByaxis\fR, or \fBy2axis\fR. This -feature is deprecated since more than one axis can now be used a -margin. You should only use the \fBxaxis\fR, \fBx2axis\fR, -\fByaxis\fR, and \fBy2axis\fR components with the \fBuse\fR operation. -For all other operations, use the general \fBaxis\fR component -instead. -.TP -\fIpathName \fIaxis \fBcget \fIoption\fR -.TP -\fIpathName \fIaxis \fBconfigure \fR?\fIoption value\fR?... -.TP -\fIpathName \fIaxis\fB invtransform \fIvalue\fR -.TP -\fIpathName \fIaxis \fBlimits\fR -.TP -\fIpathName \fIaxis\fB transform \fIvalue\fR -.TP -\fIpathName \fIaxis\fB use \fR?\fIaxisName\fR? -Designates the axis \fIaxisName\fR is to be displayed at this -location. \fIAxisName\fR can not be already in use at another location. -This command returns the name of the axis currently using this location. -.SS "CROSSHAIRS COMPONENT" -Cross hairs consist of two intersecting lines (one vertical and one horizontal) -drawn completely across the plotting area. They are used to position -the mouse in relation to the coordinate axes. Cross hairs differ from line -markers in that they are implemented using XOR drawing primitives. -This means that they can be quickly drawn and erased without redrawing -the entire graph. -.PP -The following operations are available for cross hairs: -.TP -\fIpathName \fBcrosshairs cget \fIoption\fR -Returns the current value of the cross hairs configuration option -given by \fIoption\fR. \fIOption\fR may be any option -described below for the cross hairs \fBconfigure\fR operation. -.TP -\fIpathName \fBcrosshairs configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options of the cross hairs. If -\fIoption\fR isn't specified, a list describing all the current -options for the cross hairs is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the cross hairs option \fIoption\fR is set to -\fIvalue\fR. -The following options are available for cross hairs. -.RS -.TP -\fB\-color \fIcolor\fR -Sets the color of the cross hairs. The default is \f(CWblack\fR. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the cross hairs. \fIDashList\fR is a list of up -to 11 numbers that alternately represent the lengths of the dashes -and gaps on the cross hair lines. Each number must be between 1 and -255. If \fIdashList\fR is \f(CW""\fR, the cross hairs will be solid -lines. -.TP -\fB\-hide \fIboolean\fR -Indicates whether cross hairs are drawn. If \fIboolean\fR is true, -cross hairs are not drawn. The default is \f(CWyes\fR. -.TP -\fB\-linewidth \fIpixels\fR -Set the width of the cross hair lines. The default is \f(CW1\fR. -.TP -\fB\-position \fIpos\fR -Specifies the screen position where the cross hairs intersect. -\fIPos\fR must be in the form "\fI@x,y\fR", where \fIx\fR and \fIy\fR -are the window coordinates of the intersection. -.PP -Cross hairs configuration options may be also be set by the -\fBoption\fR command. The resource name and class are -\f(CWcrosshairs\fR and \f(CWCrosshairs\fR respectively. -.CS -option add *Graph.Crosshairs.LineWidth 2 -option add *Graph.Crosshairs.Color red -.CE -.RE -.TP -\fIpathName \fBcrosshairs off\fR -Turns off the cross hairs. -.TP -\fIpathName \fBcrosshairs on\fR -Turns on the display of the cross hairs. -.TP -\fIpathName \fBcrosshairs toggle\fR -Toggles the current state of the cross hairs, alternately mapping and -unmapping the cross hairs. -.SS "ELEMENT COMPONENTS" -A data element represents a set of data. It contains x and y vectors -containing the coordinates of the data points. Elements can be -displayed with a symbol at each data point and lines connecting the -points. Elements also control the appearance of the data, such as the -symbol type, line width, color etc. -.PP -When new data elements are created, they are automatically added to a -list of displayed elements. The display list controls what elements -are drawn and in what order. -.PP -The following operations are available for elements. -.TP -\fIpathName \fBelement activate \fIelemName \fR?\fIindex\fR?... -Specifies the data points of element \fIelemName\fR to be drawn -using active foreground and background colors. \fIElemName\fR is the -name of the element and \fIindex\fR is a number representing the index -of the data point. If no indices are present then all data points -become active. -.TP -\fIpathName \fBelement bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for an element with this -tag, \fIcommand\fR will be invoked. The syntax is similar to the -\fBbind\fR command except that it operates on graph elements, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBelement cget \fIelemName \fIoption\fR -Returns the current value of the element configuration option given by -\fIoption\fR. \fIOption\fR may be any of the options described below -for the element \fBconfigure\fR operation. -.TP -\fIpathName \fBelement closest \fIx y\fR ?\fIoption value\fR?... ?\fIelemName\fR?... -Searches for the data point closest to the window coordinates \fIx\fR -and \fIy\fR. By default, all elements are searched. Hidden elements -(see the \fB\-hide\fR option is false) are ignored. You can limit the -search by specifying only the elements you want to be considered. -\fIElemName\fR must be the name of an element that can not be hidden. -It returns a key-value list containing the name of the closest element, -the index of the closest data point, and the graph-coordinates of the point. -Returns \f(CW""\fR, if no data point within the threshold distance -can be found. The following -\fIoption\fR\-\fIvalue\fR pairs are available. -.RS -.TP -\fB\-along \fIdirection\fR -Search for the closest element using the following criteria: -.RS -.TP -\f(CWx\fR -Find closest element vertically from the given X-coordinate. -.TP -\f(CWy\fR -Find the closest element horizontally from the given Y-coordinate. -.TP -\f(CWboth\fR -Find the closest element for the given point (using both the X and Y -coordinates). -.RE -.TP -\fB\-halo \fIpixels\fR -Specifies a threshold distance where selected data points are ignored. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -If this option isn't specified, then it defaults to the value of the -graph's \fB\-halo\fR option. -.TP -\fB\-interpolate \fIstring\fR -Indicates whether to consider projections that lie along the line segments -connecting data points when searching for the closest point. -The default value is \f(CW0\fR. The values for \fIstring\fR are -described below. -.RS -.TP 1.25i -\f(CWno\fR -Search only for the closest data point. -.TP -\f(CWyes\fR -Search includes projections that lie along the -line segments connecting the data points. -.RE -.RE -.TP -\fIpathName \fBelement configure \fIelemName \fR?\fIelemName\fR... ?\fIoption value\fR?... -Queries or modifies the configuration options for elements. Several -elements can be modified at the same time. If \fIoption\fR isn't -specified, a list describing all the current options for -\fIelemName\fR is returned. If \fIoption\fR is specified, but not -\fIvalue\fR, then a list describing the option \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the element option \fIoption\fR is set -to \fIvalue\fR. The following options are valid for elements. -.RS -.TP -\fB\-activepen \fIpenName\fR -Specifies pen to use to draw active element. If \fIpenName\fR is -\f(CW""\fR, no active elements will be drawn. The default is -\f(CWactiveLine\fR. -.TP -\fB\-areabackground \fIcolor\fR -Specifies the background color of the area under the curve. The -background area color is drawn only for bitmaps (see the -\fB\-areapattern\fR option). If \fIcolor\fR is \f(CW""\fR, the -background is transparent. The default is \f(CWblack\fR. -.TP -\fB\-areaforeground \fIcolor\fR -Specifies the foreground color of the area under the curve. -The default is \f(CWblack\fR. -.TP -\fB\-areapattern \fIpattern\fR -Specifies how to fill the area under the curve. \fIPattern\fR may be -the name of a Tk bitmap, \f(CWsolid\fR, or \f(CW""\fR. If "solid", -then the area under the curve is drawn with the color designated by -the \fB\-areaforeground\fR option. If a bitmap, then the bitmap is -stippled across the area. Here the bitmap colors are controlled by the -\fB\-areaforeground\fR and \fB\-areabackground\fR options. If -\fIpattern\fR is \f(CW""\fR, no filled area is drawn. The default is -\f(CW""\fR. -.TP -\fB\-areatile \fIimage\fR -Specifies the name of a Tk image to be used to tile the area under the -curve. This option supersedes the \fB\-areapattern\fR option. -\fIImage\fR must be a photo image. If \fIimage\fR is \f(CW""\fR, no -tiling is performed. The default is \f(CW""\fR. -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for the element. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events are handled for elements. Each tag in the list matching the -current event -sequence will have its Tcl command executed. Implicitly the name of -the element is always the first tag in the list. The default value is -\f(CWall\fR. -.TP -\fB\-color \fIcolor\fR -Sets the color of the traces connecting the data points. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of element line. \fIDashList\fR is a list of up to -11 numbers that alternately represent the lengths of the dashes and -gaps on the element line. Each number must be between 1 and 255. If -\fIdashList\fR is \f(CW""\fR, the lines will be solid. -.TP -\fB\-data \fIcoordList\fR -Specifies the X\-Y coordinates of the data. \fICoordList\fR is a -list of numeric expressions representing the X\-Y coordinate pairs -of each data point. -.TP -\fB\-fill \fIcolor\fR -Sets the interior color of symbols. If \fIcolor\fR is \f(CW""\fR, then -the interior of the symbol is transparent. If \fIcolor\fR is -\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR -option. The default is \f(CWdefcolor\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the element is displayed. -The default is \f(CWno\fR. -.TP -\fB\-label \fItext\fR -Sets the element's label in the legend. If \fItext\fR -is \f(CW""\fR, the element will have no entry in the legend. -The default label is the element's name. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the connecting lines between data points. If -\fIpixels\fR is \f(CW0\fR, no connecting lines will be drawn between -symbols. The default is \f(CW0\fR. -.TP -\fB\-mapx \fIxAxis\fR -Selects the X\-axis to map the element's X\-coordinates onto. -\fIXAxis\fR must be the name of an axis. The default is \f(CWx\fR. -.TP -\fB\-mapy \fIyAxis\fR -Selects the Y\-axis to map the element's Y\-coordinates onto. -\fIYAxis\fR must be the name of an axis. The default is \f(CWy\fR. -.TP -\fB\-offdash \fIcolor\fR -Sets the color of the stripes when traces are dashed (see the -\fB\-dashes\fR option). If \fIcolor\fR is \f(CW""\fR, then the "off" -pixels will represent gaps instead of stripes. If \fIcolor\fR is -\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR -option. The default is \f(CWdefcolor\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color or the outline around each symbol. If \fIcolor\fR is -\f(CW""\fR, then no outline is drawn. If \fIcolor\fR is \f(CWdefcolor\fR, -then the color will be the same as the \fB\-color\fR option. The -default is \f(CWdefcolor\fR. -.TP -\fB\-pen \fIpenname\fR -Set the pen to use for this element. -.TP -\fB\-outlinewidth \fIpixels\fR -Sets the width of the outline bordering each symbol. If \fIpixels\fR -is \f(CW0\fR, no outline will be drawn. The default is \f(CW1\fR. -.TP -\fB\-pixels \fIpixels\fR -Sets the size of symbols. If \fIpixels\fR is \f(CW0\fR, no symbols will -be drawn. The default is \f(CW0.125i\fR. -.TP -\fB\-scalesymbols \fIboolean\fR -If \fIboolean\fR is true, the size of the symbols -drawn for \fIelemName\fR will change with scale of the X\-axis and Y\-axis. -At the time this option is set, the current ranges of the axes are -saved as the normalized scales (i.e scale factor is 1.0) and the -element is drawn at its designated size (see the \fB\-pixels\fR -option). As the scale of the axes change, the symbol will be scaled -according to the smaller of the X\-axis and Y\-axis scales. If \fIboolean\fR -is false, the element's symbols are drawn at the designated size, -regardless of axis scales. The default is \f(CW0\fR. -.TP -\fB\-smooth \fIsmooth\fR -Specifies how connecting line segments are drawn between data points. -\fISmooth\fR can be either \f(CWlinear\fR, \f(CWstep\fR, \f(CWnatural\fR, or -\f(CWquadratic\fR. If \fIsmooth\fR is \f(CWlinear\fR, a single line -segment is drawn, connecting both data points. When \fIsmooth\fR is -\f(CWstep\fR, two line segments are drawn. The first is a horizontal -line segment that steps the next X\-coordinate. The second is a -vertical line, moving to the next Y\-coordinate. Both \fInatural\fR and -\fIquadratic\fR generate multiple segments between data points. If -\fInatural\fR, the segments are generated using a cubic spline. If -\fIquadratic\fR, a quadratic spline is used. The default is -\fIlinear\fR. -.TP -\fB\-styles \fIstyleList\fR -Specifies what pen to use based on the range of weights given. -\fIStyleList\fR is a list of style specifications. Each style -specification, in turn, is a list consisting of a pen name, and -optionally a minimum and maximum range. Data points whose weight (see -the \fB\-weight\fR option) falls in this range, are drawn with this -pen. If no range is specified it defaults to the index of the pen in -the list. Note that this affects only symbol attributes. Line -attributes, such as line width, dashes, etc. are ignored. -.TP -\fB\-symbol \fIsymbol\fR -Specifies the symbol for data points. \fISymbol\fR can be either -\f(CWsquare\fR, \f(CWcircle\fR, \f(CWdiamond\fR, \f(CWplus\fR, \f(CWcross\fR, -\f(CWsplus\fR, \f(CWscross\fR, \f(CWtriangle\fR, \f(CW""\fR (where no symbol -is drawn), or a bitmap. Bitmaps are specified as "\fIsource\fR -?\fImask\fR?", where \fIsource\fR is the name of the bitmap, and -\fImask\fR is the bitmap's optional mask. The default is -\f(CWcircle\fR. -.TP -\fB\-trace \fIdirection\fR -Indicates whether connecting lines between data points (whose -X\-coordinate values are either increasing or decreasing) are drawn. -\fIDirection\fR -must be \f(CWincreasing\fR, \f(CWdecreasing\fR, or \f(CWboth\fR. For -example, if \fIdirection\fR is \f(CWincreasing\fR, connecting lines will -be drawn only between those data points where X\-coordinate values are -monotonically increasing. If \fIdirection\fR is \f(CWboth\fR, -connecting lines will be draw between all data points. The default is -\f(CWboth\fR. -.TP -\fB\-weights \fIwVec\fR -Specifies the weights of the individual data points. This, -with the list pen styles (see the \fB\-styles\fR option), -controls how data points are drawn. \fIWVec\fR is the name of a BLT -vector or a list of numeric expressions representing the weights for -each data point. -.TP -\fB\-xdata \fIxVec\fR -Specifies the X\-coordinates of the data. \fIXVec\fR is the name of -a BLT vector or a list of numeric expressions. -.TP -\fB\-ydata \fIyVec\fR -Specifies the Y\-coordinates of the data. \fIYVec\fR is the name of -a BLT vector or a list of numeric expressions. -.PP -Element configuration options may also be set by the \fBoption\fR -command. The resource class is \f(CWElement\fR. The resource name is -the name of the element. -.CS -option add *Graph.Element.symbol line -option add *Graph.e1.symbol line -.CE -.RE -.TP -\fIpathName \fBelement create \fIelemName\fR ?\fIoption value\fR?... -Creates a new element \fIelemName\fR. It's an error is -an element \fIelemName\fR already exists. If -additional arguments are present, they specify options valid for -the element \fBconfigure\fR operation. -.TP -\fIpathName \fBelement deactivate \fIelemName\fR ?\fIelemName\fR?... -Deactivates all the elements matching \fIpattern\fR. -Elements whose names match any of the patterns given are redrawn using -their normal colors. -.TP -\fIpathName \fBelement delete\fR ?\fIelemName\fR?... -Deletes all the named elements. The graph is automatically redrawn. -.TP -\fIpathName \fBelement exists \fIelemName\fR -Returns \f(CW1\fR if an element \fIelemName\fR currently exists and -\f(CW0\fR otherwise. -.TP -\fIpathName \fBelement names \fR?\fIpattern\fR?... -Returns the elements matching one or more pattern. If no -\fIpattern\fR is given, the names of all elements is returned. -.TP -\fIpathName \fBelement show\fR ?\fInameList\fR? -Queries or modifies the element display list. The element display -list designates the elements drawn and in what -order. \fINameList\fR is a list of elements to be displayed in the -order they are named. If there is no \fInameList\fR argument, -the current display list is returned. -.TP -\fIpathName \fBelement type\fR \fIelemName\fR -Returns the type of \fIelemName\fR. -If the element is a bar element, the commands returns the string -\f(CW"bar"\fR, otherwise it returns \f(CW"line"\fR. -.CE -.SS "GRID COMPONENT" -Grid lines extend from the major and minor ticks of each axis -horizontally or vertically across the plotting area. The following -operations are available for grid lines. -.TP -\fIpathName \fBgrid cget \fIoption\fR -Returns the current value of the grid line configuration option given by -\fIoption\fR. \fIOption\fR may be any option described below -for the grid \fBconfigure\fR operation. -.TP -\fIpathName \fBgrid configure\fR ?\fIoption value\fR?... -Queries or modifies the configuration options for grid lines. If -\fIoption\fR isn't specified, a list describing all the current -grid options for \fIpathName\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the grid line option \fIoption\fR is set to -\fIvalue\fR. The following options are valid for grid lines. -.RS -.TP -\fB\-color \fIcolor\fR -Sets the color of the grid lines. The default is \f(CWblack\fR. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the grid lines. \fIDashList\fR is a list of up -to 11 numbers that alternately represent the lengths of the dashes -and gaps on the grid lines. Each number must be between 1 and 255. -If \fIdashList\fR is \f(CW""\fR, the grid will be solid lines. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the grid should be drawn. If \fIboolean\fR -is true, grid lines are not shown. The default is \f(CWyes\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of grid lines. The default width is \f(CW1\fR. -.TP -\fB\-mapx \fIxAxis\fR -Specifies the X\-axis to display grid lines. \fIXAxis\fR -must be the name of an axis or \f(CW""\fR for no grid lines. -The default is \f(CW""\fR. -.TP -\fB\-mapy \fIyAxis\fR -Specifies the Y\-axis to display grid lines. \fIYAxis\fR -must be the name of an axis or \f(CW""\fR for no grid lines. -The default is \f(CWy\fR. -.TP -\fB\-minor \fIboolean\fR -Indicates whether the grid lines should be drawn for minor ticks. -If \fIboolean\fR is true, the lines will appear at -minor tick intervals. The default is \f(CW1\fR. -.PP -Grid configuration options may also be set by the -\fBoption\fR command. The resource name and class are \f(CWgrid\fR and -\f(CWGrid\fR respectively. -.CS -option add *Graph.grid.LineWidth 2 -option add *Graph.Grid.Color black -.CE -.RE -.TP -\fIpathName \fBgrid off\fR -Turns off the display the grid lines. -.TP -\fIpathName \fBgrid on\fR -Turns on the display the grid lines. -.TP -\fIpathName \fBgrid toggle\fR -Toggles the display of the grid. -.SS "LEGEND COMPONENT" -The legend displays a list of the data elements. Each entry consists -of the element's symbol and label. The legend can appear in any -margin (the default location is in the right margin). It -can also be positioned anywhere within the plotting area. -.PP -The following operations are valid for the legend. -.TP -\fIpathName \fBlegend activate \fIpattern\fR... -Selects legend entries to be drawn using the active legend colors and relief. -All entries whose element names match \fIpattern\fR are selected. To -be selected, the element name must match only one \fIpattern\fR. -.TP -\fIpathName \fBlegend bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for a legend entry with this -tag, \fIcommand\fR will be invoked. Implicitly the element names -in the entry are tags. The syntax is similar to the -\fBbind\fR command except that it operates on legend entries, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBlegend cget \fIoption\fR -Returns the current value of a legend configuration option. -\fIOption\fR may be any option described below in the -legend \fBconfigure\fR operation. -.TP -\fIpathName \fBlegend configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options for the legend. If -\fIoption\fR isn't specified, a list describing the current -legend options for \fIpathName\fR is returned. If \fIoption\fR is -specified, but not \fIvalue\fR, then a list describing \fIoption\fR is -returned. If one or more \fIoption\fR and \fIvalue\fR pairs are -specified, then for each pair, the legend option \fIoption\fR is set -to \fIvalue\fR. The following options are valid for the legend. -.RS -.TP -\fB\-activebackground \fIcolor\fR -Sets the background color for active legend entries. All legend -entries marked active (see the legend \fBactivate\fR operation) are -drawn using this background color. -.TP -\fB\-activeborderwidth \fIpixels\fR -Sets the width of the 3-D border around the outside edge of the active legend -entries. The default is \f(CW2\fR. -.TP -\fB\-activeforeground \fIcolor\fR -Sets the foreground color for active legend entries. All legend -entries marked as active (see the legend \fBactivate\fR operation) are -drawn using this foreground color. -.TP -\fB\-activerelief \fIrelief\fR -Specifies the 3-D effect desired for active legend entries. -\fIRelief\fR denotes how the interior of the entry should appear -relative to the legend; for example, \f(CWraised\fR means the entry -should appear to protrude from the legend, relative to the surface of -the legend. The default is \f(CWflat\fR. -.TP -\fB\-anchor \fIanchor\fR -Tells how to position the legend relative to the positioning point for -the legend. This is dependent on the value of the \fB\-position\fR -option. The default is \f(CWcenter\fR. -.RS -.TP 1.25i -\f(CWleft\fR or \f(CWright\fR -The anchor describes how to position the legend vertically. -.TP -\f(CWtop\fR or \f(CWbottom\fR -The anchor describes how to position the legend horizontally. -.TP -\f(CW@x,y\fR -The anchor specifies how to position the legend relative to the -positioning point. For example, if \fIanchor\fR is \f(CWcenter\fR then -the legend is centered on the point; if \fIanchor\fR is \f(CWn\fR then -the legend will be drawn such that the top center point of the -rectangular region occupied by the legend will be at the positioning -point. -.TP -\f(CWplotarea\fR -The anchor specifies how to position the legend relative to the -plotting area. For example, if \fIanchor\fR is \f(CWcenter\fR then the -legend is centered in the plotting area; if \fIanchor\fR is \f(CWne\fR -then the legend will be drawn such that occupies the upper right -corner of the plotting area. -.RE -.TP -\fB\-background \fIcolor\fR -Sets the background color of the legend. If \fIcolor\fR is \f(CW""\fR, -the legend background with be transparent. -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for legend entries. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events are handled for legend entries. Each tag in the list matching -the current event sequence will have its Tcl command executed. The -default value is \f(CWall\fR. -.TP -\fB\-borderwidth \fIpixels\fR -Sets the width of the 3-D border around the outside edge of the legend (if -such border is being drawn; the \fBrelief\fR option determines this). -The default is \f(CW2\fR pixels. -.TP -\fB\-font \fIfontName\fR -\fIFontName\fR specifies a font to use when drawing the labels of each -element into the legend. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-12-120-*\fR. -.TP -\fB\-foreground \fIcolor\fR -Sets the foreground color of the text drawn for the element's label. -The default is \f(CWblack\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the legend should be displayed. If \fIboolean\fR is -true, the legend will not be draw. The default is \f(CWno\fR. -.TP -\fB\-ipadx \fIpad\fR -Sets the amount of internal padding to be added to the width of each -legend entry. \fIPad\fR can be a list of one or two screen distances. If -\fIpad\fR has two elements, the left side of the legend entry is -padded by the first distance and the right side by the second. If -\fIpad\fR is just one distance, both the left and right sides are padded -evenly. The default is \f(CW2\fR. -.TP -\fB\-ipady \fIpad\fR -Sets an amount of internal padding to be added to the height of each -legend entry. \fIPad\fR can be a list of one or two screen distances. If -\fIpad\fR has two elements, the top of the entry is padded by the -first distance and the bottom by the second. If \fIpad\fR is just -one distance, both the top and bottom of the entry are padded evenly. -The default is \f(CW2\fR. -.TP -\fB\-padx \fIpad\fR -Sets the padding to the left and right exteriors of the legend. -\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR -has two elements, the left side of the legend is padded by the first -distance and the right side by the second. If \fIpad\fR has just one -distance, both the left and right sides are padded evenly. The -default is \f(CW4\fR. -.TP -\fB\-pady \fIpad\fR -Sets the padding above and below the legend. \fIPad\fR can be a list -of one or two screen distances. If \fIpad\fR has two elements, the area above -the legend is padded by the first distance and the area below by the -second. If \fIpad\fR is just one distance, both the top and -bottom areas are padded evenly. The default is \f(CW0\fR. -.TP -\fB\-position \fIpos\fR -Specifies where the legend is drawn. The -\fB\-anchor\fR option also affects where the legend is positioned. If -\fIpos\fR is \f(CWleft\fR, \f(CWleft\fR, \f(CWtop\fR, or \f(CWbottom\fR, the -legend is drawn in the specified margin. If \fIpos\fR is -\f(CWplotarea\fR, then the legend is drawn inside the plotting area at a -particular anchor. If \fIpos\fR is in the form "\fI@x,y\fR", where -\fIx\fR and \fIy\fR are the window coordinates, the legend is drawn in -the plotting area at the specified coordinates. The default is -\f(CWright\fR. -.TP -\fB\-raised \fIboolean\fR -Indicates whether the legend is above or below the data elements. This -matters only if the legend is in the plotting area. If \fIboolean\fR -is true, the legend will be drawn on top of any elements that may -overlap it. The default is \f(CWno\fR. -.TP -\fB\-relief \fIrelief\fR -Specifies the 3-D effect for the border around the legend. -\fIRelief\fR specifies how the interior of the legend should appear -relative to the graph; for example, \f(CWraised\fR means the legend -should appear to protrude from the graph, relative to the surface of -the graph. The default is \f(CWsunken\fR. -.PP -Legend configuration options may also be set by the \fBoption\fR -command. The resource name and class are \f(CWlegend\fR and -\f(CWLegend\fR respectively. -.CS -option add *Graph.legend.Foreground blue -option add *Graph.Legend.Relief raised -.CE -.RE -.TP -\fIpathName \fBlegend deactivate \fIpattern\fR... -Selects legend entries to be drawn using the normal legend colors and -relief. All entries whose element names match \fIpattern\fR are -selected. To be selected, the element name must match only one -\fIpattern\fR. -.TP -\fIpathName \fBlegend get \fIpos\fR -Returns the name of the element whose entry is at the screen position -\fIpos\fR in the legend. \fIPos\fR must be in the form "\fI@x,y\fR", -where \fIx\fR and \fIy\fR are window coordinates. If the given -coordinates do not lie over a legend entry, \f(CW""\fR is returned. -.SS "PEN COMPONENTS" -Pens define attributes (both symbol and line style) for elements. -Pens mirror the configuration options of data elements that pertain to -how symbols and lines are drawn. Data elements use pens to determine -how they are drawn. A data element may use several pens at once. In -this case, the pen used for a particular data point is determined from -each element's weight vector (see the element's \fB\-weight\fR and -\fB\-style\fR options). -.PP -One pen, called \f(CWactiveLine\fR, is automatically created. -It's used as the default active pen for elements. So you can change -the active attributes for all elements by simply reconfiguring this -pen. -.CS -\&.g pen configure "activeLine" -color green -.CE -You can create and use several pens. To create a pen, invoke -the pen component and its create operation. -.CS -\&.g pen create myPen -.CE -You map pens to a data element using either the element's -\fB\-pen\fR or \fB\-activepen\fR options. -.CS -\&.g element create "line1" -xdata $x -ydata $tempData \\ - -pen myPen -.CE -An element can use several pens at once. This is done by specifying -the name of the pen in the element's style list (see the -\fB\-styles\fR option). -.CS -\&.g element configure "line1" -styles { myPen 2.0 3.0 } -.CE -This says that any data point with a weight between 2.0 and 3.0 -is to be drawn using the pen \f(CWmyPen\fR. All other points -are drawn with the element's default attributes. -.PP -The following operations are available for pen components. -.PP -.TP -\fIpathName \fBpen \fBcget \fIpenName \fIoption\fR -Returns the current value of the option given by \fIoption\fR for -\fIpenName\fR. \fIOption\fR may be any option described below -for the pen \fBconfigure\fR operation. -.TP -\fIpathName \fBpen \fBconfigure \fIpenName \fR?\fIpenName\fR... ?\fIoption value\fR?... -Queries or modifies the configuration options of -\fIpenName\fR. Several pens can be modified at once. If \fIoption\fR -isn't specified, a list describing the current options for -\fIpenName\fR is returned. If \fIoption\fR is specified, but not -\fIvalue\fR, then a list describing \fIoption\fR is returned. If one -or more \fIoption\fR and \fIvalue\fR pairs are specified, then for -each pair, the pen option \fIoption\fR is set to \fIvalue\fR. The -following options are valid for pens. -.RS -.TP -\fB\-color \fIcolor\fR -Sets the color of the traces connecting the data points. -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of element line. \fIDashList\fR is a list of up to -11 numbers that alternately represent the lengths of the dashes and -gaps on the element line. Each number must be between 1 and 255. If -\fIdashList\fR is \f(CW""\fR, the lines will be solid. -.TP -\fB\-fill \fIcolor\fR -Sets the interior color of symbols. If \fIcolor\fR is \f(CW""\fR, then -the interior of the symbol is transparent. If \fIcolor\fR is -\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR -option. The default is \f(CWdefcolor\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the connecting lines between data points. If -\fIpixels\fR is \f(CW0\fR, no connecting lines will be drawn between -symbols. The default is \f(CW0\fR. -.TP -\fB\-offdash \fIcolor\fR -Sets the color of the stripes when traces are dashed (see the -\fB\-dashes\fR option). If \fIcolor\fR is \f(CW""\fR, then the "off" -pixels will represent gaps instead of stripes. If \fIcolor\fR is -\f(CWdefcolor\fR, then the color will be the same as the \fB\-color\fR -option. The default is \f(CWdefcolor\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color or the outline around each symbol. If \fIcolor\fR is -\f(CW""\fR, then no outline is drawn. If \fIcolor\fR is \f(CWdefcolor\fR, -then the color will be the same as the \fB\-color\fR option. The -default is \f(CWdefcolor\fR. -.TP -\fB\-outlinewidth \fIpixels\fR -Sets the width of the outline bordering each symbol. If \fIpixels\fR -is \f(CW0\fR, no outline will be drawn. The default is \f(CW1\fR. -.TP -\fB\-pixels \fIpixels\fR -Sets the size of symbols. If \fIpixels\fR is \f(CW0\fR, no symbols will -be drawn. The default is \f(CW0.125i\fR. -.TP -\fB\-symbol \fIsymbol\fR -Specifies the symbol for data points. \fISymbol\fR can be either -\f(CWsquare\fR, \f(CWcircle\fR, \f(CWdiamond\fR, \f(CWplus\fR, \f(CWcross\fR, -\f(CWsplus\fR, \f(CWscross\fR, \f(CWtriangle\fR, \f(CW""\fR (where no symbol -is drawn), or a bitmap. Bitmaps are specified as "\fIsource\fR -?\fImask\fR?", where \fIsource\fR is the name of the bitmap, and -\fImask\fR is the bitmap's optional mask. The default is -\f(CWcircle\fR. -.TP -\fB\-type \fIelemType\fR -Specifies the type of element the pen is to be used with. -This option should only be employed when creating the pen. This -is for those that wish to mix different types of elements (bars and -lines) on the same graph. The default type is "line". -.PP -Pen configuration options may be also be set by the \fBoption\fR -command. The resource class is \f(CWPen\fR. The resource names -are the names of the pens. -.CS -option add *Graph.Pen.Color blue -option add *Graph.activeLine.color green -.CE -.RE -.TP -\fIpathName \fBpen \fBcreate \fIpenName \fR?\fIoption value\fR?... -Creates a new pen by the name \fIpenName\fR. No pen by the same -name can already exist. \fIOption\fR and \fIvalue\fR are described -in above in the pen \fBconfigure\fR operation. -.TP -\fIpathName \fBpen \fBdelete \fR?\fIpenName\fR?... -Deletes the named pens. A pen is not really -deleted until it is not longer in use, so it's safe to delete -pens mapped to elements. -.TP -\fIpathName \fBpen names \fR?\fIpattern\fR?... -Returns a list of pens matching zero or more patterns. If no -\fIpattern\fR argument is give, the names of all pens are returned. -.SS "POSTSCRIPT COMPONENT" -The graph can generate encapsulated PostScript output. There -are several configuration options you can specify to control how the -plot will be generated. You can change the page dimensions and -borders. The plot itself can be scaled, centered, or rotated to -landscape. The PostScript output can be written directly to a file or -returned through the interpreter. -.PP -The following postscript operations are available. -.TP -\fIpathName \fBpostscript cget \fIoption\fR -Returns the current value of the postscript option given by -\fIoption\fR. \fIOption\fR may be any option described -below for the postscript \fBconfigure\fR operation. -.TP -\fIpathName \fBpostscript configure \fR?\fIoption value\fR?... -Queries or modifies the configuration options for PostScript -generation. If \fIoption\fR isn't specified, a list describing -the current postscript options for \fIpathName\fR is returned. If -\fIoption\fR is specified, but not \fIvalue\fR, then a list describing -\fIoption\fR is returned. If one or more \fIoption\fR and \fIvalue\fR -pairs are specified, then for each pair, the postscript option -\fIoption\fR is set to \fIvalue\fR. The following postscript options -are available. -.RS -.TP -\fB\-center \fIboolean\fR -Indicates whether the plot should be centered on the PostScript page. If -\fIboolean\fR is false, the plot will be placed in the upper left -corner of the page. The default is \f(CW1\fR. -.TP -\fB\-colormap \fIvarName\fR -\fIVarName\fR must be the name of a global array variable that -specifies a color mapping from the X color name to PostScript. Each -element of \fIvarName\fR must consist of PostScript code to set a -particular color value (e.g. ``\f(CW1.0 1.0 0.0 setrgbcolor\fR''). When -generating color information in PostScript, the array variable \fIvarName\fR -is checked if an element of the name as the color exists. If so, it uses -its value as the PostScript -command to set the color. If this option hasn't been specified, or if -there isn't an entry in \fIvarName\fR for a given color, then it uses -the red, green, and blue intensities from the X color. -.TP -\fB\-colormode \fImode\fR -Specifies how to output color information. \fIMode\fR must be either -\f(CWcolor\fR (for full color output), \f(CWgray\fR (convert all colors to -their gray-scale equivalents) or \f(CWmono\fR (convert foreground colors -to black and background colors to white). The default mode is -\f(CWcolor\fR. -.TP -\fB\-fontmap \fIvarName\fR -\fIVarName\fR must be the name of a global array variable that -specifies a font mapping from the X font name to PostScript. Each -element of \fIvarName\fR must consist of a Tcl list with one or two -elements; the name and point size of a PostScript font. -When outputting PostScript commands for a particular font, the array -variable \fIvarName\fR is checked to see if an element by the -specified font exists. If there is such an element, then the font -information contained in that element is used in the PostScript -output. (If the point size is omitted from the list, the point size -of the X font is used). Otherwise the X font is examined in an -attempt to guess what PostScript font to use. This works only for -fonts whose foundry property is \fIAdobe\fR (such as Times, Helvetica, -Courier, etc.). If all of this fails then the font defaults to -\f(CWHelvetica-Bold\fR. -.TP -\fB\-decorations \fIboolean\fR -Indicates whether PostScript commands to generate color backgrounds and 3-D -borders will be output. If \fIboolean\fR is false, the background will be -white and no 3-D borders will be generated. The -default is \f(CW1\fR. -.TP -\fB\-height \fIpixels\fR -Sets the height of the plot. This lets you print the graph with a -height different from the one drawn on the screen. If -\fIpixels\fR is 0, the height is the same as the widget's height. -The default is \f(CW0\fR. -.TP -\fB\-landscape \fIboolean\fR -If \fIboolean\fR is true, this specifies the printed area is to be -rotated 90 degrees. In non-rotated output the X\-axis of the printed -area runs along the short dimension of the page (``portrait'' -orientation); in rotated output the X\-axis runs along the long -dimension of the page (``landscape'' orientation). Defaults to -\f(CW0\fR. -.TP -\fB\-maxpect \fIboolean\fR -Indicates to scale the plot so that it fills the PostScript page. -The aspect ratio of the graph is still retained. The default is -\f(CW0\fR. -.TP -\fB\-padx \fIpad\fR -Sets the horizontal padding for the left and right page borders. The -borders are exterior to the plot. \fIPad\fR can be a list of one or -two screen distances. If \fIpad\fR has two elements, the left border is padded -by the first distance and the right border by the second. If -\fIpad\fR has just one distance, both the left and right borders are -padded evenly. The default is \f(CW1i\fR. -.TP -\fB\-pady \fIpad\fR -Sets the vertical padding for the top and bottom page borders. The -borders are exterior to the plot. \fIPad\fR can be a list of one or -two screen distances. If \fIpad\fR has two elements, the top border is padded -by the first distance and the bottom border by the second. If -\fIpad\fR has just one distance, both the top and bottom borders are -padded evenly. The default is \f(CW1i\fR. -.TP -\fB\-paperheight \fIpixels\fR -Sets the height of the postscript page. This can be used to select -between different page sizes (letter, A4, etc). The default height is -\f(CW11.0i\fR. -.TP -\fB\-paperwidth \fIpixels\fR -Sets the width of the postscript page. This can be used to select -between different page sizes (letter, A4, etc). The default width is -\f(CW8.5i\fR. -.TP -\fB\-width \fIpixels\fR -Sets the width of the plot. This lets you generate a plot -of a width different from that of the widget. If \fIpixels\fR -is 0, the width is the same as the widget's width. The default is -\f(CW0\fR. -.PP -Postscript configuration options may be also be set by the -\fBoption\fR command. The resource name and class are -\f(CWpostscript\fR and \f(CWPostscript\fR respectively. -.CS -option add *Graph.postscript.Decorations false -option add *Graph.Postscript.Landscape true -.CE -.RE -.TP -\fIpathName \fBpostscript output \fR?\fIfileName\fR? ?\fIoption value\fR?... -Outputs a file of encapsulated PostScript. If a -\fIfileName\fR argument isn't present, the command returns the -PostScript. If any \fIoption-value\fR pairs are present, they set -configuration options controlling how the PostScript is generated. -\fIOption\fR and \fIvalue\fR can be anything accepted by the -postscript \fBconfigure\fR operation above. -.SS "MARKER COMPONENTS" -Markers are simple drawing procedures used to annotate or highlight -areas of the graph. Markers have various types: text strings, -bitmaps, images, connected lines, windows, or polygons. They can be -associated with a particular element, so that when the element is -hidden or un-hidden, so is the marker. By default, markers are the -last items drawn, so that data elements will appear in -behind them. You can change this by configuring the \fB\-under\fR -option. -.PP -Markers, in contrast to elements, don't affect the scaling of the -coordinate axes. They can also have \fIelastic\fR coordinates -(specified by \f(CW-Inf\fR and \f(CWInf\fR respectively) that translate -into the minimum or maximum limit of the axis. For example, you can -place a marker so it always remains in the lower left corner of the -plotting area, by using the coordinates \f(CW-Inf\fR,\f(CW-Inf\fR. -.PP -The following operations are available for markers. -.TP -\fIpathName \fBmarker after \fImarkerId\fR ?\fIafterId\fR? -Changes the order of the markers, drawing the first -marker after the second. If no second \fIafterId\fR argument is -specified, the marker is placed at the end of the display list. This -command can be used to control how markers are displayed since markers -are drawn in the order of this display list. -.TP -\fIpathName \fBmarker before \fImarkerId\fR ?\fIbeforeId\fR? -Changes the order of the markers, drawing the first -marker before the second. If no second \fIbeforeId\fR argument is -specified, the marker is placed at the beginning of the display list. -This command can be used to control how markers are displayed since -markers are drawn in the order of this display list. -.TP -\fIpathName \fBmarker bind \fItagName\fR ?\fIsequence\fR? ?\fIcommand\fR? -Associates \fIcommand\fR with \fItagName\fR such that whenever the -event sequence given by \fIsequence\fR occurs for a marker with this -tag, \fIcommand\fR will be invoked. The syntax is similar to the -\fBbind\fR command except that it operates on graph markers, rather -than widgets. See the \fBbind\fR manual entry for -complete details on \fIsequence\fR and the substitutions performed on -\fIcommand\fR before invoking it. -.sp -If all arguments are specified then a new binding is created, replacing -any existing binding for the same \fIsequence\fR and \fItagName\fR. -If the first character of \fIcommand\fR is \f(CW+\fR then \fIcommand\fR -augments an existing binding rather than replacing it. -If no \fIcommand\fR argument is provided then the command currently -associated with \fItagName\fR and \fIsequence\fR (it's an error occurs -if there's no such binding) is returned. If both \fIcommand\fR and -\fIsequence\fR are missing then a list of all the event sequences for -which bindings have been defined for \fItagName\fR. -.TP -\fIpathName \fBmarker cget \fIoption\fR -Returns the current value of the marker configuration option given by -\fIoption\fR. \fIOption\fR may be any option described -below in the \fBconfigure\fR operation. -.TP -\fIpathName \fBmarker configure \fImarkerId\fR ?\fIoption value\fR?... -Queries or modifies the configuration options for markers. If -\fIoption\fR isn't specified, a list describing the current -options for \fImarkerId\fR is returned. If \fIoption\fR is specified, -but not \fIvalue\fR, then a list describing \fIoption\fR is returned. -If one or more \fIoption\fR and \fIvalue\fR pairs are specified, then -for each pair, the marker option \fIoption\fR is set to \fIvalue\fR. -.sp -The following options are valid for all markers. -Each type of marker also has its own type-specific options. -They are described in the sections below. -.RS -.TP -\fB\-bindtags \fItagList\fR -Specifies the binding tags for the marker. \fITagList\fR is a list -of binding tag names. The tags and their order will determine how -events for markers are handled. Each tag in the list matching the -current event sequence will have its Tcl command executed. Implicitly -the name of the marker is always the first tag in the list. -The default value is \f(CWall\fR. -.TP -\fB\-coords \fIcoordList\fR -Specifies the coordinates of the marker. \fICoordList\fR is -a list of graph coordinates. The number of coordinates required -is dependent on the type of marker. Text, image, and window markers -need only two coordinates (an X\-Y coordinate). Bitmap markers -can take either two or four coordinates (if four, they represent the -corners of the bitmap). Line markers -need at least four coordinates, polygons at least six. -If \fIcoordList\fR is \f(CW""\fR, the marker will not be displayed. -The default is \f(CW""\fR. -.TP -\fB\-element \fIelemName\fR -Links the marker with the element \fIelemName\fR. The marker is -drawn only if the element is also currently displayed (see the -element's \fBshow\fR operation). If \fIelemName\fR is \f(CW""\fR, the -marker is always drawn. The default is \f(CW""\fR. -.TP -\fB\-hide \fIboolean\fR -Indicates whether the marker is drawn. If \fIboolean\fR is true, -the marker is not drawn. The default is \f(CWno\fR. -.TP -\fB\-mapx \fIxAxis\fR -Specifies the X\-axis to map the marker's X\-coordinates onto. -\fIXAxis\fR must the name of an axis. The default is \f(CWx\fR. -.TP -\fB\-mapy \fIyAxis\fR -Specifies the Y\-axis to map the marker's Y\-coordinates onto. -\fIYAxis\fR must the name of an axis. The default is \f(CWy\fR. -.TP -\fB\-name \fImarkerId\fR -Changes the identifier for the marker. The identifier \fImarkerId\fR -can not already be used by another marker. If this option -isn't specified, the marker's name is uniquely generated. -.TP -\fB\-under \fIboolean\fR -Indicates whether the marker is drawn below/above data -elements. If \fIboolean\fR is true, the marker is be drawn -underneath the data element symbols and lines. Otherwise, the marker is -drawn on top of the element. The default is \f(CW0\fR. -.TP -\fB\-xoffset \fIpixels\fR -Specifies a screen distance to offset the marker horizontally. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -The default is \f(CW0\fR. -.TP -\fB\-yoffset \fIpixels\fR -Specifies a screen distance to offset the markers vertically. -\fIPixels\fR is a valid screen distance, such as \f(CW2\fR or \f(CW1.2i\fR. -The default is \f(CW0\fR. -.PP -Marker configuration options may also be set by the \fBoption\fR command. -The resource class is either \f(CWBitmapMarker\fR, \f(CWImageMarker\fR, -\f(CWLineMarker\fR, \f(CWPolygonMarker\fR, \f(CWTextMarker\fR, or \f(CWWindowMarker\fR, -depending on the type of marker. The resource name is the name of the -marker. -.CS -option add *Graph.TextMarker.Foreground white -option add *Graph.BitmapMarker.Foreground white -option add *Graph.m1.Background blue -.CE -.RE -.TP -\fIpathName \fBmarker create \fItype\fR ?\fIoption value\fR?... -Creates a marker of the selected type. \fIType\fR may be either -\f(CWtext\fR, \f(CWline\fR, \f(CWbitmap\fR, \f(CWimage\fR, \f(CWpolygon\fR, or -\f(CWwindow\fR. This command returns the marker identifier, -used as the \fImarkerId\fR argument in the other marker-related -commands. If the \fB\-name\fR option is used, this overrides the -normal marker identifier. If the name provided is already used for -another marker, the new marker will replace the old. -.TP -\fIpathName \fBmarker delete\fR ?\fIname\fR?... -Removes one of more markers. The graph will automatically be redrawn -without the marker.\fR. -.TP -\fIpathName \fBmarker exists \fImarkerId\fR -Returns \f(CW1\fR if the marker \fImarkerId\fR exists and \f(CW0\fR -otherwise. -.TP -\fIpathName \fBmarker names\fR ?\fIpattern\fR? -Returns the names of all the markers that currently exist. If -\fIpattern\fR is supplied, only those markers whose names match it -will be returned. -.TP -\fIpathName \fBmarker type \fImarkerId\fR -Returns the type of the marker given by \fImarkerId\fR, such as -\f(CWline\fR or \f(CWtext\fR. If \fImarkerId\fR is not a valid a marker -identifier, \f(CW""\fR is returned. -.SS "BITMAP MARKERS" -A bitmap marker displays a bitmap. The size of the -bitmap is controlled by the number of coordinates specified. If two -coordinates, they specify the position of the top-left corner of the -bitmap. The bitmap retains its normal width and height. If four -coordinates, the first and second pairs of coordinates represent the -corners of the bitmap. The bitmap will be stretched or reduced as -necessary to fit into the bounding rectangle. -.PP -Bitmap markers are created with the marker's \fBcreate\fR operation in -the form: -.DS -\fIpathName \fBmarker create bitmap \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR pairs, each -sets a configuration options for the marker. These -same \fIoption\fR\-\fIvalue\fR pairs may be used with the marker's -\fBconfigure\fR operation. -.PP -The following options are specific to bitmap markers: -.TP -\fB\-background \fIcolor\fR -Same as the \fB\-fill\fR option. -.TP -\fB\-bitmap \fIbitmap\fR -Specifies the bitmap to be displayed. If \fIbitmap\fR is \f(CW""\fR, -the marker will not be displayed. The default is \f(CW""\fR. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the bitmap. If \fIcolor\fR is the empty -string, no background will be transparent. The default background color is -\f(CW""\fR. -.TP -\fB\-foreground \fIcolor\fR -Same as the \fB\-outline\fR option. -.TP -\fB\-mask \fImask\fR -Specifies a mask for the bitmap to be displayed. This mask is a bitmap -itself, denoting the pixels that are transparent. If \fImask\fR is -\f(CW""\fR, all pixels of the bitmap will be drawn. The default is -\f(CW""\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the foreground color of the bitmap. The default value is \f(CWblack\fR. -.TP -\fB\-rotate \fItheta\fR -Sets the rotation of the bitmap. \fITheta\fR is a real number -representing the angle of rotation in degrees. The marker is first -rotated and then placed according to its anchor position. The default -rotation is \f(CW0.0\fR. -.SS "IMAGE MARKERS" -A image marker displays an image. Image markers are -created with the marker's \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create image \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR operation. -.PP -The following options are specific to image markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the image relative to the -positioning point for the image. For example, if \fIanchor\fR -is \f(CWcenter\fR then the image is centered on the point; if -\fIanchor\fR is \f(CWn\fR then the image will be drawn such that -the top center point of the rectangular region occupied by the -image will be at the positioning point. -This option defaults to \f(CWcenter\fR. -.TP -\fB\-image \fIimage\fR -Specifies the image to be drawn. -If \fIimage\fR is \f(CW""\fR, the marker will not be -drawn. The default is \f(CW""\fR. -.SS "LINE MARKERS" -A line marker displays one or more connected line segments. -Line markers are created with marker's \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create line \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR operation. -.PP -The following options are specific to line markers: -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the line. \fIDashList\fR is a list of up to 11 -numbers that alternately represent the lengths of the dashes and gaps -on the line. Each number must be between 1 and 255. If -\fIdashList\fR is \f(CW""\fR, the marker line will be solid. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the line. This color is used with -striped lines (see the \fB\-fdashes\fR option). If \fIcolor\fR is -the empty string, no background color is drawn (the line will be -dashed, not striped). The default background color is \f(CW""\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the lines. -The default width is \f(CW0\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the foreground color of the line. The default value is \f(CWblack\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies a stipple pattern used to draw the line, rather than -a solid line. -\fIBitmap\fR specifies a bitmap to use as the stipple -pattern. If \fIbitmap\fR is \f(CW""\fR, then the -line is drawn in a solid fashion. The default is \f(CW""\fR. -.SS "POLYGON MARKERS" -A polygon marker displays a closed region described as two or more -connected line segments. It is assumed the first and -last points are connected. Polygon markers are created using the -marker \fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create polygon \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the \fBmarker configure\fR command to change the marker's -configuration. -The following options are supported for polygon markers: -.TP -\fB\-dashes \fIdashList\fR -Sets the dash style of the outline of the polygon. \fIDashList\fR is a -list of up to 11 numbers that alternately represent the lengths of -the dashes and gaps on the outline. Each number must be between 1 and -255. If \fIdashList\fR is \f(CW""\fR, the outline will be a solid line. -.TP -\fB\-fill \fIcolor\fR -Sets the fill color of the polygon. If \fIcolor\fR is \f(CW""\fR, then -the interior of the polygon is transparent. -The default is \f(CWwhite\fR. -.TP -\fB\-linewidth \fIpixels\fR -Sets the width of the outline of the polygon. If \fIpixels\fR is zero, -no outline is drawn. The default is \f(CW0\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color of the outline of the polygon. If the polygon is -stippled (see the \fB\-stipple\fR option), then this represents the -foreground color of the stipple. The default is \f(CWblack\fR. -.TP -\fB\-stipple \fIbitmap\fR -Specifies that the polygon should be drawn with a stippled pattern -rather than a solid color. \fIBitmap\fR specifies a bitmap to use as -the stipple pattern. If \fIbitmap\fR is \f(CW""\fR, then the polygon is -filled with a solid color (if the \fB\-fill\fR option is set). The -default is \f(CW""\fR. -.SS "TEXT MARKERS" -A text marker displays a string of characters on one or more lines of -text. Embedded newlines cause line breaks. They may be used to -annotate regions of the graph. Text markers are created with the -\fBcreate\fR operation in the form: -.DS -\fIpathName \fBmarker create text \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR pairs, -each sets a configuration option for the text marker. -These same \fIoption\fR\-\fIvalue\fR pairs may be used with the -marker's \fBconfigure\fR operation. -.PP -The following options are specific to text markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the text relative to the -positioning point for the text. For example, if \fIanchor\fR is -\f(CWcenter\fR then the text is centered on the point; if -\fIanchor\fR is \f(CWn\fR then the text will be drawn such that the -top center point of the rectangular region occupied by the text will -be at the positioning point. This default is \f(CWcenter\fR. -.TP -\fB\-background \fIcolor\fR -Same as the \fB\-fill\fR option. -.TP -\fB\-font \fIfontName\fR -Specifies the font of the text. The default is -\f(CW*-Helvetica-Bold-R-Normal-*-120-*\fR. -.TP -\fB\-fill \fIcolor\fR -Sets the background color of the text. If \fIcolor\fR is the empty -string, no background will be transparent. The default background color is -\f(CW""\fR. -.TP -\fB\-foreground \fIcolor\fR -Same as the \fB\-outline\fR option. -.TP -\fB\-justify \fIjustify\fR -Specifies how the text should be justified. This matters only when -the marker contains more than one line of text. \fIJustify\fR must be -\f(CWleft\fR, \f(CWright\fR, or \f(CWcenter\fR. The default is -\f(CWcenter\fR. -.TP -\fB\-outline \fIcolor\fR -Sets the color of the text. The default value is \f(CWblack\fR. -.TP -\fB\-padx \fIpad\fR -Sets the padding to the left and right exteriors of the text. -\fIPad\fR can be a list of one or two screen distances. If \fIpad\fR -has two elements, the left side of the text is padded by the first -distance and the right side by the second. If \fIpad\fR has just one -distance, both the left and right sides are padded evenly. The -default is \f(CW4\fR. -.TP -\fB\-pady \fIpad\fR -Sets the padding above and below the text. \fIPad\fR can be a list of -one or two screen distances. If \fIpad\fR has two elements, the area above the -text is padded by the first distance and the area below by the second. -If \fIpad\fR is just one distance, both the top and bottom areas -are padded evenly. The default is \f(CW4\fR. -.TP -\fB\-rotate \fItheta\fR -Specifies the number of degrees to rotate the text. \fITheta\fR is a -real number representing the angle of rotation. The marker is first -rotated along its center and is then drawn according to its anchor -position. The default is \f(CW0.0\fR. -.TP -\fB\-text \fItext\fR -Specifies the text of the marker. The exact way the text is -displayed may be affected by other options such as \fB\-anchor\fR or -\fB\-rotate\fR. -.SS "WINDOW MARKERS" -A window marker displays a widget at a given position. -Window markers are created with the marker's \fBcreate\fR operation in -the form: -.DS -\fIpathName \fBmarker create window \fR?\fIoption value\fR?... -.DE -There may be many \fIoption\fR-\fIvalue\fR -pairs, each sets a configuration option -for the marker. These same \fIoption\fR\-\fIvalue\fR pairs may be -used with the marker's \fBconfigure\fR command. -.PP -The following options are specific to window markers: -.TP -\fB\-anchor \fIanchor\fR -\fIAnchor\fR tells how to position the widget relative to the -positioning point for the widget. For example, if \fIanchor\fR is -\f(CWcenter\fR then the widget is centered on the point; if \fIanchor\fR -is \f(CWn\fR then the widget will be displayed such that the top center -point of the rectangular region occupied by the widget will be at the -positioning point. This option defaults to \f(CWcenter\fR. -.TP -\fB\-height \fIpixels\fR -Specifies the height to assign to the marker's window. If this option -isn't specified, or if it is specified as \f(CW""\fR, then the window is -given whatever height the widget requests internally. -.TP -\fB\-width \fIpixels\fR -Specifies the width to assign to the marker's window. If this option -isn't specified, or if it is specified as \f(CW""\fR, then the window is -given whatever width the widget requests internally. -.TP -\fB\-window \fIpathName\fR -Specifies the widget to be managed by the graph. \fIPathName\fR must -be a child of the \fBgraph\fR widget. -.SH "GRAPH COMPONENT BINDINGS" -Specific graph components, such as elements, markers and legend -entries, can have a command trigger when event occurs in them, much -like canvas items in Tk's canvas widget. Not all event sequences are -valid. The only binding events that may be specified are those -related to the mouse and keyboard (such as \fBEnter\fR, \fBLeave\fR, -\fBButtonPress\fR, \fBMotion\fR, and \fBKeyPress\fR). -.PP -Only one element or marker can be picked during an event. This means, -that if the mouse is directly over both an element and a marker, only -the uppermost component is selected. This isn't true for legend entries. -Both a legend entry and an element (or marker) binding commands -will be invoked if both items are picked. -.PP -It is possible for multiple bindings to match a particular event. -This could occur, for example, if one binding is associated with the -element name and another is associated with one of the element's tags -(see the \fB\-bindtags\fR option). When this occurs, all of the -matching bindings are invoked. A binding associated with the element -name is invoked first, followed by one binding for each of the element's -bindtags. If there are multiple matching bindings for a single tag, -then only the most specific binding is invoked. A continue command -in a binding script terminates that script, and a break command -terminates that script and skips any remaining scripts for the event, -just as for the bind command. -.PP -The \fB\-bindtags\fR option for these components controls addition -tag names which can be matched. Implicitly elements and markers -always have tags matching their names. Setting the value of -the \fB\-bindtags\fR option doesn't change this. -.SH "C LANGUAGE API" -You can manipulate data elements from the C language. There -may be situations where it is too expensive to translate the data -values from ASCII strings. Or you might want to read data in a -special file format. -.PP -Data can manipulated from the C language using BLT vectors. -You specify the X-Y data coordinates of an element as vectors and -manipulate the vector from C. The graph will be redrawn automatically -after the vectors are updated. -.PP -From Tcl, create the vectors and configure the element to use them. -.CS -vector X Y -\&.g element configure line1 -xdata X -ydata Y -.CE -To set data points from C, you pass the values as arrays of doubles -using the \fBBlt_ResetVector\fR call. The vector is reset with the -new data and at the next idle point (when Tk re-enters its event -loop), the graph will be redrawn automatically. -.CS -#include -#include - -register int i; -Blt_Vector *xVec, *yVec; -double x[50], y[50]; - -/* Get the BLT vectors "X" and "Y" (created above from Tcl) */ -if ((Blt_GetVector(interp, "X", &xVec) != TCL_OK) || - (Blt_GetVector(interp, "Y", &yVec) != TCL_OK)) { - return TCL_ERROR; -} - -for (i = 0; i < 50; i++) { - x[i] = i * 0.02; - y[i] = sin(x[i]); -} - -/* Put the data into BLT vectors */ -if ((Blt_ResetVector(xVec, x, 50, 50, TCL_VOLATILE) != TCL_OK) || - (Blt_ResetVector(yVec, y, 50, 50, TCL_VOLATILE) != TCL_OK)) { - return TCL_ERROR; -} -.CE -See the \fBvector\fR manual page for more details. -.SH SPEED TIPS -There may be cases where the graph needs to be drawn and updated as -quickly as possible. If drawing speed becomes a big -problem, here are a few tips to speed up displays. -.TP 2 -\(bu -Try to minimize the number of data points. The more data points -the looked at, the more work the graph must do. -.TP 2 -\(bu -If your data is generated as floating point values, the time required -to convert the data values to and from ASCII strings can be -significant, especially when there any many data points. You can -avoid the redundant string-to-decimal conversions using the C API to -BLT vectors. -.TP 2 -\(bu -Data elements without symbols are drawn faster than with symbols. -Set the data element's \fB\-symbol\fR option to \f(CWnone\fR. If you need to -draw symbols, try using the simple symbols such as \f(CWsplus\fR and -\f(CWscross\fR. -.TP 2 -\(bu -Don't stipple or dash the element. Solid lines are much faster. -.TP 2 -\(bu -If you update data elements frequently, try turning off the -widget's \fB\-bufferelements\fR option. When the graph is first -displayed, it draws data elements into an internal pixmap. The pixmap -acts as a cache, so that when the graph needs to be redrawn again, and -the data elements or coordinate axes haven't changed, the pixmap is -simply copied to the screen. This is especially useful when you are -using markers to highlight points and regions on the graph. But if -the graph is updated frequently, changing either the element data or -coordinate axes, the buffering becomes redundant. -.SH LIMITATIONS -Auto-scale routines do not use requested min/max limits as boundaries -when the axis is logarithmically scaled. -.PP -The PostScript output generated for polygons with more than 1500 -points may exceed the limits of some printers (See PostScript Language -Reference Manual, page 568). The work-around is to break the polygon -into separate pieces. -.SH KEYWORDS -graph, widget diff --git a/tkblt/doc/vector.html b/tkblt/doc/vector.html deleted file mode 100644 index ef097c6..0000000 --- a/tkblt/doc/vector.html +++ /dev/null @@ -1,704 +0,0 @@ - - -
-
-
-
-

SYNOPSIS

-       blt::vector create vecName ?vecName...? ?switches?
-
-       blt::vector destroy vecName ?vecName...?
-
-       blt::vector expr expression
-
-       blt::vector names ?pattern...?
-
-
-
-

DESCRIPTION

-       The vector command creates an array of floating point values.  The vec-
-       tor's components can be manipulated in three ways: through a Tcl  array
-       variable, a Tcl command, or the C API.
-
-
-
-

INTRODUCTION

-       A vector is an ordered set of real numbers.  The components of a vector
-       are indexed by integers.
-
-       Vectors are common data structures for many applications.  For example,
-       a  graph  may  use  two vectors to represent the X-Y coordinates of the
-       data plotted.  The graph will automatically be redrawn when the vectors
-       are  updated or changed. By using vectors, you can separate data analy-
-       sis from the graph widget.  This makes it easier, for example,  to  add
-       data  transformations, such as splines.  It's possible to plot the same
-       data to in multiple graphs, where each graph presents a different  view
-       or scale of the data.
-
-       You  could  try to use Tcl's associative arrays as vectors.  Tcl arrays
-       are easy to use.  You can access individual elements randomly by speci-
-       fying  the  index,  or  the set the entire array by providing a list of
-       index and value pairs for each element.  The disadvantages of  associa-
-       tive  arrays  as  vectors  lie in the fact they are implemented as hash
-       tables.
-
-       o There's no implied ordering to the associative arrays.  If  you  used
-         vectors  for  plotting, you would want to insure the second component
-         comes after the first, an so on.  This isn't  possible  since  arrays
-         are actually hash tables.  For example, you can't get a range of val-
-         ues between two indices.  Nor can you sort an array.
-
-       o Arrays consume lots of memory when the  number  of  elements  becomes
-         large  (tens of thousands).  This is because each element's index and
-         value are stored as strings in the hash table.
-
-       o The C programming interface is unwieldy.  Normally with vectors,  you
-         would  like to view the Tcl array as you do a C array, as an array of
-         floats or doubles.  But with hash tables, you must convert  both  the
-         index  and  value to and from decimal strings, just to access an ele-
-         ment in the array.  This makes it cumbersome to perform operations on
-         the array as a whole.
-
-       The  vector  command  tries to overcome these disadvantages while still
-       0.0.  In addition, both a Tcl command and array variable, both named y,
-       are created.  You can use either the command or variable  to  query  or
-       modify components of the vector.  # Set the first value.  set y(0) 9.25
-       puts "y has [y length] components" The array y can be used to  read  or
-       set individual components of the vector.  Vector components are indexed
-       from zero.  The array index must be a number less than  the  number  of
-       components.  For example, it's an error if you try to set the 51st ele-
-       ment of y.  # This is an error. The vector only has 50 components.  set
-       y(50) 0.02 You can also specify a range of indices using a colon (:) to
-       separate the first and last indices of the range.  # Set the first  six
-       components  of y set y(0:5) 25.2 If you don't include an index, then it
-       will default to the first and/or last component of the vector.  # Print
-       out  all  the  components  of y puts "y = $y(:)" There are special non-
-       numeric indices.  The index end, specifies the last  component  of  the
-       vector.  It's an error to use this index if the vector is empty (length
-       is zero).  The index ++end can be used to extend the vector by one com-
-       ponent  and initialize it to a specific value.  You can't read from the
-       array using this index, though.  # Extend the vector by one  component.
-       set  y(++end)  0.02  The  other  special indices are min and max.  They
-       return the current smallest and largest components of  the  vector.   #
-       Print the bounds of the vector puts "min=$y(min) max=$y(max)" To delete
-       components from a vector, simply unset the corresponding array element.
-       In the following example, the first component of y is deleted.  All the
-       remaining components of y will be moved down by one index as the length
-       of  the  vector  is reduced by one.  # Delete the first component unset
-       y(0) puts "new first element is $y(0)" The  vector's  Tcl  command  can
-       also  be  used to query or set the vector.  # Create and set the compo-
-       nents of a new vector blt::vector create x x set { 0.02 0.04 0.06  0.08
-       0.10 0.12 0.14 0.16 0.18 0.20 } Here we've created a vector x without a
-       initial length specification.  In this case, the length is  zero.   The
-       set  operation  resets  the vector, extending it and setting values for
-       each new component.
-
-       There are several operations for vectors.  The  range  operation  lists
-       the  components of a vector between two indices.  # List the components
-       puts "x = [x range 0 end]" You can search for a particular value  using
-       the  search  operation.  It returns a list of indices of the components
-       with the same value.  If no component has the same  value,  it  returns
-       "".   #  Find  the index of the biggest component set indices [x search
-       $x(max)] Other operations copy,  append,  or  sort  vectors.   You  can
-       append  vectors  or  new values onto an existing vector with the append
-       operation.  # Append assorted vectors and values to x x append x2 x3  {
-       2.3  4.5  }  x4 The sort operation sorts the vector.  If any additional
-       vectors are specified, they are rearranged in the  same  order  as  the
-       vector.   For example, you could use it to sort data points represented
-       by x and y vectors.  # Sort the data points x sort y The  vector  x  is
-       sorted  while  the  components of y are rearranged so that the original
-       x,y coordinate pairs are retained.
-
-       The expr operation lets you perform arithmetic on vectors.  The  result
-       is stored in the vector.  # Add the two vectors and a scalar x expr { x
-       + y } x expr { x * 2 } When a vector is modified, resized, or  deleted,
-       Vectors are created using the vector create operation.  Th create oper-
-       ation can be invoked in one of three forms:
-
-       blt::vector create vecName
-              This  creates a new vector vecName which initially has no compo-
-              nents.
-
-       blt::vector create vecName(size)
-              This second form creates a new vector which  will  contain  size
-              number  of  components.  The components will be indexed starting
-              from zero (0). The default value for the components is 0.0.
-
-       blt::vector create vecName(first:last)
-              The last form creates a new  vector  of  indexed  first  through
-              last.   First and last can be any integer value so long as first
-              is less than last.
-
-       Vector names must start with a letter and consist of  letters,  digits,
-       or  underscores.   #  Error:  must start with letter blt::vector create
-       1abc You can automatically generate vector names using the "#auto" vec-
-       tor  name.   The  create  operation will generate a unique vector name.
-       set vec [blt::vector create #auto] puts "$vec has [$vec length]  compo-
-       nents"
-
-   VECTOR INDICES
-       Vectors  are indexed by integers.  You can access the individual vector
-       components via its array variable or Tcl command.   The  string  repre-
-       senting  the index can be an integer, a numeric expression, a range, or
-       a special keyword.
-
-       The index must lie within the current range of the vector, otherwise an
-       an  error  message  is  returned.  Normally the indices of a vector are
-       start from 0.  But you can use the offset operation to  change  a  vec-
-       tor's  indices  on-the-fly.   puts  $vecName(0)  vecName offset -5 puts
-       $vecName(-5) You can also use  numeric  expressions  as  indices.   The
-       result  of  the expression must be an integer value.  set n 21 set vec-
-       Name($n+3) 50.2 The following special non-numeric  indices  are  avail-
-       able:  min,  max, end, and ++end.  puts "min = $vecName($min)" set vec-
-       Name(end) -1.2 The indices min and max will return the minimum and max-
-       imum values of the vector.  The index end returns the value of the last
-       component in the vector.  The index ++end is used to append  new  value
-       onto  the vector.  It automatically extends the vector by one component
-       and sets its value.  # Append an new component  to  the  end  set  vec-
-       Name(++end)  3.2 A range of indices can be indicated by a colon (:).  #
-       Set the first six components to 1.0 set vecName(0:5) 1.0 If no index is
-       supplied the first or last component is assumed.  # Print the values of
-       all the components puts $vecName(:)
-
-
-
-

VECTOR OPERATIONS

-       blt::vector create vecName?(size)?... ?switches?
-              The create operation creates a new vector vecName.  Both  a  Tcl
-              command  and  array variable vecName are also created.  The name
-                     then  no  variable  will be mapped.  You can always map a
-                     variable back to the vector using the  vector's  variable
-                     operation.
-
-              -command cmdName
-                     Maps  a  Tcl  command  to  the  vector. The vector can be
-                     accessed using cmdName and one  of  the  vector  instance
-                     operations.   A  Tcl  command by that name cannot already
-                     exist.  If cmdName is the empty string, no  command  map-
-                     ping will be made.
-
-              -watchunset boolean
-                     Indicates  that  the  vector  should automatically delete
-                     itself if the variable  associated  with  the  vector  is
-                     unset.  By default, the vector will not be deleted.  This
-                     is different from  previous  releases.   Set  boolean  to
-                     "true" to get the old behavior.
-
-       blt::vector destroy vecName ?vecName...?
-              Deletes  one  or  more  vectors.  Both the Tcl command and array
-              variable are removed also.
-
-       blt::vector expr expression
-              All binary operators take vectors  as  operands  (remember  that
-              numbers are treated as one-component vectors).  The exact action
-              of binary operators depends upon the length of the second  oper-
-              and.   If  the  second operand has only one component, then each
-              element of the first vector operand is computed by  that  value.
-              For  example,  the  expression "x * 2" multiples all elements of
-              the vector x by 2.  If the second operand has more than one com-
-              ponent,  both  operands  must  be the same length.  Each pair of
-              corresponding elements are computed.  So "x + y"  adds  the  the
-              first components of x and y together, the second, and so on.
-
-              The  valid  operators  are  listed  below, grouped in decreasing
-              order of precedence:
-
-              -  !                Unary minus  and  logical  NOT.   The  unary
-                                  minus  flips  the  sign of each component in
-                                  the  vector.   The  logical   not   operator
-                                  returns  a vector of whose values are 0.0 or
-                                  1.0.  For each  non-zero  component  1.0  is
-                                  returned, 0.0 otherwise.
-
-              ^                   Exponentiation.
-
-              *  /  %             Multiply, divide, remainder.
-
-              +  -                Add and subtract.
-
-              <<  >>              Left and right shift.  Circularly shifts the
-                                  values of the vector (not implemented  yet).
-
-              &&                  Logical AND.  Produces a 1  result  if  both
-                                  operands are non-zero, 0 otherwise.
-
-              ||                  Logical OR.  Produces a 0 result if both op-
-                                  erands are zero, 1 otherwise.
-
-              x?y:z               If-then-else, as  in  C.   (Not  implemented
-                                  yet).
-
-              See  the  C  manual  for more details on the results produced by
-              each operator.  All of the binary operators group  left-to-right
-              within the same precedence level.
-
-              Several  mathematical functions are supported for vectors.  Each
-              of the following functions invokes the math library function  of
-              the  same name; see the manual entries for the library functions
-              for details on what they do.  The operation is  applied  to  all
-              elements     of    the    vector    returning    the    results.
-              acos    cos     hypot   sinh        asin    cosh    log     sqrt
-              atan    exp     log10   tan ceil    floor   sin     tanh
-
-              Additional functions are:
-
-              abs       Returns the absolute value of each component.
-
-              random    Returns a vector of non-negative values uniformly dis-
-                        tributed between [0.0, 1.0) using drand48.   The  seed
-                        comes from the internal clock of the machine or may be
-                        set manual with the srandom function.
-
-              round     Rounds each component of the vector.
-
-              srandom   Initializes the random number generator using srand48.
-                        The high order 32-bits are set using the integral por-
-                        tion of the first vector component. All  other  compo-
-                        nents  are  ignored.  The low order 16-bits are set to
-                        an arbitrary value.
-
-              The following functions return a single value.
-
-              adev      Returns the average deviation (defined as the  sum  of
-                        the  absolute values of the differences between compo-
-                        nent and the mean, divided by the length of  the  vec-
-                        tor).
-
-              kurtosis  Returns  the  degree  of peakedness (fourth moment) of
-                        the vector.
-
-              length    Returns the number of components in the vector.
-
-              max       Returns the vector's maximum value.
-
-
-              skew      Returns  the skewness (or third moment) of the vector.
-                        This characterizes the degree of asymmetry of the vec-
-                        tor about the mean.
-
-              sum       Returns the sum of the components.
-
-              var       Returns  the  variance  of  the vector. The sum of the
-                        squared differences between  each  component  and  the
-                        mean  is computed.  The variance is the sum divided by
-                        the length of the vector minus 1.
-
-              The last set returns a vector of the same length  as  the  argu-
-              ment.
-
-              norm      Scales  the  values  of the vector to lie in the range
-                        [0.0..1.0].
-
-              sort      Returns the  vector  components  sorted  in  ascending
-                        order.
-
-       vector names ?pattern?
-
-
-
-

INSTANCE OPERATIONS

-       You  can  also use the vector's Tcl command to query or modify it.  The
-       general form is vecName operation  ?arg?...   Both  operation  and  its
-       arguments  determine the exact behavior of the command.  The operations
-       available for vectors are listed below.
-
-       vecName append item ?item?...
-              Appends the component values from item to vecName.  Item can  be
-              either the name of a vector or a list of numeric values.
-
-       vecName binread channel ?length? ?switches?
-              Reads  binary  values  from  a  Tcl  channel.  Values are either
-              appended to the end of the vector or placed  at  a  given  index
-              (using  the  -at  option), overwriting existing values.  Data is
-              read until EOF is found on the channel or a specified number  of
-              values  length  are  read (note that this is not necessarily the
-              same as the number of bytes). The following  switches  are  sup-
-              ported:
-
-              -swap  Swap  bytes  and  words.   The default endian is the host
-                     machine.
-
-              -at index
-                     New values will start at vector index index.   This  will
-                     overwrite any current values.
-
-              -format format
-                     Specifies  the  format of the data.  Format can be one of
-                     the following: "i1", "i2", "i4", "i8", "u1,  "u2",  "u4",
-
-              This is useful when the vector is large.
-
-       vecName delete index ?index?...
-              Deletes the indexth component from the vector vecName.  Index is
-              the  index  of  the  element to be deleted.  This is the same as
-              unsetting the array variable element index.  The vector is  com-
-              pacted after all the indices have been deleted.
-
-       vecName dup destName
-              Copies  vecName  to destName. DestName is the name of a destina-
-              tion vector.  If a vector destName already exists, it  is  over-
-              written  with the components of vecName.  Otherwise a new vector
-              is created.
-
-       vecName expr expression
-              Computes the expression and resets  the  values  of  the  vector
-              accordingly.    Both  scalar  and  vector  math  operations  are
-              allowed.  All values in expressions are either real  numbers  or
-              names of vectors.  All numbers are treated as one component vec-
-              tors.
-
-       vecName length ?newSize?
-              Queries or resets the number of components in vecName.   NewSize
-              is  a  number specifying the new size of the vector.  If newSize
-              is smaller than the current size of vecName,  vecName  is  trun-
-              cated.   If  newSize  is greater, the vector is extended and the
-              new components are initialized to 0.0.  If no  newSize  argument
-              is present, the current length of the vector is returned.
-
-       vecName merge srcName ?srcName?...
-              Merges  the  named  vectors into a single vector.  The resulting
-              vector is formed by merging the components of each source vector
-              one index at a time.
-
-       vecName notify keyword
-              Controls  how vector clients are notified of changes to the vec-
-              tor.  The exact behavior is determined by keyword.
-
-              always Indicates that clients are  to  be  notified  immediately
-                     whenever the vector is updated.
-
-              never  Indicates that no clients are to be notified.
-
-              whenidle
-                     Indicates  that  clients  are  to be notified at the next
-                     idle point whenever the vector is updated.
-
-              now    If any client notifications is  currently  pending,  they
-                     are notified immediately.
-
-              cancel Cancels  pending  notifications of clients using the vec-
-                     tor.
-
-              density number of new components, whose values are  evenly  dis-
-              tributed between the original components values.  This is useful
-              for generating abscissas to be interpolated along a spline.
-
-       vecName range firstIndex ?lastIndex?...
-              Returns a list of numeric values representing the vector  compo-
-              nents  between  two  indices.  Both firstIndex and lastIndex are
-              indices representing the range of components to be returned.  If
-              lastIndex  is less than firstIndex, the components are listed in
-              reverse order.
-
-       vecName search value ?value?
-              Searches for a value or range of values among the components  of
-              vecName.   If  one value argument is given, a list of indices of
-              the components which equal value is returned.  If a second value
-              is  also  provided, then the indices of all components which lie
-              within the range of the two values are returned.  If  no  compo-
-              nents are found, then "" is returned.
-
-       vecName set item
-              Resets  the components of the vector to item. Item can be either
-              a list of numeric expressions or another vector.
-
-       vecName seq start ?finish? ?step?
-              Generates a sequence of values starting with  the  value  start.
-              Finish  indicates  the  terminating  value of the sequence.  The
-              vector is automatically resized to contain  just  the  sequence.
-              If three arguments are present, step designates the interval.
-
-              With  only two arguments (no finish argument), the sequence will
-              continue until the vector is filled.   With  one  argument,  the
-              interval defaults to 1.0.
-
-       vecName sort ?-reverse? ?argName?...
-              Sorts  the  vector vecName in increasing order.  If the -reverse
-              flag is present, the vector is sorted in decreasing  order.   If
-              other  arguments argName are present, they are the names of vec-
-              tors which will be rearranged in the  same  manner  as  vecName.
-              Each  vector  must be the same length as vecName.  You could use
-              this to sort the x vector of a graph, while still retaining  the
-              same x,y coordinate pairs in a y vector.
-
-       vecName variable varName
-              Maps  a  Tcl  variable to the vector, creating another means for
-              accessing the vector.  The variable varName can't already exist.
-              This overrides any current variable mapping the vector may have.
-
-
-
-

C LANGUAGE API

-       You can create, modify, and destroy vectors from C code, using  library
-       routines.   You  need to include the header file blt.h. It contains the
-       definition of the structure Blt_Vector, which  represents  the  vector.
-       It appears below.  typedef struct {
-       Blt_CreateVector
-
-         Synopsis: int Blt_CreateVector (interp, vecName, length, vecPtrPtr)
-                      Tcl_Interp  *interp; char *vecName; int length; Blt_Vec-
-                      tor **vecPtrPtr;
-
-         Description:
-                   Creates a new vector  vecName  with  a  length  of  length.
-                   Blt_CreateVector  creates  both a new Tcl command and array
-                   variable vecName.  Neither a  command  nor  variable  named
-                   vecName  can  already  exist.   A  pointer to the vector is
-                   placed into vecPtrPtr.
-
-         Results:  Returns TCL_OK if the vector is successfully  created.   If
-                   length  is  negative,  a  Tcl  variable  or command vecName
-                   already exists, or memory cannot be allocated for the  vec-
-                   tor,  then  TCL_ERROR  is  returned and interp->result will
-                   contain an error message.
-
-
-       Blt_DeleteVectorByName
-
-         Synopsis: int Blt_DeleteVectorByName (interp, vecName)
-                      Tcl_Interp *interp; char *vecName;
-
-         Description:
-                   Removes the vector vecName.  VecName is the name of a  vec-
-                   tor  which  must  already  exist.  Both the Tcl command and
-                   array variable vecName are destroyed.  All clients  of  the
-                   vector  will  be  notified  immediately that the vector has
-                   been destroyed.
-
-         Results:  Returns TCL_OK if the vector is successfully  deleted.   If
-                   vecName  is  not  the  name  a  vector,  then  TCL_ERROR is
-                   returned and interp->result will contain an error  message.
-
-
-       Blt_DeleteVector
-
-         Synopsis: int Blt_DeleteVector (vecPtr)
-                      Blt_Vector *vecPtr;
-
-         Description:
-                   Removes  the  vector  pointed  to  by  vecPtr.  VecPtr is a
-                   pointer to a vector,  typically  set  by  Blt_GetVector  or
-                   Blt_CreateVector.   Both the Tcl command and array variable
-                   of the vector are destroyed.  All  clients  of  the  vector
-                   will  be  notified  immediately  that  the  vector has been
-                   destroyed.
-
-         Results:  Returns TCL_OK if the vector is successfully  deleted.   If
-                   vecName  is  not  the  name  a  vector,  then  TCL_ERROR is
-
-         Results:  Returns TCL_OK if the vector is successfully retrieved.  If
-                   vecName  is  not  the  name  of a vector, then TCL_ERROR is
-                   returned and interp->result will contain an error  message.
-
-
-       Blt_ResetVector
-
-
-         Synopsis: int  Blt_ResetVector  (vecPtr,  dataArr,         numValues,
-                   arraySize, freeProc)
-                      Blt_Vector *vecPtr; double *dataArr; int *numValues; int
-                      *arraySize; Tcl_FreeProc *freeProc;
-
-         Description:
-                   Resets  the  components of the vector pointed to by vecPtr.
-                   Calling Blt_ResetVector will trigger the vector to dispatch
-                   notifications  to its clients. DataArr is the array of dou-
-                   bles which represents the vector  data.  NumValues  is  the
-                   number  of  elements  in the array. ArraySize is the actual
-                   size of the array (the array may be bigger than the  number
-                   of values stored in it). FreeProc indicates how the storage
-                   for the vector component array (dataArr) was allocated.  It
-                   is used to determine how to reallocate memory when the vec-
-                   tor is resized  or  destroyed.   It  must  be  TCL_DYNAMIC,
-                   TCL_STATIC,  TCL_VOLATILE,  or  a  pointer to a function to
-                   free the memory allocated for the vector array. If freeProc
-                   is  TCL_VOLATILE,  it indicates that dataArr must be copied
-                   and saved.  If freeProc is TCL_DYNAMIC, it  indicates  that
-                   dataArr  was dynamically allocated and that Tcl should free
-                   dataArr if necessary.  Static indicates that nothing should
-                   be done to release storage for dataArr.
-
-         Results:  Returns  TCL_OK  if the vector is successfully resized.  If
-                   newSize is negative, a vector vecName does  not  exist,  or
-                   memory  cannot  be allocated for the vector, then TCL_ERROR
-                   is returned and interp->result will contain an  error  mes-
-                   sage.
-
-
-       Blt_ResizeVector
-
-         Synopsis: int Blt_ResizeVector (vecPtr, newSize)
-                      Blt_Vector *vecPtr; int newSize;
-
-         Description:
-                   Resets  the  length  of  the vector pointed to by vecPtr to
-                   newSize.  If newSize is smaller than the  current  size  of
-                   the  vector,  it  is truncated.  If newSize is greater, the
-                   vector is extended and the new components  are  initialized
-                   to 0.0.  Calling Blt_ResetVector will trigger the vector to
-                   dispatch notifications.
-
-            Results:  Returns 1 if a vector vecName exists and 0 otherwise.
-
-
-         If  your  application  needs to be notified when a vector changes, it
-         can allocate a unique client identifier for itself.  Using this iden-
-         tifier,  you  can  then  register a call-back to be made whenever the
-         vector is updated or destroyed.  By default, the call-backs are  made
-         at the next idle point.  This can be changed to occur at the time the
-         vector is modified.  An application can allocate more than one  iden-
-         tifier  for any vector.  When the client application is done with the
-         vector, it should free the identifier.
-
-         The call-back routine must of the following type.
-
-                typedef void (Blt_VectorChangedProc) (Tcl_Interp *interp,
-                   ClientData clientData, Blt_VectorNotify notify);
-
-         ClientData is passed to this routine whenever it is called.  You  can
-         use  this  to pass information to the call-back.  The notify argument
-         indicates whether the vector has been updated of destroyed. It is  an
-         enumerated type.
-
-                typedef enum {
-                    BLT_VECTOR_NOTIFY_UPDATE=1,
-                    BLT_VECTOR_NOTIFY_DESTROY=2 } Blt_VectorNotify;
-
-
-         Blt_AllocVectorId
-
-            Synopsis: Blt_VectorId Blt_AllocVectorId (interp, vecName)
-                        Tcl_Interp *interp; char *vecName;
-
-            Description:
-                      Allocates  an client identifier for with the vector vec-
-                      Name.  This identifier can be used to  specify  a  call-
-                      back  which  is  triggered when the vector is updated or
-                      destroyed.
-
-            Results:  Returns a client identifier if successful.   If  vecName
-                      is  not  the name of a vector, then NULL is returned and
-                      interp->result will contain an error message.
-
-
-         Blt_GetVectorById
-
-            Synopsis: int Blt_GetVector (interp, clientId, vecPtrPtr)
-                        Tcl_Interp *interp; Blt_VectorId clientId;  Blt_Vector
-                        **vecPtrPtr;
-
-            Description:
-                      Retrieves  the  vector  used by clientId.  ClientId is a
-                      valid   vector   client    identifier    allocated    by
-                      Specifies  a call-back routine to be called whenever the
-                      vector associated with clientId is updated  or  deleted.
-                      Proc  is  a  pointer to call-back routine and must be of
-                      the type Blt_VectorChangedProc.  ClientData  is  a  one-
-                      word  value  to  be  passed  to  the  routine when it is
-                      invoked. If proc is NULL, then the client is  not  noti-
-                      fied.
-
-            Results:  The  designated call-back procedure will be invoked when
-                      the vector is updated or destroyed.
-
-
-         Blt_FreeVectorId
-
-            Synopsis: void Blt_FreeVectorId (clientId);
-                        Blt_VectorId clientId;
-
-            Description:
-                      Frees the client identifier.  Memory allocated  for  the
-                      identifier  is  released.   The client will no longer be
-                      notified when the vector is modified.
-
-            Results:  The designated call-back procedure will be no longer  be
-                      invoked when the vector is updated or destroyed.
-
-
-         Blt_NameOfVectorId
-
-            Synopsis: char *Blt_NameOfVectorId (clientId);
-                        Blt_VectorId clientId;
-
-            Description:
-                      Retrieves  the  name  of  the vector associated with the
-                      client identifier clientId.
-
-            Results:  Returns the name of the vector associated with clientId.
-                      If  clientId is not an identifier or the vector has been
-                      destroyed, NULL is returned.
-
-
-         Blt_InstallIndexProc
-
-            Synopsis: void Blt_InstallIndexProc (indexName, procPtr)
-                        char *indexName; Blt_VectorIndexProc *procPtr;
-
-            Description:
-                      Registers a function to be called to retrieved the index
-                      indexName from the vector's array variable.
-
-                      typedef double Blt_VectorIndexProc(Vector *vecPtr);
-
-                      The  function  will  be  passed a pointer to the vector.
-
-       reset  shortly.  The  vector  is updated when lt_ResetVector is called.
-       Blt_ResetVector makes the changes visible  to  the  Tcl  interface  and
-       other vector clients (such as a graph widget).
-
-       #include  <tcl.h>  #include  <blt.h>         Blt_Vector *vecPtr; double
-       *newArr; FILE *f; struct stat statBuf; int numBytes, numValues;
-
-       f = fopen("binary.dat", "r"); fstat(fileno(f),  &statBuf);  numBytes  =
-       (int)statBuf.st_size;
-
-       /*  Allocate an array big enough to hold all the data */ newArr = (dou-
-       ble  *)malloc(numBytes);  numValues  =   numBytes   /   sizeof(double);
-       fread((void *)newArr, numValues, sizeof(double), f); fclose(f);
-
-       if (Blt_VectorExists(interp, "data"))  {
-           if   (Blt_GetVector(interp,   "data",   &vecPtr)   !=   TCL_OK)   {
-               return TCL_ERROR;
-           } } else {
-          if  (Blt_CreateVector(interp,  "data",  0,  &vecPtr)  !=  TCL_OK)  {
-               return TCL_ERROR;
-          } } /*
-        * Reset the vector. Clients will be notified when Tk is idle.
-        * TCL_DYNAMIC tells the vector to free the memory allocated
-        * if it needs to reallocate or destroy the vector.
-        */   if   (Blt_ResetVector(vecPtr,   newArr,   numValues,   numValues,
-               TCL_DYNAMIC) != TCL_O