From f2aa148e1caa05b0c358bbe463bf21a9bdf40748 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Sun, 11 Jul 2010 01:36:04 +0100 Subject: [PATCH] Include all required extensions in the 8.x tree. From henceforth all the necessary extensions will be included in the git repository. They can be updated intermittently from the various cvs/svn or release tarballs as appropriate. This patch incorporates zlib 1.2.5 from the recently released tarball. This commit also marks a shift to github. Signed-off-by: Pat Thoyts --- .gitignore | 8 + 8.x/itcl/.cvsignore | 3 + 8.x/itcl/Makefile.in | 412 + 8.x/itcl/aclocal.m4 | 1 + 8.x/itcl/configure | 10503 +++++++++++++ 8.x/itcl/configure.in | 247 + 8.x/itcl/doc/Class.3 | 57 + 8.x/itcl/doc/List.3 | 59 + 8.x/itcl/doc/Object.3 | 39 + 8.x/itcl/doc/Preserve.3 | 39 + 8.x/itcl/doc/RegisterC.3 | 124 + 8.x/itcl/doc/Stack.3 | 60 + 8.x/itcl/doc/body.n | 124 + 8.x/itcl/doc/class.n | 490 + 8.x/itcl/doc/code.n | 96 + 8.x/itcl/doc/configbody.n | 129 + 8.x/itcl/doc/delete.n | 64 + 8.x/itcl/doc/ensemble.n | 173 + 8.x/itcl/doc/find.n | 72 + 8.x/itcl/doc/is.n | 66 + 8.x/itcl/doc/itcl.n | 147 + 8.x/itcl/doc/itclvars.n | 96 + 8.x/itcl/doc/license.terms | 27 + 8.x/itcl/doc/local.n | 75 + 8.x/itcl/doc/man.macros | 236 + 8.x/itcl/doc/scope.n | 77 + 8.x/itcl/generic/itcl.decls | 112 + 8.x/itcl/generic/itcl.h | 233 + 8.x/itcl/generic/itclDecls.h | 334 + 8.x/itcl/generic/itclInt.decls | 513 + 8.x/itcl/generic/itclInt.h | 514 + 8.x/itcl/generic/itclIntDecls.h | 1393 ++ 8.x/itcl/generic/itclStubInit.c | 187 + 8.x/itcl/generic/itclStubLib.c | 86 + 8.x/itcl/generic/itcl_bicmds.c | 1703 +++ 8.x/itcl/generic/itcl_class.c | 1826 +++ 8.x/itcl/generic/itcl_cmds.c | 1723 +++ 8.x/itcl/generic/itcl_ensemble.c | 2231 +++ 8.x/itcl/generic/itcl_linkage.c | 327 + 8.x/itcl/generic/itcl_methods.c | 2530 ++++ 8.x/itcl/generic/itcl_migrate.c | 185 + 8.x/itcl/generic/itcl_objects.c | 1234 ++ 8.x/itcl/generic/itcl_parse.c | 1076 ++ 8.x/itcl/generic/itcl_util.c | 1437 ++ 8.x/itcl/itclConfig.sh.in | 62 + 8.x/itcl/library/itcl.tcl | 278 + 8.x/itcl/license.terms | 38 + 8.x/itcl/pkgIndex.tcl.in | 3 + 8.x/itcl/tclconfig/install-sh | 119 + 8.x/itcl/tclconfig/tcl.m4 | 4031 +++++ 8.x/itcl/tests/all.tcl | 17 + 8.x/itcl/tests/basic.test | 407 + 8.x/itcl/tests/body.test | 226 + 8.x/itcl/tests/chain.test | 156 + 8.x/itcl/tests/delete.test | 212 + 8.x/itcl/tests/ensemble.test | 198 + 8.x/itcl/tests/import.test | 158 + 8.x/itcl/tests/info.test | 396 + 8.x/itcl/tests/inherit.test | 588 + 8.x/itcl/tests/interp.test | 91 + 8.x/itcl/tests/local.test | 74 + 8.x/itcl/tests/methods.test | 167 + 8.x/itcl/tests/mkindex.itcl | 83 + 8.x/itcl/tests/mkindex.test | 60 + 8.x/itcl/tests/namespace.test | 93 + 8.x/itcl/tests/old/AAA.test | 82 + 8.x/itcl/tests/old/Bar.tcl | 39 + 8.x/itcl/tests/old/BarFoo.tcl | 31 + 8.x/itcl/tests/old/Baz.tcl | 27 + 8.x/itcl/tests/old/Foo.tcl | 99 + 8.x/itcl/tests/old/FooBar.tcl | 31 + 8.x/itcl/tests/old/Geek.tcl | 44 + 8.x/itcl/tests/old/Mongrel.tcl | 34 + 8.x/itcl/tests/old/VirtualErr.tcl | 23 + 8.x/itcl/tests/old/all | 32 + 8.x/itcl/tests/old/basic.test | 408 + 8.x/itcl/tests/old/inherit.test | 272 + 8.x/itcl/tests/old/tclIndex | 24 + 8.x/itcl/tests/old/testlib.tcl | 131 + 8.x/itcl/tests/old/toaster.test | 165 + 8.x/itcl/tests/old/toasters/Appliance.tcl | 43 + 8.x/itcl/tests/old/toasters/Hazard.tcl | 78 + 8.x/itcl/tests/old/toasters/Outlet.tcl | 81 + 8.x/itcl/tests/old/toasters/SmartToaster.tcl | 40 + 8.x/itcl/tests/old/toasters/Toaster.tcl | 75 + 8.x/itcl/tests/old/toasters/tclIndex | 18 + 8.x/itcl/tests/old/toasters/usualway.tcl | 122 + 8.x/itcl/tests/old/uplevel.test | 155 + 8.x/itcl/tests/old/upvar.test | 110 + 8.x/itcl/tests/protection.test | 378 + 8.x/itcl/tests/scope.test | 215 + 8.x/itcl/tests/tclIndex | 23 + 8.x/itcl/win/.cvsignore | 4 + 8.x/itcl/win/dllEntryPoint.c | 52 + 8.x/itcl/win/makefile.vc | 532 + 8.x/itcl/win/nmakehlp.c | 726 + 8.x/itcl/win/rc/itcl.rc | 56 + 8.x/itcl/win/toaster.bmp | Bin 0 -> 3126 bytes 8.x/mk/CHANGES | 2076 +++ 8.x/mk/NOTES-2.3.4 | 385 + 8.x/mk/README | 203 + 8.x/mk/builds/!keepme.txt | 1 + 8.x/mk/demos/demo.cpp | 114 + 8.x/mk/demos/dump.cpp | 150 + 8.x/mk/demos/myio.cpp | 137 + 8.x/mk/demos/struct.cpp | 32 + 8.x/mk/doc/api/c4_Bytes.html | 6 + 8.x/mk/doc/api/c4_BytesProp.html | 6 + 8.x/mk/doc/api/c4_BytesProp_desc.html | 144 + 8.x/mk/doc/api/c4_BytesProp_info.html | 208 + 8.x/mk/doc/api/c4_BytesRef.html | 6 + 8.x/mk/doc/api/c4_BytesRef_desc.html | 102 + 8.x/mk/doc/api/c4_BytesRef_info.html | 135 + 8.x/mk/doc/api/c4_Bytes___NONAME.html | 6 + 8.x/mk/doc/api/c4_Bytes___NONAME_desc.html | 75 + 8.x/mk/doc/api/c4_Bytes___NONAME_info.html | 45 + 8.x/mk/doc/api/c4_Bytes_desc.html | 234 + 8.x/mk/doc/api/c4_Bytes_info.html | 281 + 8.x/mk/doc/api/c4_Cursor.html | 6 + 8.x/mk/doc/api/c4_Cursor_desc.html | 454 + 8.x/mk/doc/api/c4_Cursor_info.html | 206 + 8.x/mk/doc/api/c4_CustomViewer.html | 6 + 8.x/mk/doc/api/c4_CustomViewer_desc.html | 125 + 8.x/mk/doc/api/c4_CustomViewer_info.html | 101 + 8.x/mk/doc/api/c4_DoubleProp.html | 6 + 8.x/mk/doc/api/c4_DoubleProp_desc.html | 144 + 8.x/mk/doc/api/c4_DoubleProp_info.html | 208 + 8.x/mk/doc/api/c4_DoubleRef.html | 6 + 8.x/mk/doc/api/c4_DoubleRef_desc.html | 102 + 8.x/mk/doc/api/c4_DoubleRef_info.html | 135 + 8.x/mk/doc/api/c4_FloatProp.html | 6 + 8.x/mk/doc/api/c4_FloatProp_desc.html | 144 + 8.x/mk/doc/api/c4_FloatProp_info.html | 208 + 8.x/mk/doc/api/c4_FloatRef.html | 6 + 8.x/mk/doc/api/c4_FloatRef_desc.html | 102 + 8.x/mk/doc/api/c4_FloatRef_info.html | 135 + 8.x/mk/doc/api/c4_IntProp.html | 6 + 8.x/mk/doc/api/c4_IntProp_desc.html | 144 + 8.x/mk/doc/api/c4_IntProp_info.html | 208 + 8.x/mk/doc/api/c4_IntRef.html | 6 + 8.x/mk/doc/api/c4_IntRef_desc.html | 102 + 8.x/mk/doc/api/c4_IntRef_info.html | 135 + 8.x/mk/doc/api/c4_MemoProp.html | 6 + 8.x/mk/doc/api/c4_MemoProp_desc.html | 144 + 8.x/mk/doc/api/c4_MemoProp_info.html | 208 + 8.x/mk/doc/api/c4_MemoRef.html | 6 + 8.x/mk/doc/api/c4_MemoRef_desc.html | 130 + 8.x/mk/doc/api/c4_MemoRef_info.html | 161 + 8.x/mk/doc/api/c4_Property.html | 6 + 8.x/mk/doc/api/c4_Property_desc.html | 240 + 8.x/mk/doc/api/c4_Property_info.html | 214 + 8.x/mk/doc/api/c4_Reference.html | 6 + 8.x/mk/doc/api/c4_Reference_desc.html | 204 + 8.x/mk/doc/api/c4_Reference_info.html | 129 + 8.x/mk/doc/api/c4_Row.html | 6 + 8.x/mk/doc/api/c4_RowRef.html | 6 + 8.x/mk/doc/api/c4_RowRef_desc.html | 153 + 8.x/mk/doc/api/c4_RowRef_info.html | 97 + 8.x/mk/doc/api/c4_Row_desc.html | 189 + 8.x/mk/doc/api/c4_Row_info.html | 182 + 8.x/mk/doc/api/c4_Sequence.html | 6 + 8.x/mk/doc/api/c4_Sequence_desc.html | 559 + 8.x/mk/doc/api/c4_Sequence_info.html | 561 + 8.x/mk/doc/api/c4_Storage.html | 6 + 8.x/mk/doc/api/c4_Storage_desc.html | 315 + 8.x/mk/doc/api/c4_Storage_info.html | 353 + 8.x/mk/doc/api/c4_Strategy.html | 6 + 8.x/mk/doc/api/c4_Strategy_desc.html | 243 + 8.x/mk/doc/api/c4_Strategy_info.html | 200 + 8.x/mk/doc/api/c4_Stream.html | 6 + 8.x/mk/doc/api/c4_Stream_desc.html | 90 + 8.x/mk/doc/api/c4_Stream_info.html | 57 + 8.x/mk/doc/api/c4_StringProp.html | 6 + 8.x/mk/doc/api/c4_StringProp_desc.html | 144 + 8.x/mk/doc/api/c4_StringProp_info.html | 208 + 8.x/mk/doc/api/c4_StringRef.html | 6 + 8.x/mk/doc/api/c4_StringRef_desc.html | 102 + 8.x/mk/doc/api/c4_StringRef_info.html | 135 + 8.x/mk/doc/api/c4_View.html | 6 + 8.x/mk/doc/api/c4_ViewProp.html | 6 + 8.x/mk/doc/api/c4_ViewProp_desc.html | 144 + 8.x/mk/doc/api/c4_ViewProp_info.html | 208 + 8.x/mk/doc/api/c4_ViewRef.html | 6 + 8.x/mk/doc/api/c4_ViewRef_desc.html | 102 + 8.x/mk/doc/api/c4_ViewRef_info.html | 135 + 8.x/mk/doc/api/c4_View_desc.html | 977 ++ 8.x/mk/doc/api/c4_View_info.html | 924 ++ 8.x/mk/doc/api/classes.html | 182 + 8.x/mk/doc/api/doc_catfish.html | 105 + 8.x/mk/doc/api/doc_catrecv.html | 81 + 8.x/mk/doc/api/doc_catsend.html | 70 + 8.x/mk/doc/api/doc_dbf2mk.html | 44 + 8.x/mk/doc/api/doc_demo.html | 56 + 8.x/mk/doc/api/doc_discat.html | 78 + 8.x/mk/doc/api/doc_dump.html | 71 + 8.x/mk/doc/api/doc_ftpcat.html | 77 + 8.x/mk/doc/api/doc_kbind.html | 86 + 8.x/mk/doc/api/doc_mkoptim.html | 44 + 8.x/mk/doc/api/doc_myio.html | 54 + 8.x/mk/doc/api/doc_struct.html | 68 + 8.x/mk/doc/api/index.html | 8 + 8.x/mk/doc/api/navbar.html | 71 + 8.x/mk/doc/api/roadmap.html | 210 + 8.x/mk/doc/api/samples.html | 115 + 8.x/mk/doc/api/tips.html | 272 + 8.x/mk/doc/e4s.gif | Bin 0 -> 661 bytes 8.x/mk/doc/format.html | 457 + 8.x/mk/doc/metakit.png | Bin 0 -> 2908 bytes 8.x/mk/doc/python.html | 293 + 8.x/mk/doc/python.jpg | Bin 0 -> 1147 bytes 8.x/mk/doc/tcl.gif | Bin 0 -> 1828 bytes 8.x/mk/doc/tcl.html | 646 + 8.x/mk/examples/README | 23 + 8.x/mk/examples/aside.py | 153 + 8.x/mk/examples/bigblock.tcl | 30 + 8.x/mk/examples/blockdels.tcl | 69 + 8.x/mk/examples/case.py | 32 + 8.x/mk/examples/demo.py | 37 + 8.x/mk/examples/demo.tcl | 40 + 8.x/mk/examples/demold.tcl | 39 + 8.x/mk/examples/derived.py | 36 + 8.x/mk/examples/find.py | 115 + 8.x/mk/examples/mapped.tcl | 228 + 8.x/mk/examples/millions.py | 207 + 8.x/mk/examples/mkbug.cpp | 35 + 8.x/mk/examples/mkhash.cpp | 162 + 8.x/mk/examples/mkmemoio.py | 155 + 8.x/mk/examples/pair.py | 26 + 8.x/mk/examples/random.tcl | 155 + 8.x/mk/examples/remap.py | 28 + 8.x/mk/examples/selfref.py | 48 + 8.x/mk/examples/selmap.tcl | 77 + 8.x/mk/examples/slow.tcl | 135 + 8.x/mk/examples/sort.tcl | 54 + 8.x/mk/examples/wrap.py | 40 + 8.x/mk/include/mk4.h | 1058 ++ 8.x/mk/include/mk4.inl | 874 ++ 8.x/mk/include/mk4dll.h | 111 + 8.x/mk/include/mk4io.h | 64 + 8.x/mk/include/mk4str.h | 179 + 8.x/mk/include/mk4str.inl | 299 + 8.x/mk/license.terms | 19 + 8.x/mk/python/.cvsignore | 1 + 8.x/mk/python/PyHead.h | 26 + 8.x/mk/python/PyProperty.cpp | 89 + 8.x/mk/python/PyProperty.h | 29 + 8.x/mk/python/PyRowRef.cpp | 305 + 8.x/mk/python/PyRowRef.h | 58 + 8.x/mk/python/PyStorage.cpp | 550 + 8.x/mk/python/PyStorage.h | 33 + 8.x/mk/python/PyView.cpp | 1610 ++ 8.x/mk/python/PyView.h | 74 + 8.x/mk/python/README-dmn | 100 + 8.x/mk/python/metakit.py | 84 + 8.x/mk/python/scxx/PWOBase.h | 139 + 8.x/mk/python/scxx/PWOCallable.h | 41 + 8.x/mk/python/scxx/PWOImp.cpp | 73 + 8.x/mk/python/scxx/PWOMSequence.h | 153 + 8.x/mk/python/scxx/PWOMapping.h | 141 + 8.x/mk/python/scxx/PWONumber.h | 212 + 8.x/mk/python/scxx/PWOSequence.h | 182 + 8.x/mk/python/scxx/README.txt | 106 + 8.x/mk/python/setup.py | 197 + 8.x/mk/python/test/.cvsignore | 1 + 8.x/mk/python/test/all.py | 39 + 8.x/mk/python/test/mktestsupport.py | 173 + 8.x/mk/python/test/test_hash.py | 16 + 8.x/mk/python/test/test_inttypes.py | 63 + 8.x/mk/python/test/test_stringtype.py | 31 + 8.x/mk/python/test/test_unittest.py | 625 + 8.x/mk/src/borc.h | 33 + 8.x/mk/src/column.cpp | 1499 ++ 8.x/mk/src/column.h | 212 + 8.x/mk/src/column.inl | 89 + 8.x/mk/src/custom.cpp | 925 ++ 8.x/mk/src/custom.h | 63 + 8.x/mk/src/derived.cpp | 899 ++ 8.x/mk/src/derived.h | 25 + 8.x/mk/src/doxy.h | 28 + 8.x/mk/src/field.cpp | 115 + 8.x/mk/src/field.h | 63 + 8.x/mk/src/field.inl | 37 + 8.x/mk/src/fileio.cpp | 437 + 8.x/mk/src/format.cpp | 1280 ++ 8.x/mk/src/format.h | 23 + 8.x/mk/src/gnuc.h | 13 + 8.x/mk/src/handler.cpp | 463 + 8.x/mk/src/handler.h | 148 + 8.x/mk/src/handler.inl | 90 + 8.x/mk/src/header.h | 221 + 8.x/mk/src/mfc.h | 34 + 8.x/mk/src/msvc.h | 39 + 8.x/mk/src/mwcw.h | 31 + 8.x/mk/src/persist.cpp | 1165 ++ 8.x/mk/src/persist.h | 127 + 8.x/mk/src/remap.cpp | 1089 ++ 8.x/mk/src/remap.h | 26 + 8.x/mk/src/std.cpp | 79 + 8.x/mk/src/std.h | 65 + 8.x/mk/src/store.cpp | 543 + 8.x/mk/src/store.h | 112 + 8.x/mk/src/store.inl | 20 + 8.x/mk/src/string.cpp | 274 + 8.x/mk/src/table.cpp | 148 + 8.x/mk/src/univ.cpp | 202 + 8.x/mk/src/univ.h | 110 + 8.x/mk/src/univ.inl | 126 + 8.x/mk/src/view.cpp | 1184 ++ 8.x/mk/src/viewx.cpp | 782 + 8.x/mk/src/win.h | 33 + 8.x/mk/tcl/Makefile.in | 281 + 8.x/mk/tcl/aclocal.m4 | 9 + 8.x/mk/tcl/config.h.in | 56 + 8.x/mk/tcl/configure | 10773 ++++++++++++++ 8.x/mk/tcl/configure.in | 62 + 8.x/mk/tcl/mk4tcl.cpp | 2552 ++++ 8.x/mk/tcl/mk4tcl.h | 378 + 8.x/mk/tcl/mk4too.cpp | 1042 ++ 8.x/mk/tcl/mkshow.tcl | 170 + 8.x/mk/tcl/pkgIndex.tcl.in | 5 + 8.x/mk/tcl/stubtcl.h | 38 + 8.x/mk/tcl/tclconfig/README.txt | 26 + 8.x/mk/tcl/tclconfig/install-sh | 119 + 8.x/mk/tcl/tclconfig/tcl.m4 | 4031 +++++ 8.x/mk/tcl/tequila/README | 109 + 8.x/mk/tcl/tequila/proxy.tcl | 19 + 8.x/mk/tcl/tequila/tequical.tcl | 135 + 8.x/mk/tcl/tequila/tequila.tcl | 144 + 8.x/mk/tcl/tequila/tequilas.tcl | 440 + 8.x/mk/tcl/tests/all.tcl | 6 + 8.x/mk/tcl/tests/basic.test | 174 + 8.x/mk/tcl/tests/commit.test | 256 + 8.x/mk/tcl/tests/fixed.test | 142 + 8.x/mk/tcl/tests/initests.tcl | 70 + 8.x/mk/tcl/tests/limit.test | 66 + 8.x/mk/tcl/tests/object.test | 477 + 8.x/mk/tests/ok/b00.txt | 3 + 8.x/mk/tests/ok/b01.txt | 2 + 8.x/mk/tests/ok/b02.txt | 2 + 8.x/mk/tests/ok/b03.txt | 2 + 8.x/mk/tests/ok/b04.txt | 2 + 8.x/mk/tests/ok/b05.txt | 2 + 8.x/mk/tests/ok/b06.txt | 2 + 8.x/mk/tests/ok/b07.txt | 2 + 8.x/mk/tests/ok/b08.txt | 2 + 8.x/mk/tests/ok/b09.txt | 2 + 8.x/mk/tests/ok/b10.txt | 2 + 8.x/mk/tests/ok/b11.txt | 2 + 8.x/mk/tests/ok/b12.txt | 2 + 8.x/mk/tests/ok/b13.txt | 2 + 8.x/mk/tests/ok/b14.txt | 2 + 8.x/mk/tests/ok/b15.txt | 2 + 8.x/mk/tests/ok/b16.txt | 2 + 8.x/mk/tests/ok/b17.txt | 2 + 8.x/mk/tests/ok/b18.txt | 2 + 8.x/mk/tests/ok/b19.txt | 2 + 8.x/mk/tests/ok/b20.txt | 2 + 8.x/mk/tests/ok/b21.txt | 2 + 8.x/mk/tests/ok/b22.txt | 2 + 8.x/mk/tests/ok/b23.txt | 2 + 8.x/mk/tests/ok/b24.txt | 2 + 8.x/mk/tests/ok/b25.txt | 2 + 8.x/mk/tests/ok/b26.txt | 2 + 8.x/mk/tests/ok/b27.txt | 2 + 8.x/mk/tests/ok/c01.txt | 2 + 8.x/mk/tests/ok/c02.txt | 2 + 8.x/mk/tests/ok/c03.txt | 2 + 8.x/mk/tests/ok/c04.txt | 2 + 8.x/mk/tests/ok/c05.txt | 2 + 8.x/mk/tests/ok/c06.txt | 2 + 8.x/mk/tests/ok/c07.txt | 2 + 8.x/mk/tests/ok/c08.txt | 2 + 8.x/mk/tests/ok/c09.txt | 2 + 8.x/mk/tests/ok/c10.txt | 2 + 8.x/mk/tests/ok/c11.txt | 2 + 8.x/mk/tests/ok/c12.txt | 2 + 8.x/mk/tests/ok/c13.txt | 2 + 8.x/mk/tests/ok/c14.txt | 2 + 8.x/mk/tests/ok/c15.txt | 2 + 8.x/mk/tests/ok/c16.txt | 2 + 8.x/mk/tests/ok/c17.txt | 2 + 8.x/mk/tests/ok/c18.txt | 2 + 8.x/mk/tests/ok/c19.txt | 2 + 8.x/mk/tests/ok/c20.txt | 2 + 8.x/mk/tests/ok/c21.txt | 2 + 8.x/mk/tests/ok/c22.txt | 2 + 8.x/mk/tests/ok/d01.txt | 2 + 8.x/mk/tests/ok/d01a.txt | 4 + 8.x/mk/tests/ok/d01b.txt | 19 + 8.x/mk/tests/ok/e01.txt | 2 + 8.x/mk/tests/ok/e01a.txt | 5 + 8.x/mk/tests/ok/e02.txt | 2 + 8.x/mk/tests/ok/e02a.txt | 5 + 8.x/mk/tests/ok/e03.txt | 2 + 8.x/mk/tests/ok/e03a.txt | 5 + 8.x/mk/tests/ok/e04.txt | 2 + 8.x/mk/tests/ok/e04a.txt | 5 + 8.x/mk/tests/ok/e05.txt | 2 + 8.x/mk/tests/ok/e05a.txt | 1 + 8.x/mk/tests/ok/e06.txt | 2 + 8.x/mk/tests/ok/e06a.txt | 5 + 8.x/mk/tests/ok/f01.txt | 2 + 8.x/mk/tests/ok/f01a.txt | 8 + 8.x/mk/tests/ok/f02.txt | 2 + 8.x/mk/tests/ok/f02a.txt | 5 + 8.x/mk/tests/ok/f03.txt | 2 + 8.x/mk/tests/ok/f03a.txt | 4 + 8.x/mk/tests/ok/f04.txt | 2 + 8.x/mk/tests/ok/f04a.txt | 8 + 8.x/mk/tests/ok/f05.txt | 2 + 8.x/mk/tests/ok/f05a.txt | 8 + 8.x/mk/tests/ok/f06.txt | 2 + 8.x/mk/tests/ok/f07.txt | 2 + 8.x/mk/tests/ok/f07a.txt | 3 + 8.x/mk/tests/ok/f08.txt | 2 + 8.x/mk/tests/ok/f08a.txt | 6 + 8.x/mk/tests/ok/f09.txt | 2 + 8.x/mk/tests/ok/f09a.txt | 13 + 8.x/mk/tests/ok/f10.txt | 2 + 8.x/mk/tests/ok/f10a.txt | 13 + 8.x/mk/tests/ok/f11.txt | 2 + 8.x/mk/tests/ok/f11a.txt | 1 + 8.x/mk/tests/ok/l00.txt | 2 + 8.x/mk/tests/ok/l00a.txt | 4 + 8.x/mk/tests/ok/l01.txt | 2 + 8.x/mk/tests/ok/l01a.txt | 9003 ++++++++++++ 8.x/mk/tests/ok/l02.txt | 2 + 8.x/mk/tests/ok/l02a.txt | 3503 +++++ 8.x/mk/tests/ok/l03.txt | 2 + 8.x/mk/tests/ok/l03a.txt | 1503 ++ 8.x/mk/tests/ok/l03b.txt | 1503 ++ 8.x/mk/tests/ok/l04.txt | 2 + 8.x/mk/tests/ok/l04a.txt | 1503 ++ 8.x/mk/tests/ok/l05.txt | 2 + 8.x/mk/tests/ok/l05a.txt | 4 + 8.x/mk/tests/ok/l06.txt | 2 + 8.x/mk/tests/ok/l06a.txt | 1371 ++ 8.x/mk/tests/ok/l07.txt | 2 + 8.x/mk/tests/ok/l07a.txt | 4 + 8.x/mk/tests/ok/m01.txt | 2 + 8.x/mk/tests/ok/m02.txt | 2 + 8.x/mk/tests/ok/m02a.txt | 22 + 8.x/mk/tests/ok/m03.txt | 2 + 8.x/mk/tests/ok/m03a.txt | 55 + 8.x/mk/tests/ok/m04.txt | 2 + 8.x/mk/tests/ok/m04a.txt | 9 + 8.x/mk/tests/ok/m05.txt | 2 + 8.x/mk/tests/ok/m05a.txt | 4012 +++++ 8.x/mk/tests/ok/m06.txt | 2 + 8.x/mk/tests/ok/m06a.txt | 2963 ++++ 8.x/mk/tests/ok/m07.txt | 63 + 8.x/mk/tests/ok/n01.txt | 2 + 8.x/mk/tests/ok/n02.txt | 2 + 8.x/mk/tests/ok/n03.txt | 2 + 8.x/mk/tests/ok/n04.txt | 2 + 8.x/mk/tests/ok/n05.txt | 2 + 8.x/mk/tests/ok/n06.txt | 2 + 8.x/mk/tests/ok/n07.txt | 2 + 8.x/mk/tests/ok/n08.txt | 2 + 8.x/mk/tests/ok/n09.txt | 2 + 8.x/mk/tests/ok/n10.txt | 2 + 8.x/mk/tests/ok/n11.txt | 2 + 8.x/mk/tests/ok/n12.txt | 2 + 8.x/mk/tests/ok/n13.txt | 2 + 8.x/mk/tests/ok/n14.txt | 2 + 8.x/mk/tests/ok/n14a.txt | 15 + 8.x/mk/tests/ok/r00.txt | 2 + 8.x/mk/tests/ok/r00a.txt | 253 + 8.x/mk/tests/ok/r01.txt | 2 + 8.x/mk/tests/ok/r01a.txt | 18 + 8.x/mk/tests/ok/r02.txt | 2 + 8.x/mk/tests/ok/r02a.txt | 8 + 8.x/mk/tests/ok/r03.txt | 2 + 8.x/mk/tests/ok/r03a.txt | 8 + 8.x/mk/tests/ok/r04.txt | 2 + 8.x/mk/tests/ok/r04a.txt | 3 + 8.x/mk/tests/ok/reversed.txt | 14 + 8.x/mk/tests/ok/s00.txt | 2 + 8.x/mk/tests/ok/s00a.txt | 3 + 8.x/mk/tests/ok/s01.txt | 2 + 8.x/mk/tests/ok/s01a.txt | 6 + 8.x/mk/tests/ok/s02.txt | 2 + 8.x/mk/tests/ok/s02a.txt | 6 + 8.x/mk/tests/ok/s03.txt | 2 + 8.x/mk/tests/ok/s03a.txt | 6 + 8.x/mk/tests/ok/s04.txt | 2 + 8.x/mk/tests/ok/s04a.txt | 18 + 8.x/mk/tests/ok/s05.txt | 2 + 8.x/mk/tests/ok/s05a.txt | 4 + 8.x/mk/tests/ok/s06.txt | 2 + 8.x/mk/tests/ok/s06a.txt | 5 + 8.x/mk/tests/ok/s07.txt | 2 + 8.x/mk/tests/ok/s07a.txt | 4 + 8.x/mk/tests/ok/s08.txt | 2 + 8.x/mk/tests/ok/s08a.txt | 4 + 8.x/mk/tests/ok/s09.txt | 2 + 8.x/mk/tests/ok/s09a.txt | 4 + 8.x/mk/tests/ok/s09b.txt | 4 + 8.x/mk/tests/ok/s10.txt | 2 + 8.x/mk/tests/ok/s10a.txt | 18 + 8.x/mk/tests/ok/s10b.txt | 18 + 8.x/mk/tests/ok/s10c.txt | 21 + 8.x/mk/tests/ok/s11.txt | 2 + 8.x/mk/tests/ok/s11a.txt | 4 + 8.x/mk/tests/ok/s12.txt | 2 + 8.x/mk/tests/ok/s12a.txt | 3 + 8.x/mk/tests/ok/s13.txt | 2 + 8.x/mk/tests/ok/s13a.txt | 13 + 8.x/mk/tests/ok/s14.txt | 2 + 8.x/mk/tests/ok/s14a.txt | 6 + 8.x/mk/tests/ok/s15.txt | 2 + 8.x/mk/tests/ok/s15a.txt | 7 + 8.x/mk/tests/ok/s16.txt | 2 + 8.x/mk/tests/ok/s16a.txt | 6 + 8.x/mk/tests/ok/s17.txt | 2 + 8.x/mk/tests/ok/s17a.txt | 6 + 8.x/mk/tests/ok/s18.txt | 2 + 8.x/mk/tests/ok/s18a.txt | 1 + 8.x/mk/tests/ok/s19.txt | 2 + 8.x/mk/tests/ok/s19a.txt | 1 + 8.x/mk/tests/ok/s20.txt | 2 + 8.x/mk/tests/ok/s20a.txt | 1 + 8.x/mk/tests/ok/s21.txt | 2 + 8.x/mk/tests/ok/s21a.txt | 10 + 8.x/mk/tests/ok/s22.txt | 2 + 8.x/mk/tests/ok/s22a.txt | 6 + 8.x/mk/tests/ok/s23.txt | 2 + 8.x/mk/tests/ok/s23a.txt | 1 + 8.x/mk/tests/ok/s24.txt | 2 + 8.x/mk/tests/ok/s24a.txt | 45 + 8.x/mk/tests/ok/s25.txt | 2 + 8.x/mk/tests/ok/s25a.txt | 6 + 8.x/mk/tests/ok/s26.txt | 2 + 8.x/mk/tests/ok/s26a.txt | 4 + 8.x/mk/tests/ok/s27.txt | 2 + 8.x/mk/tests/ok/s27a.txt | 4 + 8.x/mk/tests/ok/s28.txt | 2 + 8.x/mk/tests/ok/s28a.txt | 7 + 8.x/mk/tests/ok/s29.txt | 2 + 8.x/mk/tests/ok/s29a.txt | 3 + 8.x/mk/tests/ok/s30.txt | 2 + 8.x/mk/tests/ok/s30a.txt | 6 + 8.x/mk/tests/ok/s31.txt | 2 + 8.x/mk/tests/ok/s31a.txt | 6 + 8.x/mk/tests/ok/s32.txt | 2 + 8.x/mk/tests/ok/s32a.txt | 4 + 8.x/mk/tests/ok/s33.txt | 2 + 8.x/mk/tests/ok/s33a.txt | 6 + 8.x/mk/tests/ok/s33b.txt | 6 + 8.x/mk/tests/ok/s33c.txt | 6 + 8.x/mk/tests/ok/s34.txt | 2 + 8.x/mk/tests/ok/s34a.txt | 4 + 8.x/mk/tests/ok/s35.txt | 2 + 8.x/mk/tests/ok/s35a.txt | 4 + 8.x/mk/tests/ok/s36.txt | 2 + 8.x/mk/tests/ok/s36a.txt | 4 + 8.x/mk/tests/ok/s36b.txt | 4 + 8.x/mk/tests/ok/s37.txt | 2 + 8.x/mk/tests/ok/s37a.txt | 4 + 8.x/mk/tests/ok/s38.txt | 2 + 8.x/mk/tests/ok/s38a.txt | 7 + 8.x/mk/tests/ok/s39.txt | 2 + 8.x/mk/tests/ok/s39a.txt | 4 + 8.x/mk/tests/ok/s40.txt | 2 + 8.x/mk/tests/ok/s40a.txt | 4 + 8.x/mk/tests/ok/s41.txt | 2 + 8.x/mk/tests/ok/s41a.txt | 8 + 8.x/mk/tests/ok/s42.txt | 2 + 8.x/mk/tests/ok/s43.txt | 2 + 8.x/mk/tests/ok/s43a.txt | 5 + 8.x/mk/tests/ok/s44.txt | 2 + 8.x/mk/tests/ok/s44a.txt | 4 + 8.x/mk/tests/ok/s45.txt | 2 + 8.x/mk/tests/ok/s45a.txt | 7 + 8.x/mk/tests/ok/s46.txt | 2 + 8.x/mk/tests/ok/s46a.txt | 15 + 8.x/mk/tests/ok/s47.txt | 2 + 8.x/mk/tests/ok/s48.txt | 2 + 8.x/mk/tests/ok/s48a.txt | 5 + 8.x/mk/tests/ok/s48b.txt | 5 + 8.x/mk/tests/ok/s49.txt | 2 + 8.x/mk/tests/ok/s49a.txt | 7 + 8.x/mk/tests/ok/s50.txt | 2 + 8.x/mk/tests/ok/s50a.txt | 6 + 8.x/mk/tests/regress.cpp | 253 + 8.x/mk/tests/regress.h | 146 + 8.x/mk/tests/tbasic1.cpp | 267 + 8.x/mk/tests/tbasic2.cpp | 215 + 8.x/mk/tests/tcusto1.cpp | 276 + 8.x/mk/tests/tcusto2.cpp | 441 + 8.x/mk/tests/tdiffer.cpp | 57 + 8.x/mk/tests/textend.cpp | 209 + 8.x/mk/tests/tformat.cpp | 335 + 8.x/mk/tests/tlimits.cpp | 292 + 8.x/mk/tests/tmapped.cpp | 262 + 8.x/mk/tests/tnotify.cpp | 448 + 8.x/mk/tests/tresize.cpp | 338 + 8.x/mk/tests/tstore1.cpp | 212 + 8.x/mk/tests/tstore2.cpp | 362 + 8.x/mk/tests/tstore3.cpp | 393 + 8.x/mk/tests/tstore4.cpp | 361 + 8.x/mk/tests/tstore5.cpp | 359 + 8.x/mk/unix/Doxyfile | 1101 ++ 8.x/mk/unix/Doxytail.html | 8 + 8.x/mk/unix/Makefile.in | 274 + 8.x/mk/unix/README | 9 + 8.x/mk/unix/config.h.in | 56 + 8.x/mk/unix/configure | 4733 ++++++ 8.x/mk/unix/configure.in | 296 + 8.x/mk/unix/cpprt0_stubs.s | 14 + 8.x/mk/unix/metakit.spec | 103 + 8.x/mk/unix/reversed | Bin 0 -> 284 bytes 8.x/mk/unix/scripts/config.guess | 1363 ++ 8.x/mk/unix/scripts/config.sub | 1470 ++ 8.x/mk/unix/scripts/install-sh | 250 + 8.x/mk/win/config.h | 12 + 8.x/mk/win/msvc60/mkbug.dsp | 150 + 8.x/mk/win/msvc60/mkdemo.dsp | 92 + 8.x/mk/win/msvc60/mkdist.dsp | 59 + 8.x/mk/win/msvc60/mkdll.dsp | 265 + 8.x/mk/win/msvc60/mkdump.dsp | 92 + 8.x/mk/win/msvc60/mkhash.dsp | 149 + 8.x/mk/win/msvc60/mklib.dsp | 311 + 8.x/mk/win/msvc60/mkpython.dsp | 163 + 8.x/mk/win/msvc60/mksrc.dsw | 173 + 8.x/mk/win/msvc60/mktcl.dsp | 107 + 8.x/mk/win/msvc60/mktest.dsp | 225 + 8.x/mk/win/msvc60/reversed | Bin 0 -> 284 bytes 8.x/mk/win/msvc70/mkbug.vcproj | 235 + 8.x/mk/win/msvc70/mkdemo.vcproj | 126 + 8.x/mk/win/msvc70/mkdist.vcproj | 73 + 8.x/mk/win/msvc70/mkdll.vcproj | 263 + 8.x/mk/win/msvc70/mkdump.vcproj | 128 + 8.x/mk/win/msvc70/mkhash.vcproj | 235 + 8.x/mk/win/msvc70/mklib.vcproj | 329 + 8.x/mk/win/msvc70/mkpython.vcproj | 188 + 8.x/mk/win/msvc70/mksrc.sln | 129 + 8.x/mk/win/msvc70/mktcl.vcproj | 144 + 8.x/mk/win/msvc70/mktest.vcproj | 294 + 8.x/mk/win/msvc70/reversed | Bin 0 -> 284 bytes 8.x/mk/win/msvc70/tests/!keepme.txt | 1 + 8.x/tclvfs/ChangeLog | 1237 ++ 8.x/tclvfs/DESCRIPTION.txt | 20 + 8.x/tclvfs/Makefile.in | 388 + 8.x/tclvfs/README.cygwin | 3 + 8.x/tclvfs/Readme.txt | 171 + 8.x/tclvfs/aclocal.m4 | 1 + 8.x/tclvfs/configure | 11286 ++++++++++++++ 8.x/tclvfs/configure.in | 83 + 8.x/tclvfs/doc/vfs-filesystems.man | 95 + 8.x/tclvfs/doc/vfs-fsapi.man | 413 + 8.x/tclvfs/doc/vfs.man | 203 + 8.x/tclvfs/doc/vfs.n | 287 + 8.x/tclvfs/doc/vfslib.n | 78 + 8.x/tclvfs/examples/simpleExamples.tcl | 49 + 8.x/tclvfs/generic/vfs.c | 2064 +++ 8.x/tclvfs/http2.6/http.n | 544 + 8.x/tclvfs/http2.6/http.tcl | 1441 ++ 8.x/tclvfs/http2.6/pkgIndex.tcl | 8 + 8.x/tclvfs/library/ftpvfs.tcl | 341 + 8.x/tclvfs/library/httpvfs.tcl | 432 + 8.x/tclvfs/library/mk4vfs.tcl | 624 + 8.x/tclvfs/library/starkit.tcl | 156 + 8.x/tclvfs/library/tarvfs.tcl | 432 + 8.x/tclvfs/library/tclprocvfs.tcl | 206 + 8.x/tclvfs/library/template/chrootvfs.tcl | 127 + 8.x/tclvfs/library/template/collatevfs.tcl | 371 + 8.x/tclvfs/library/template/deltavfs.tcl | 288 + 8.x/tclvfs/library/template/fishvfs.tcl | 535 + 8.x/tclvfs/library/template/globfind.tcl | 338 + 8.x/tclvfs/library/template/quotavfs.tcl | 559 + 8.x/tclvfs/library/template/tclIndex | 15 + 8.x/tclvfs/library/template/tdelta.tcl | 430 + 8.x/tclvfs/library/template/templatevfs.tcl | 581 + 8.x/tclvfs/library/template/versionvfs.tcl | 603 + 8.x/tclvfs/library/testvfs.tcl | 87 + 8.x/tclvfs/library/tkvfs.tcl | 214 + 8.x/tclvfs/library/vfs.tcl.in | 36 + 8.x/tclvfs/library/vfsUrl.tcl | 166 + 8.x/tclvfs/library/vfsUtils.tcl | 441 + 8.x/tclvfs/library/vfslib.tcl | 276 + 8.x/tclvfs/library/webdavvfs.tcl | 285 + 8.x/tclvfs/library/zipvfs.tcl | 602 + 8.x/tclvfs/license.terms | 38 + 8.x/tclvfs/make55.tcl | 69 + 8.x/tclvfs/pkgIndex.tcl.in | 45 + 8.x/tclvfs/tclconfig/README.txt | 26 + 8.x/tclvfs/tclconfig/install-sh | 119 + 8.x/tclvfs/tclconfig/tcl.m4 | 4105 ++++++ 8.x/tclvfs/tests/all.tcl | 71 + 8.x/tclvfs/tests/vfs.test | 210 + 8.x/tclvfs/tests/vfsArchive.test | 129 + 8.x/tclvfs/tests/vfsFtp.test | 61 + 8.x/tclvfs/tests/vfsTar.test | Bin 0 -> 2425 bytes 8.x/tclvfs/tests/vfsUrl.test | 101 + 8.x/tclvfs/tests/vfsZip.test | 356 + 8.x/tclvfs/win/makefile.vc | 512 + 8.x/tclvfs/win/nmakehlp.c | 767 + 8.x/tclvfs/win/rules.vc | 694 + 8.x/tclvfs/win/tclvfs.rc | 40 + 8.x/thread/.cvsignore | 6 + 8.x/thread/ChangeLog | 1604 ++ 8.x/thread/Makefile.in | 429 + 8.x/thread/README | 55 + 8.x/thread/aclocal.m4 | 73 + 8.x/thread/aolserver.m4 | 57 + 8.x/thread/configure | 12258 ++++++++++++++++ 8.x/thread/configure.in | 207 + 8.x/thread/doc/format.tcl | 35 + 8.x/thread/doc/html/thread.html | 729 + 8.x/thread/doc/html/tpool.html | 276 + 8.x/thread/doc/html/tsv.html | 473 + 8.x/thread/doc/html/ttrace.html | 317 + 8.x/thread/doc/man.macros | 238 + 8.x/thread/doc/man/thread.n | 801 + 8.x/thread/doc/man/tpool.n | 450 + 8.x/thread/doc/man/tsv.n | 581 + 8.x/thread/doc/man/ttrace.n | 474 + 8.x/thread/doc/thread.man | 594 + 8.x/thread/doc/tpool.man | 231 + 8.x/thread/doc/tsv.man | 334 + 8.x/thread/doc/ttrace.man | 230 + 8.x/thread/generic/aolstub.cpp | 100 + 8.x/thread/generic/psGdbm.c | 399 + 8.x/thread/generic/psGdbm.h | 26 + 8.x/thread/generic/tclThread.h | 117 + 8.x/thread/generic/tclXkeylist.c | 1465 ++ 8.x/thread/generic/tclXkeylist.h | 53 + 8.x/thread/generic/threadCmd.c | 3592 +++++ 8.x/thread/generic/threadPoolCmd.c | 1926 +++ 8.x/thread/generic/threadSpCmd.c | 1930 +++ 8.x/thread/generic/threadSpCmd.h | 132 + 8.x/thread/generic/threadSvCmd.c | 2332 +++ 8.x/thread/generic/threadSvCmd.h | 232 + 8.x/thread/generic/threadSvKeylistCmd.c | 364 + 8.x/thread/generic/threadSvKeylistCmd.h | 27 + 8.x/thread/generic/threadSvListCmd.c | 1163 ++ 8.x/thread/generic/threadSvListCmd.h | 26 + 8.x/thread/lib/ttrace.tcl | 939 ++ 8.x/thread/license.terms | 39 + 8.x/thread/pkgIndex.tcl.in | 46 + 8.x/thread/tcl/README | 32 + 8.x/thread/tcl/cmdsrv/cmdsrv.tcl | 313 + 8.x/thread/tcl/phttpd/index.htm | 5 + 8.x/thread/tcl/phttpd/phttpd.tcl | 689 + 8.x/thread/tcl/phttpd/uhttpd.tcl | 419 + 8.x/thread/tcl/tpool/tpool.tcl | 579 + 8.x/thread/tclconfig/ChangeLog | 803 + 8.x/thread/tclconfig/README.txt | 26 + 8.x/thread/tclconfig/install-sh | 119 + 8.x/thread/tclconfig/tcl.m4 | 4232 ++++++ 8.x/thread/tests/all.tcl | 66 + 8.x/thread/tests/thread.test | 1165 ++ 8.x/thread/tests/tpool.test | 1 + 8.x/thread/tests/tsv.test | 1 + 8.x/thread/tests/ttrace.test | 1 + 8.x/thread/unix/CONFIG | 53 + 8.x/thread/unix/README | 69 + 8.x/thread/unix/threadUnix.c | 29 + 8.x/thread/win/CONFIG | 21 + 8.x/thread/win/README.txt | 52 + 8.x/thread/win/thread.rc | 48 + 8.x/thread/win/threadWin.c | 56 + 8.x/thread/win/vc/.cvsignore | 9 + 8.x/thread/win/vc/README.txt | 18 + 8.x/thread/win/vc/makefile.vc | 490 + 8.x/thread/win/vc/nmakehlp.c | 767 + 8.x/thread/win/vc/nmakehlp.exe | Bin 0 -> 65536 bytes 8.x/thread/win/vc/nmakehlp.obj | Bin 0 -> 12900 bytes 8.x/thread/win/vc/pkg.vc | 6 + 8.x/thread/win/vc/rules.vc | 622 + 8.x/thread/win/vc/thread_win.dsp | 269 + 8.x/thread/win/vc/thread_win.dsw | 29 + 8.x/vqtcl/ChangeLog | 39 + 8.x/vqtcl/Makefile.in | 434 + 8.x/vqtcl/README | 53 + 8.x/vqtcl/aclocal.m4 | 9 + 8.x/vqtcl/configure | 10858 ++++++++++++++ 8.x/vqtcl/configure.in | 179 + 8.x/vqtcl/data/gtest.db | Bin 0 -> 590 bytes 8.x/vqtcl/data/lkit-be.db | Bin 0 -> 20493 bytes 8.x/vqtcl/data/lkit-le.db | Bin 0 -> 20493 bytes 8.x/vqtcl/data/mkblk.db | Bin 0 -> 10092 bytes 8.x/vqtcl/doc/ratcl.html | 96 + 8.x/vqtcl/doc/ratcl.man | 52 + 8.x/vqtcl/doc/ratcl.n | 58 + 8.x/vqtcl/doc/vlerq.html | 80 + 8.x/vqtcl/doc/vlerq.man | 42 + 8.x/vqtcl/doc/vlerq.n | 46 + 8.x/vqtcl/generic/vlerq.c | 7602 ++++++++++ 8.x/vqtcl/library/m2mvfs.tcl | 236 + 8.x/vqtcl/library/mkclvfs.tcl | 181 + 8.x/vqtcl/library/mklite.tcl | 271 + 8.x/vqtcl/library/ratcl.tcl | 230 + 8.x/vqtcl/license.terms | 26 + 8.x/vqtcl/pkgIndex.tcl.in | 9 + 8.x/vqtcl/tclconfig/install-sh | 119 + 8.x/vqtcl/tclconfig/tcl.m4 | 4000 +++++ 8.x/vqtcl/tests/all.tcl | 9 + 8.x/vqtcl/tests/basic.test | 75 + 8.x/vqtcl/tests/bits.test | 76 + 8.x/vqtcl/tests/blocked.test | 43 + 8.x/vqtcl/tests/column.test | 113 + 8.x/vqtcl/tests/commit.test | 250 + 8.x/vqtcl/tests/emit.test | 219 + 8.x/vqtcl/tests/error.test | 208 + 8.x/vqtcl/tests/file.test | 190 + 8.x/vqtcl/tests/get.test | 72 + 8.x/vqtcl/tests/hash.test | 431 + 8.x/vqtcl/tests/indirect.test | 91 + 8.x/vqtcl/tests/initests.tcl | 57 + 8.x/vqtcl/tests/kitten.test | 45 + 8.x/vqtcl/tests/l.large.test | 77 + 8.x/vqtcl/tests/l.leaks.test | 44 + 8.x/vqtcl/tests/loop.test | 123 + 8.x/vqtcl/tests/m2m.test | 93 + 8.x/vqtcl/tests/mkcl.test | 133 + 8.x/vqtcl/tests/mklite.test | 204 + 8.x/vqtcl/tests/mutable.test | 324 + 8.x/vqtcl/tests/ops.test | 464 + 8.x/vqtcl/tests/ratcl.test | 376 + 8.x/vqtcl/tests/ref.test | 151 + 8.x/vqtcl/tests/sorted.test | 283 + 8.x/vqtcl/tests/view.test | 34 + 8.x/vqtcl/win/makefile.vc | 460 + 8.x/vqtcl/win/nmakehlp.c | 767 + 8.x/vqtcl/win/rules.vc | 622 + 8.x/vqtcl/win/unistd.h | 17 + 8.x/zlib/CMakeLists.txt | 190 + 8.x/zlib/ChangeLog | 1208 ++ 8.x/zlib/FAQ | 366 + 8.x/zlib/INDEX | 65 + 8.x/zlib/Makefile | 5 + 8.x/zlib/Makefile.in | 257 + 8.x/zlib/README | 115 + 8.x/zlib/adler32.c | 169 + 8.x/zlib/amiga/Makefile.pup | 69 + 8.x/zlib/amiga/Makefile.sas | 68 + 8.x/zlib/compress.c | 80 + 8.x/zlib/configure | 596 + 8.x/zlib/contrib/README.contrib | 77 + 8.x/zlib/contrib/ada/buffer_demo.adb | 106 + 8.x/zlib/contrib/ada/mtest.adb | 156 + 8.x/zlib/contrib/ada/read.adb | 156 + 8.x/zlib/contrib/ada/readme.txt | 65 + 8.x/zlib/contrib/ada/test.adb | 463 + 8.x/zlib/contrib/ada/zlib-streams.adb | 225 + 8.x/zlib/contrib/ada/zlib-streams.ads | 114 + 8.x/zlib/contrib/ada/zlib-thin.adb | 141 + 8.x/zlib/contrib/ada/zlib-thin.ads | 450 + 8.x/zlib/contrib/ada/zlib.adb | 701 + 8.x/zlib/contrib/ada/zlib.ads | 328 + 8.x/zlib/contrib/ada/zlib.gpr | 20 + 8.x/zlib/contrib/amd64/amd64-match.S | 452 + 8.x/zlib/contrib/asm686/README.686 | 51 + 8.x/zlib/contrib/asm686/match.S | 343 + 8.x/zlib/contrib/blast/Makefile | 8 + 8.x/zlib/contrib/blast/README | 4 + 8.x/zlib/contrib/blast/blast.c | 444 + 8.x/zlib/contrib/blast/blast.h | 71 + 8.x/zlib/contrib/blast/test.pk | Bin 0 -> 8 bytes 8.x/zlib/contrib/blast/test.txt | 1 + 8.x/zlib/contrib/delphi/ZLib.pas | 557 + 8.x/zlib/contrib/delphi/ZLibConst.pas | 11 + 8.x/zlib/contrib/delphi/readme.txt | 76 + 8.x/zlib/contrib/delphi/zlibd32.mak | 99 + 8.x/zlib/contrib/dotzlib/DotZLib.build | 33 + 8.x/zlib/contrib/dotzlib/DotZLib.chm | Bin 0 -> 72726 bytes 8.x/zlib/contrib/dotzlib/DotZLib.sln | 21 + .../contrib/dotzlib/DotZLib/AssemblyInfo.cs | 58 + .../contrib/dotzlib/DotZLib/ChecksumImpl.cs | 202 + .../contrib/dotzlib/DotZLib/CircularBuffer.cs | 83 + 8.x/zlib/contrib/dotzlib/DotZLib/CodecBase.cs | 198 + 8.x/zlib/contrib/dotzlib/DotZLib/Deflater.cs | 106 + 8.x/zlib/contrib/dotzlib/DotZLib/DotZLib.cs | 288 + .../contrib/dotzlib/DotZLib/DotZLib.csproj | 141 + .../contrib/dotzlib/DotZLib/GZipStream.cs | 301 + 8.x/zlib/contrib/dotzlib/DotZLib/Inflater.cs | 105 + 8.x/zlib/contrib/dotzlib/DotZLib/UnitTests.cs | 274 + 8.x/zlib/contrib/dotzlib/LICENSE_1_0.txt | 23 + 8.x/zlib/contrib/dotzlib/readme.txt | 58 + 8.x/zlib/contrib/gcc_gvmat64/gvmat64.S | 574 + 8.x/zlib/contrib/infback9/README | 1 + 8.x/zlib/contrib/infback9/infback9.c | 617 + 8.x/zlib/contrib/infback9/infback9.h | 37 + 8.x/zlib/contrib/infback9/inffix9.h | 107 + 8.x/zlib/contrib/infback9/inflate9.h | 47 + 8.x/zlib/contrib/infback9/inftree9.c | 324 + 8.x/zlib/contrib/infback9/inftree9.h | 61 + 8.x/zlib/contrib/inflate86/inffas86.c | 1157 ++ 8.x/zlib/contrib/inflate86/inffast.S | 1368 ++ 8.x/zlib/contrib/iostream/test.cpp | 24 + 8.x/zlib/contrib/iostream/zfstream.cpp | 329 + 8.x/zlib/contrib/iostream/zfstream.h | 128 + 8.x/zlib/contrib/iostream2/zstream.h | 307 + 8.x/zlib/contrib/iostream2/zstream_test.cpp | 25 + 8.x/zlib/contrib/iostream3/README | 35 + 8.x/zlib/contrib/iostream3/TODO | 17 + 8.x/zlib/contrib/iostream3/test.cc | 50 + 8.x/zlib/contrib/iostream3/zfstream.cc | 479 + 8.x/zlib/contrib/iostream3/zfstream.h | 466 + 8.x/zlib/contrib/masmx64/bld_ml64.bat | 2 + 8.x/zlib/contrib/masmx64/gvmat64.asm | 553 + 8.x/zlib/contrib/masmx64/inffas8664.c | 186 + 8.x/zlib/contrib/masmx64/inffasx64.asm | 396 + 8.x/zlib/contrib/masmx64/readme.txt | 31 + 8.x/zlib/contrib/masmx86/bld_ml32.bat | 2 + 8.x/zlib/contrib/masmx86/inffas32.asm | 1083 ++ 8.x/zlib/contrib/masmx86/match686.asm | 478 + 8.x/zlib/contrib/masmx86/readme.txt | 27 + 8.x/zlib/contrib/minizip/Makefile | 25 + .../contrib/minizip/MiniZip64_Changes.txt | 6 + 8.x/zlib/contrib/minizip/MiniZip64_info.txt | 74 + 8.x/zlib/contrib/minizip/crypt.h | 131 + 8.x/zlib/contrib/minizip/ioapi.c | 235 + 8.x/zlib/contrib/minizip/ioapi.h | 200 + 8.x/zlib/contrib/minizip/iowin32.c | 389 + 8.x/zlib/contrib/minizip/iowin32.h | 28 + 8.x/zlib/contrib/minizip/make_vms.com | 25 + 8.x/zlib/contrib/minizip/miniunz.c | 648 + 8.x/zlib/contrib/minizip/minizip.c | 507 + 8.x/zlib/contrib/minizip/mztools.c | 281 + 8.x/zlib/contrib/minizip/mztools.h | 31 + 8.x/zlib/contrib/minizip/unzip.c | 2125 +++ 8.x/zlib/contrib/minizip/unzip.h | 437 + 8.x/zlib/contrib/minizip/zip.c | 2004 +++ 8.x/zlib/contrib/minizip/zip.h | 362 + 8.x/zlib/contrib/pascal/example.pas | 599 + 8.x/zlib/contrib/pascal/readme.txt | 76 + 8.x/zlib/contrib/pascal/zlibd32.mak | 99 + 8.x/zlib/contrib/pascal/zlibpas.pas | 236 + 8.x/zlib/contrib/puff/Makefile | 8 + 8.x/zlib/contrib/puff/README | 63 + 8.x/zlib/contrib/puff/puff.c | 955 ++ 8.x/zlib/contrib/puff/puff.h | 31 + 8.x/zlib/contrib/puff/zeros.raw | Bin 0 -> 1213 bytes 8.x/zlib/contrib/testzlib/testzlib.c | 275 + 8.x/zlib/contrib/testzlib/testzlib.txt | 10 + 8.x/zlib/contrib/untgz/Makefile | 14 + 8.x/zlib/contrib/untgz/Makefile.msc | 17 + 8.x/zlib/contrib/untgz/untgz.c | 674 + 8.x/zlib/contrib/vstudio/readme.txt | 60 + 8.x/zlib/contrib/vstudio/vc10/miniunz.vcxproj | 310 + .../vstudio/vc10/miniunz.vcxproj.filters | 22 + .../contrib/vstudio/vc10/miniunz.vcxproj.user | 3 + 8.x/zlib/contrib/vstudio/vc10/minizip.vcxproj | 307 + .../vstudio/vc10/minizip.vcxproj.filters | 22 + .../contrib/vstudio/vc10/minizip.vcxproj.user | 3 + .../contrib/vstudio/vc10/testzlib.vcxproj | 420 + .../vstudio/vc10/testzlib.vcxproj.filters | 58 + .../vstudio/vc10/testzlib.vcxproj.user | 3 + .../contrib/vstudio/vc10/testzlibdll.vcxproj | 310 + .../vstudio/vc10/testzlibdll.vcxproj.filters | 22 + .../vstudio/vc10/testzlibdll.vcxproj.user | 3 + 8.x/zlib/contrib/vstudio/vc10/zlib.rc | 32 + .../contrib/vstudio/vc10/zlibstat.vcxproj | 457 + .../vstudio/vc10/zlibstat.vcxproj.filters | 77 + .../vstudio/vc10/zlibstat.vcxproj.user | 3 + 8.x/zlib/contrib/vstudio/vc10/zlibvc.def | 130 + 8.x/zlib/contrib/vstudio/vc10/zlibvc.sln | 135 + 8.x/zlib/contrib/vstudio/vc10/zlibvc.vcxproj | 659 + .../vstudio/vc10/zlibvc.vcxproj.filters | 118 + .../contrib/vstudio/vc10/zlibvc.vcxproj.user | 3 + 8.x/zlib/contrib/vstudio/vc9/miniunz.vcproj | 565 + 8.x/zlib/contrib/vstudio/vc9/minizip.vcproj | 562 + 8.x/zlib/contrib/vstudio/vc9/testzlib.vcproj | 852 ++ .../contrib/vstudio/vc9/testzlibdll.vcproj | 565 + 8.x/zlib/contrib/vstudio/vc9/zlib.rc | 32 + 8.x/zlib/contrib/vstudio/vc9/zlibstat.vcproj | 835 ++ 8.x/zlib/contrib/vstudio/vc9/zlibvc.def | 130 + 8.x/zlib/contrib/vstudio/vc9/zlibvc.sln | 144 + 8.x/zlib/contrib/vstudio/vc9/zlibvc.vcproj | 1156 ++ 8.x/zlib/crc32.c | 442 + 8.x/zlib/crc32.h | 441 + 8.x/zlib/deflate.c | 1834 +++ 8.x/zlib/deflate.h | 342 + 8.x/zlib/doc/algorithm.txt | 209 + 8.x/zlib/doc/rfc1950.txt | 619 + 8.x/zlib/doc/rfc1951.txt | 955 ++ 8.x/zlib/doc/rfc1952.txt | 675 + 8.x/zlib/doc/txtvsbin.txt | 107 + 8.x/zlib/example.c | 565 + 8.x/zlib/examples/README.examples | 49 + 8.x/zlib/examples/enough.c | 569 + 8.x/zlib/examples/fitblk.c | 233 + 8.x/zlib/examples/gun.c | 701 + 8.x/zlib/examples/gzappend.c | 500 + 8.x/zlib/examples/gzjoin.c | 448 + 8.x/zlib/examples/gzlog.c | 1058 ++ 8.x/zlib/examples/gzlog.h | 89 + 8.x/zlib/examples/zlib_how.html | 545 + 8.x/zlib/examples/zpipe.c | 205 + 8.x/zlib/examples/zran.c | 404 + 8.x/zlib/gzclose.c | 25 + 8.x/zlib/gzguts.h | 132 + 8.x/zlib/gzlib.c | 537 + 8.x/zlib/gzread.c | 653 + 8.x/zlib/gzwrite.c | 531 + 8.x/zlib/infback.c | 632 + 8.x/zlib/inffast.c | 340 + 8.x/zlib/inffast.h | 11 + 8.x/zlib/inffixed.h | 94 + 8.x/zlib/inflate.c | 1480 ++ 8.x/zlib/inflate.h | 122 + 8.x/zlib/inftrees.c | 330 + 8.x/zlib/inftrees.h | 62 + 8.x/zlib/make_vms.com | 804 + 8.x/zlib/minigzip.c | 440 + 8.x/zlib/msdos/Makefile.bor | 115 + 8.x/zlib/msdos/Makefile.dj2 | 104 + 8.x/zlib/msdos/Makefile.emx | 69 + 8.x/zlib/msdos/Makefile.msc | 112 + 8.x/zlib/msdos/Makefile.tc | 100 + 8.x/zlib/nintendods/Makefile | 126 + 8.x/zlib/nintendods/README | 5 + 8.x/zlib/old/Makefile.riscos | 151 + 8.x/zlib/old/README | 3 + 8.x/zlib/old/as400/bndsrc | 132 + 8.x/zlib/old/as400/compile.clp | 123 + 8.x/zlib/old/as400/readme.txt | 111 + 8.x/zlib/old/as400/zlib.inc | 331 + 8.x/zlib/old/descrip.mms | 48 + 8.x/zlib/old/os2/Makefile.os2 | 136 + 8.x/zlib/old/os2/zlib.def | 51 + 8.x/zlib/old/visual-basic.txt | 160 + 8.x/zlib/old/visualc6/README.txt | 73 + 8.x/zlib/old/visualc6/example.dsp | 278 + 8.x/zlib/old/visualc6/minigzip.dsp | 278 + 8.x/zlib/old/visualc6/zlib.dsp | 621 + 8.x/zlib/old/visualc6/zlib.dsw | 59 + 8.x/zlib/qnx/package.qpg | 141 + 8.x/zlib/treebuild.xml | 116 + 8.x/zlib/trees.c | 1244 ++ 8.x/zlib/trees.h | 128 + 8.x/zlib/uncompr.c | 59 + 8.x/zlib/watcom/watcom_f.mak | 43 + 8.x/zlib/watcom/watcom_l.mak | 43 + 8.x/zlib/win32/DLL_FAQ.txt | 397 + 8.x/zlib/win32/Makefile.bor | 110 + 8.x/zlib/win32/Makefile.emx | 69 + 8.x/zlib/win32/Makefile.gcc | 164 + 8.x/zlib/win32/Makefile.msc | 157 + 8.x/zlib/win32/README-WIN32.txt | 103 + 8.x/zlib/win32/VisualC.txt | 3 + 8.x/zlib/win32/zlib.def | 74 + 8.x/zlib/win32/zlib1.rc | 40 + 8.x/zlib/zconf.h | 428 + 8.x/zlib/zconf.h.cmakein | 430 + 8.x/zlib/zconf.h.in | 428 + 8.x/zlib/zlib.3 | 151 + 8.x/zlib/zlib.3.pdf | Bin 0 -> 8686 bytes 8.x/zlib/zlib.h | 1613 ++ 8.x/zlib/zlib.map | 68 + 8.x/zlib/zlib.pc.in | 13 + 8.x/zlib/zlib2ansi | 152 + 8.x/zlib/zutil.c | 318 + 8.x/zlib/zutil.h | 274 + makefile.include | 3 +- 1058 files changed, 325703 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 8.x/itcl/.cvsignore create mode 100644 8.x/itcl/Makefile.in create mode 100644 8.x/itcl/aclocal.m4 create mode 100755 8.x/itcl/configure create mode 100644 8.x/itcl/configure.in create mode 100644 8.x/itcl/doc/Class.3 create mode 100644 8.x/itcl/doc/List.3 create mode 100644 8.x/itcl/doc/Object.3 create mode 100644 8.x/itcl/doc/Preserve.3 create mode 100644 8.x/itcl/doc/RegisterC.3 create mode 100644 8.x/itcl/doc/Stack.3 create mode 100644 8.x/itcl/doc/body.n create mode 100644 8.x/itcl/doc/class.n create mode 100644 8.x/itcl/doc/code.n create mode 100644 8.x/itcl/doc/configbody.n create mode 100644 8.x/itcl/doc/delete.n create mode 100644 8.x/itcl/doc/ensemble.n create mode 100644 8.x/itcl/doc/find.n create mode 100644 8.x/itcl/doc/is.n create mode 100644 8.x/itcl/doc/itcl.n create mode 100644 8.x/itcl/doc/itclvars.n create mode 100644 8.x/itcl/doc/license.terms create mode 100644 8.x/itcl/doc/local.n create mode 100644 8.x/itcl/doc/man.macros create mode 100644 8.x/itcl/doc/scope.n create mode 100644 8.x/itcl/generic/itcl.decls create mode 100644 8.x/itcl/generic/itcl.h create mode 100644 8.x/itcl/generic/itclDecls.h create mode 100644 8.x/itcl/generic/itclInt.decls create mode 100644 8.x/itcl/generic/itclInt.h create mode 100644 8.x/itcl/generic/itclIntDecls.h create mode 100644 8.x/itcl/generic/itclStubInit.c create mode 100644 8.x/itcl/generic/itclStubLib.c create mode 100644 8.x/itcl/generic/itcl_bicmds.c create mode 100644 8.x/itcl/generic/itcl_class.c create mode 100644 8.x/itcl/generic/itcl_cmds.c create mode 100644 8.x/itcl/generic/itcl_ensemble.c create mode 100644 8.x/itcl/generic/itcl_linkage.c create mode 100644 8.x/itcl/generic/itcl_methods.c create mode 100644 8.x/itcl/generic/itcl_migrate.c create mode 100644 8.x/itcl/generic/itcl_objects.c create mode 100644 8.x/itcl/generic/itcl_parse.c create mode 100644 8.x/itcl/generic/itcl_util.c create mode 100644 8.x/itcl/itclConfig.sh.in create mode 100644 8.x/itcl/library/itcl.tcl create mode 100644 8.x/itcl/license.terms create mode 100644 8.x/itcl/pkgIndex.tcl.in create mode 100755 8.x/itcl/tclconfig/install-sh create mode 100644 8.x/itcl/tclconfig/tcl.m4 create mode 100755 8.x/itcl/tests/all.tcl create mode 100644 8.x/itcl/tests/basic.test create mode 100644 8.x/itcl/tests/body.test create mode 100644 8.x/itcl/tests/chain.test create mode 100644 8.x/itcl/tests/delete.test create mode 100644 8.x/itcl/tests/ensemble.test create mode 100644 8.x/itcl/tests/import.test create mode 100644 8.x/itcl/tests/info.test create mode 100644 8.x/itcl/tests/inherit.test create mode 100644 8.x/itcl/tests/interp.test create mode 100644 8.x/itcl/tests/local.test create mode 100644 8.x/itcl/tests/methods.test create mode 100644 8.x/itcl/tests/mkindex.itcl create mode 100644 8.x/itcl/tests/mkindex.test create mode 100644 8.x/itcl/tests/namespace.test create mode 100644 8.x/itcl/tests/old/AAA.test create mode 100644 8.x/itcl/tests/old/Bar.tcl create mode 100644 8.x/itcl/tests/old/BarFoo.tcl create mode 100644 8.x/itcl/tests/old/Baz.tcl create mode 100644 8.x/itcl/tests/old/Foo.tcl create mode 100644 8.x/itcl/tests/old/FooBar.tcl create mode 100644 8.x/itcl/tests/old/Geek.tcl create mode 100644 8.x/itcl/tests/old/Mongrel.tcl create mode 100644 8.x/itcl/tests/old/VirtualErr.tcl create mode 100644 8.x/itcl/tests/old/all create mode 100644 8.x/itcl/tests/old/basic.test create mode 100644 8.x/itcl/tests/old/inherit.test create mode 100644 8.x/itcl/tests/old/tclIndex create mode 100644 8.x/itcl/tests/old/testlib.tcl create mode 100644 8.x/itcl/tests/old/toaster.test create mode 100644 8.x/itcl/tests/old/toasters/Appliance.tcl create mode 100644 8.x/itcl/tests/old/toasters/Hazard.tcl create mode 100644 8.x/itcl/tests/old/toasters/Outlet.tcl create mode 100644 8.x/itcl/tests/old/toasters/SmartToaster.tcl create mode 100644 8.x/itcl/tests/old/toasters/Toaster.tcl create mode 100644 8.x/itcl/tests/old/toasters/tclIndex create mode 100644 8.x/itcl/tests/old/toasters/usualway.tcl create mode 100644 8.x/itcl/tests/old/uplevel.test create mode 100644 8.x/itcl/tests/old/upvar.test create mode 100644 8.x/itcl/tests/protection.test create mode 100644 8.x/itcl/tests/scope.test create mode 100644 8.x/itcl/tests/tclIndex create mode 100644 8.x/itcl/win/.cvsignore create mode 100644 8.x/itcl/win/dllEntryPoint.c create mode 100644 8.x/itcl/win/makefile.vc create mode 100644 8.x/itcl/win/nmakehlp.c create mode 100644 8.x/itcl/win/rc/itcl.rc create mode 100644 8.x/itcl/win/toaster.bmp create mode 100755 8.x/mk/CHANGES create mode 100644 8.x/mk/NOTES-2.3.4 create mode 100755 8.x/mk/README create mode 100644 8.x/mk/builds/!keepme.txt create mode 100755 8.x/mk/demos/demo.cpp create mode 100755 8.x/mk/demos/dump.cpp create mode 100755 8.x/mk/demos/myio.cpp create mode 100755 8.x/mk/demos/struct.cpp create mode 100644 8.x/mk/doc/api/c4_Bytes.html create mode 100644 8.x/mk/doc/api/c4_BytesProp.html create mode 100644 8.x/mk/doc/api/c4_BytesProp_desc.html create mode 100644 8.x/mk/doc/api/c4_BytesProp_info.html create mode 100644 8.x/mk/doc/api/c4_BytesRef.html create mode 100644 8.x/mk/doc/api/c4_BytesRef_desc.html create mode 100644 8.x/mk/doc/api/c4_BytesRef_info.html create mode 100644 8.x/mk/doc/api/c4_Bytes___NONAME.html create mode 100644 8.x/mk/doc/api/c4_Bytes___NONAME_desc.html create mode 100644 8.x/mk/doc/api/c4_Bytes___NONAME_info.html create mode 100644 8.x/mk/doc/api/c4_Bytes_desc.html create mode 100644 8.x/mk/doc/api/c4_Bytes_info.html create mode 100644 8.x/mk/doc/api/c4_Cursor.html create mode 100644 8.x/mk/doc/api/c4_Cursor_desc.html create mode 100644 8.x/mk/doc/api/c4_Cursor_info.html create mode 100644 8.x/mk/doc/api/c4_CustomViewer.html create mode 100644 8.x/mk/doc/api/c4_CustomViewer_desc.html create mode 100644 8.x/mk/doc/api/c4_CustomViewer_info.html create mode 100644 8.x/mk/doc/api/c4_DoubleProp.html create mode 100644 8.x/mk/doc/api/c4_DoubleProp_desc.html create mode 100644 8.x/mk/doc/api/c4_DoubleProp_info.html create mode 100644 8.x/mk/doc/api/c4_DoubleRef.html create mode 100644 8.x/mk/doc/api/c4_DoubleRef_desc.html create mode 100644 8.x/mk/doc/api/c4_DoubleRef_info.html create mode 100644 8.x/mk/doc/api/c4_FloatProp.html create mode 100644 8.x/mk/doc/api/c4_FloatProp_desc.html create mode 100644 8.x/mk/doc/api/c4_FloatProp_info.html create mode 100644 8.x/mk/doc/api/c4_FloatRef.html create mode 100644 8.x/mk/doc/api/c4_FloatRef_desc.html create mode 100644 8.x/mk/doc/api/c4_FloatRef_info.html create mode 100644 8.x/mk/doc/api/c4_IntProp.html create mode 100644 8.x/mk/doc/api/c4_IntProp_desc.html create mode 100644 8.x/mk/doc/api/c4_IntProp_info.html create mode 100644 8.x/mk/doc/api/c4_IntRef.html create mode 100644 8.x/mk/doc/api/c4_IntRef_desc.html create mode 100644 8.x/mk/doc/api/c4_IntRef_info.html create mode 100644 8.x/mk/doc/api/c4_MemoProp.html create mode 100644 8.x/mk/doc/api/c4_MemoProp_desc.html create mode 100644 8.x/mk/doc/api/c4_MemoProp_info.html create mode 100644 8.x/mk/doc/api/c4_MemoRef.html create mode 100644 8.x/mk/doc/api/c4_MemoRef_desc.html create mode 100644 8.x/mk/doc/api/c4_MemoRef_info.html create mode 100644 8.x/mk/doc/api/c4_Property.html create mode 100644 8.x/mk/doc/api/c4_Property_desc.html create mode 100644 8.x/mk/doc/api/c4_Property_info.html create mode 100644 8.x/mk/doc/api/c4_Reference.html create mode 100644 8.x/mk/doc/api/c4_Reference_desc.html create mode 100644 8.x/mk/doc/api/c4_Reference_info.html create mode 100644 8.x/mk/doc/api/c4_Row.html create mode 100644 8.x/mk/doc/api/c4_RowRef.html create mode 100644 8.x/mk/doc/api/c4_RowRef_desc.html create mode 100644 8.x/mk/doc/api/c4_RowRef_info.html create mode 100644 8.x/mk/doc/api/c4_Row_desc.html create mode 100644 8.x/mk/doc/api/c4_Row_info.html create mode 100644 8.x/mk/doc/api/c4_Sequence.html create mode 100644 8.x/mk/doc/api/c4_Sequence_desc.html create mode 100644 8.x/mk/doc/api/c4_Sequence_info.html create mode 100644 8.x/mk/doc/api/c4_Storage.html create mode 100644 8.x/mk/doc/api/c4_Storage_desc.html create mode 100644 8.x/mk/doc/api/c4_Storage_info.html create mode 100644 8.x/mk/doc/api/c4_Strategy.html create mode 100644 8.x/mk/doc/api/c4_Strategy_desc.html create mode 100644 8.x/mk/doc/api/c4_Strategy_info.html create mode 100644 8.x/mk/doc/api/c4_Stream.html create mode 100644 8.x/mk/doc/api/c4_Stream_desc.html create mode 100644 8.x/mk/doc/api/c4_Stream_info.html create mode 100644 8.x/mk/doc/api/c4_StringProp.html create mode 100644 8.x/mk/doc/api/c4_StringProp_desc.html create mode 100644 8.x/mk/doc/api/c4_StringProp_info.html create mode 100644 8.x/mk/doc/api/c4_StringRef.html create mode 100644 8.x/mk/doc/api/c4_StringRef_desc.html create mode 100644 8.x/mk/doc/api/c4_StringRef_info.html create mode 100644 8.x/mk/doc/api/c4_View.html create mode 100644 8.x/mk/doc/api/c4_ViewProp.html create mode 100644 8.x/mk/doc/api/c4_ViewProp_desc.html create mode 100644 8.x/mk/doc/api/c4_ViewProp_info.html create mode 100644 8.x/mk/doc/api/c4_ViewRef.html create mode 100644 8.x/mk/doc/api/c4_ViewRef_desc.html create mode 100644 8.x/mk/doc/api/c4_ViewRef_info.html create mode 100644 8.x/mk/doc/api/c4_View_desc.html create mode 100644 8.x/mk/doc/api/c4_View_info.html create mode 100644 8.x/mk/doc/api/classes.html create mode 100644 8.x/mk/doc/api/doc_catfish.html create mode 100644 8.x/mk/doc/api/doc_catrecv.html create mode 100644 8.x/mk/doc/api/doc_catsend.html create mode 100644 8.x/mk/doc/api/doc_dbf2mk.html create mode 100644 8.x/mk/doc/api/doc_demo.html create mode 100644 8.x/mk/doc/api/doc_discat.html create mode 100644 8.x/mk/doc/api/doc_dump.html create mode 100644 8.x/mk/doc/api/doc_ftpcat.html create mode 100644 8.x/mk/doc/api/doc_kbind.html create mode 100644 8.x/mk/doc/api/doc_mkoptim.html create mode 100644 8.x/mk/doc/api/doc_myio.html create mode 100644 8.x/mk/doc/api/doc_struct.html create mode 100644 8.x/mk/doc/api/index.html create mode 100644 8.x/mk/doc/api/navbar.html create mode 100644 8.x/mk/doc/api/roadmap.html create mode 100644 8.x/mk/doc/api/samples.html create mode 100644 8.x/mk/doc/api/tips.html create mode 100755 8.x/mk/doc/e4s.gif create mode 100755 8.x/mk/doc/format.html create mode 100644 8.x/mk/doc/metakit.png create mode 100755 8.x/mk/doc/python.html create mode 100755 8.x/mk/doc/python.jpg create mode 100755 8.x/mk/doc/tcl.gif create mode 100755 8.x/mk/doc/tcl.html create mode 100644 8.x/mk/examples/README create mode 100644 8.x/mk/examples/aside.py create mode 100644 8.x/mk/examples/bigblock.tcl create mode 100644 8.x/mk/examples/blockdels.tcl create mode 100644 8.x/mk/examples/case.py create mode 100644 8.x/mk/examples/demo.py create mode 100644 8.x/mk/examples/demo.tcl create mode 100644 8.x/mk/examples/demold.tcl create mode 100644 8.x/mk/examples/derived.py create mode 100644 8.x/mk/examples/find.py create mode 100644 8.x/mk/examples/mapped.tcl create mode 100755 8.x/mk/examples/millions.py create mode 100755 8.x/mk/examples/mkbug.cpp create mode 100644 8.x/mk/examples/mkhash.cpp create mode 100755 8.x/mk/examples/mkmemoio.py create mode 100644 8.x/mk/examples/pair.py create mode 100644 8.x/mk/examples/random.tcl create mode 100644 8.x/mk/examples/remap.py create mode 100644 8.x/mk/examples/selfref.py create mode 100644 8.x/mk/examples/selmap.tcl create mode 100644 8.x/mk/examples/slow.tcl create mode 100644 8.x/mk/examples/sort.tcl create mode 100644 8.x/mk/examples/wrap.py create mode 100755 8.x/mk/include/mk4.h create mode 100755 8.x/mk/include/mk4.inl create mode 100755 8.x/mk/include/mk4dll.h create mode 100755 8.x/mk/include/mk4io.h create mode 100755 8.x/mk/include/mk4str.h create mode 100755 8.x/mk/include/mk4str.inl create mode 100644 8.x/mk/license.terms create mode 100644 8.x/mk/python/.cvsignore create mode 100755 8.x/mk/python/PyHead.h create mode 100755 8.x/mk/python/PyProperty.cpp create mode 100755 8.x/mk/python/PyProperty.h create mode 100755 8.x/mk/python/PyRowRef.cpp create mode 100755 8.x/mk/python/PyRowRef.h create mode 100755 8.x/mk/python/PyStorage.cpp create mode 100755 8.x/mk/python/PyStorage.h create mode 100755 8.x/mk/python/PyView.cpp create mode 100755 8.x/mk/python/PyView.h create mode 100644 8.x/mk/python/README-dmn create mode 100644 8.x/mk/python/metakit.py create mode 100755 8.x/mk/python/scxx/PWOBase.h create mode 100644 8.x/mk/python/scxx/PWOCallable.h create mode 100755 8.x/mk/python/scxx/PWOImp.cpp create mode 100755 8.x/mk/python/scxx/PWOMSequence.h create mode 100755 8.x/mk/python/scxx/PWOMapping.h create mode 100755 8.x/mk/python/scxx/PWONumber.h create mode 100755 8.x/mk/python/scxx/PWOSequence.h create mode 100755 8.x/mk/python/scxx/README.txt create mode 100755 8.x/mk/python/setup.py create mode 100644 8.x/mk/python/test/.cvsignore create mode 100644 8.x/mk/python/test/all.py create mode 100644 8.x/mk/python/test/mktestsupport.py create mode 100644 8.x/mk/python/test/test_hash.py create mode 100644 8.x/mk/python/test/test_inttypes.py create mode 100644 8.x/mk/python/test/test_stringtype.py create mode 100644 8.x/mk/python/test/test_unittest.py create mode 100755 8.x/mk/src/borc.h create mode 100755 8.x/mk/src/column.cpp create mode 100755 8.x/mk/src/column.h create mode 100755 8.x/mk/src/column.inl create mode 100755 8.x/mk/src/custom.cpp create mode 100755 8.x/mk/src/custom.h create mode 100755 8.x/mk/src/derived.cpp create mode 100755 8.x/mk/src/derived.h create mode 100644 8.x/mk/src/doxy.h create mode 100755 8.x/mk/src/field.cpp create mode 100755 8.x/mk/src/field.h create mode 100755 8.x/mk/src/field.inl create mode 100755 8.x/mk/src/fileio.cpp create mode 100755 8.x/mk/src/format.cpp create mode 100755 8.x/mk/src/format.h create mode 100755 8.x/mk/src/gnuc.h create mode 100755 8.x/mk/src/handler.cpp create mode 100755 8.x/mk/src/handler.h create mode 100755 8.x/mk/src/handler.inl create mode 100755 8.x/mk/src/header.h create mode 100755 8.x/mk/src/mfc.h create mode 100755 8.x/mk/src/msvc.h create mode 100755 8.x/mk/src/mwcw.h create mode 100755 8.x/mk/src/persist.cpp create mode 100755 8.x/mk/src/persist.h create mode 100755 8.x/mk/src/remap.cpp create mode 100644 8.x/mk/src/remap.h create mode 100755 8.x/mk/src/std.cpp create mode 100755 8.x/mk/src/std.h create mode 100755 8.x/mk/src/store.cpp create mode 100755 8.x/mk/src/store.h create mode 100755 8.x/mk/src/store.inl create mode 100755 8.x/mk/src/string.cpp create mode 100755 8.x/mk/src/table.cpp create mode 100755 8.x/mk/src/univ.cpp create mode 100755 8.x/mk/src/univ.h create mode 100755 8.x/mk/src/univ.inl create mode 100755 8.x/mk/src/view.cpp create mode 100755 8.x/mk/src/viewx.cpp create mode 100755 8.x/mk/src/win.h create mode 100755 8.x/mk/tcl/Makefile.in create mode 100755 8.x/mk/tcl/aclocal.m4 create mode 100755 8.x/mk/tcl/config.h.in create mode 100755 8.x/mk/tcl/configure create mode 100755 8.x/mk/tcl/configure.in create mode 100755 8.x/mk/tcl/mk4tcl.cpp create mode 100644 8.x/mk/tcl/mk4tcl.h create mode 100644 8.x/mk/tcl/mk4too.cpp create mode 100755 8.x/mk/tcl/mkshow.tcl create mode 100644 8.x/mk/tcl/pkgIndex.tcl.in create mode 100644 8.x/mk/tcl/stubtcl.h create mode 100644 8.x/mk/tcl/tclconfig/README.txt create mode 100755 8.x/mk/tcl/tclconfig/install-sh create mode 100644 8.x/mk/tcl/tclconfig/tcl.m4 create mode 100644 8.x/mk/tcl/tequila/README create mode 100755 8.x/mk/tcl/tequila/proxy.tcl create mode 100644 8.x/mk/tcl/tequila/tequical.tcl create mode 100644 8.x/mk/tcl/tequila/tequila.tcl create mode 100644 8.x/mk/tcl/tequila/tequilas.tcl create mode 100755 8.x/mk/tcl/tests/all.tcl create mode 100755 8.x/mk/tcl/tests/basic.test create mode 100755 8.x/mk/tcl/tests/commit.test create mode 100755 8.x/mk/tcl/tests/fixed.test create mode 100644 8.x/mk/tcl/tests/initests.tcl create mode 100755 8.x/mk/tcl/tests/limit.test create mode 100755 8.x/mk/tcl/tests/object.test create mode 100644 8.x/mk/tests/ok/b00.txt create mode 100644 8.x/mk/tests/ok/b01.txt create mode 100644 8.x/mk/tests/ok/b02.txt create mode 100644 8.x/mk/tests/ok/b03.txt create mode 100644 8.x/mk/tests/ok/b04.txt create mode 100644 8.x/mk/tests/ok/b05.txt create mode 100644 8.x/mk/tests/ok/b06.txt create mode 100644 8.x/mk/tests/ok/b07.txt create mode 100644 8.x/mk/tests/ok/b08.txt create mode 100644 8.x/mk/tests/ok/b09.txt create mode 100644 8.x/mk/tests/ok/b10.txt create mode 100644 8.x/mk/tests/ok/b11.txt create mode 100644 8.x/mk/tests/ok/b12.txt create mode 100644 8.x/mk/tests/ok/b13.txt create mode 100644 8.x/mk/tests/ok/b14.txt create mode 100644 8.x/mk/tests/ok/b15.txt create mode 100644 8.x/mk/tests/ok/b16.txt create mode 100644 8.x/mk/tests/ok/b17.txt create mode 100644 8.x/mk/tests/ok/b18.txt create mode 100644 8.x/mk/tests/ok/b19.txt create mode 100644 8.x/mk/tests/ok/b20.txt create mode 100644 8.x/mk/tests/ok/b21.txt create mode 100644 8.x/mk/tests/ok/b22.txt create mode 100755 8.x/mk/tests/ok/b23.txt create mode 100755 8.x/mk/tests/ok/b24.txt create mode 100755 8.x/mk/tests/ok/b25.txt create mode 100644 8.x/mk/tests/ok/b26.txt create mode 100644 8.x/mk/tests/ok/b27.txt create mode 100644 8.x/mk/tests/ok/c01.txt create mode 100644 8.x/mk/tests/ok/c02.txt create mode 100644 8.x/mk/tests/ok/c03.txt create mode 100644 8.x/mk/tests/ok/c04.txt create mode 100644 8.x/mk/tests/ok/c05.txt create mode 100644 8.x/mk/tests/ok/c06.txt create mode 100644 8.x/mk/tests/ok/c07.txt create mode 100644 8.x/mk/tests/ok/c08.txt create mode 100644 8.x/mk/tests/ok/c09.txt create mode 100644 8.x/mk/tests/ok/c10.txt create mode 100644 8.x/mk/tests/ok/c11.txt create mode 100644 8.x/mk/tests/ok/c12.txt create mode 100644 8.x/mk/tests/ok/c13.txt create mode 100644 8.x/mk/tests/ok/c14.txt create mode 100755 8.x/mk/tests/ok/c15.txt create mode 100644 8.x/mk/tests/ok/c16.txt create mode 100644 8.x/mk/tests/ok/c17.txt create mode 100755 8.x/mk/tests/ok/c18.txt create mode 100755 8.x/mk/tests/ok/c19.txt create mode 100644 8.x/mk/tests/ok/c20.txt create mode 100644 8.x/mk/tests/ok/c21.txt create mode 100644 8.x/mk/tests/ok/c22.txt create mode 100644 8.x/mk/tests/ok/d01.txt create mode 100644 8.x/mk/tests/ok/d01a.txt create mode 100644 8.x/mk/tests/ok/d01b.txt create mode 100644 8.x/mk/tests/ok/e01.txt create mode 100644 8.x/mk/tests/ok/e01a.txt create mode 100644 8.x/mk/tests/ok/e02.txt create mode 100644 8.x/mk/tests/ok/e02a.txt create mode 100644 8.x/mk/tests/ok/e03.txt create mode 100644 8.x/mk/tests/ok/e03a.txt create mode 100644 8.x/mk/tests/ok/e04.txt create mode 100644 8.x/mk/tests/ok/e04a.txt create mode 100644 8.x/mk/tests/ok/e05.txt create mode 100644 8.x/mk/tests/ok/e05a.txt create mode 100644 8.x/mk/tests/ok/e06.txt create mode 100644 8.x/mk/tests/ok/e06a.txt create mode 100644 8.x/mk/tests/ok/f01.txt create mode 100755 8.x/mk/tests/ok/f01a.txt create mode 100644 8.x/mk/tests/ok/f02.txt create mode 100755 8.x/mk/tests/ok/f02a.txt create mode 100644 8.x/mk/tests/ok/f03.txt create mode 100755 8.x/mk/tests/ok/f03a.txt create mode 100644 8.x/mk/tests/ok/f04.txt create mode 100755 8.x/mk/tests/ok/f04a.txt create mode 100644 8.x/mk/tests/ok/f05.txt create mode 100755 8.x/mk/tests/ok/f05a.txt create mode 100644 8.x/mk/tests/ok/f06.txt create mode 100644 8.x/mk/tests/ok/f07.txt create mode 100755 8.x/mk/tests/ok/f07a.txt create mode 100644 8.x/mk/tests/ok/f08.txt create mode 100755 8.x/mk/tests/ok/f08a.txt create mode 100644 8.x/mk/tests/ok/f09.txt create mode 100755 8.x/mk/tests/ok/f09a.txt create mode 100644 8.x/mk/tests/ok/f10.txt create mode 100755 8.x/mk/tests/ok/f10a.txt create mode 100755 8.x/mk/tests/ok/f11.txt create mode 100755 8.x/mk/tests/ok/f11a.txt create mode 100644 8.x/mk/tests/ok/l00.txt create mode 100755 8.x/mk/tests/ok/l00a.txt create mode 100644 8.x/mk/tests/ok/l01.txt create mode 100755 8.x/mk/tests/ok/l01a.txt create mode 100644 8.x/mk/tests/ok/l02.txt create mode 100755 8.x/mk/tests/ok/l02a.txt create mode 100644 8.x/mk/tests/ok/l03.txt create mode 100755 8.x/mk/tests/ok/l03a.txt create mode 100755 8.x/mk/tests/ok/l03b.txt create mode 100644 8.x/mk/tests/ok/l04.txt create mode 100755 8.x/mk/tests/ok/l04a.txt create mode 100644 8.x/mk/tests/ok/l05.txt create mode 100755 8.x/mk/tests/ok/l05a.txt create mode 100644 8.x/mk/tests/ok/l06.txt create mode 100755 8.x/mk/tests/ok/l06a.txt create mode 100755 8.x/mk/tests/ok/l07.txt create mode 100755 8.x/mk/tests/ok/l07a.txt create mode 100644 8.x/mk/tests/ok/m01.txt create mode 100644 8.x/mk/tests/ok/m02.txt create mode 100644 8.x/mk/tests/ok/m02a.txt create mode 100644 8.x/mk/tests/ok/m03.txt create mode 100644 8.x/mk/tests/ok/m03a.txt create mode 100644 8.x/mk/tests/ok/m04.txt create mode 100644 8.x/mk/tests/ok/m04a.txt create mode 100644 8.x/mk/tests/ok/m05.txt create mode 100644 8.x/mk/tests/ok/m05a.txt create mode 100644 8.x/mk/tests/ok/m06.txt create mode 100644 8.x/mk/tests/ok/m06a.txt create mode 100644 8.x/mk/tests/ok/m07.txt create mode 100644 8.x/mk/tests/ok/n01.txt create mode 100644 8.x/mk/tests/ok/n02.txt create mode 100644 8.x/mk/tests/ok/n03.txt create mode 100644 8.x/mk/tests/ok/n04.txt create mode 100644 8.x/mk/tests/ok/n05.txt create mode 100644 8.x/mk/tests/ok/n06.txt create mode 100644 8.x/mk/tests/ok/n07.txt create mode 100644 8.x/mk/tests/ok/n08.txt create mode 100644 8.x/mk/tests/ok/n09.txt create mode 100644 8.x/mk/tests/ok/n10.txt create mode 100644 8.x/mk/tests/ok/n11.txt create mode 100644 8.x/mk/tests/ok/n12.txt create mode 100755 8.x/mk/tests/ok/n13.txt create mode 100644 8.x/mk/tests/ok/n14.txt create mode 100644 8.x/mk/tests/ok/n14a.txt create mode 100644 8.x/mk/tests/ok/r00.txt create mode 100755 8.x/mk/tests/ok/r00a.txt create mode 100644 8.x/mk/tests/ok/r01.txt create mode 100755 8.x/mk/tests/ok/r01a.txt create mode 100644 8.x/mk/tests/ok/r02.txt create mode 100755 8.x/mk/tests/ok/r02a.txt create mode 100644 8.x/mk/tests/ok/r03.txt create mode 100755 8.x/mk/tests/ok/r03a.txt create mode 100644 8.x/mk/tests/ok/r04.txt create mode 100755 8.x/mk/tests/ok/r04a.txt create mode 100755 8.x/mk/tests/ok/reversed.txt create mode 100644 8.x/mk/tests/ok/s00.txt create mode 100755 8.x/mk/tests/ok/s00a.txt create mode 100644 8.x/mk/tests/ok/s01.txt create mode 100755 8.x/mk/tests/ok/s01a.txt create mode 100644 8.x/mk/tests/ok/s02.txt create mode 100755 8.x/mk/tests/ok/s02a.txt create mode 100644 8.x/mk/tests/ok/s03.txt create mode 100755 8.x/mk/tests/ok/s03a.txt create mode 100644 8.x/mk/tests/ok/s04.txt create mode 100755 8.x/mk/tests/ok/s04a.txt create mode 100644 8.x/mk/tests/ok/s05.txt create mode 100755 8.x/mk/tests/ok/s05a.txt create mode 100644 8.x/mk/tests/ok/s06.txt create mode 100755 8.x/mk/tests/ok/s06a.txt create mode 100644 8.x/mk/tests/ok/s07.txt create mode 100755 8.x/mk/tests/ok/s07a.txt create mode 100644 8.x/mk/tests/ok/s08.txt create mode 100755 8.x/mk/tests/ok/s08a.txt create mode 100644 8.x/mk/tests/ok/s09.txt create mode 100755 8.x/mk/tests/ok/s09a.txt create mode 100755 8.x/mk/tests/ok/s09b.txt create mode 100644 8.x/mk/tests/ok/s10.txt create mode 100755 8.x/mk/tests/ok/s10a.txt create mode 100755 8.x/mk/tests/ok/s10b.txt create mode 100755 8.x/mk/tests/ok/s10c.txt create mode 100644 8.x/mk/tests/ok/s11.txt create mode 100755 8.x/mk/tests/ok/s11a.txt create mode 100644 8.x/mk/tests/ok/s12.txt create mode 100755 8.x/mk/tests/ok/s12a.txt create mode 100644 8.x/mk/tests/ok/s13.txt create mode 100755 8.x/mk/tests/ok/s13a.txt create mode 100644 8.x/mk/tests/ok/s14.txt create mode 100755 8.x/mk/tests/ok/s14a.txt create mode 100644 8.x/mk/tests/ok/s15.txt create mode 100755 8.x/mk/tests/ok/s15a.txt create mode 100644 8.x/mk/tests/ok/s16.txt create mode 100755 8.x/mk/tests/ok/s16a.txt create mode 100644 8.x/mk/tests/ok/s17.txt create mode 100755 8.x/mk/tests/ok/s17a.txt create mode 100644 8.x/mk/tests/ok/s18.txt create mode 100755 8.x/mk/tests/ok/s18a.txt create mode 100644 8.x/mk/tests/ok/s19.txt create mode 100755 8.x/mk/tests/ok/s19a.txt create mode 100644 8.x/mk/tests/ok/s20.txt create mode 100755 8.x/mk/tests/ok/s20a.txt create mode 100644 8.x/mk/tests/ok/s21.txt create mode 100755 8.x/mk/tests/ok/s21a.txt create mode 100644 8.x/mk/tests/ok/s22.txt create mode 100755 8.x/mk/tests/ok/s22a.txt create mode 100644 8.x/mk/tests/ok/s23.txt create mode 100755 8.x/mk/tests/ok/s23a.txt create mode 100644 8.x/mk/tests/ok/s24.txt create mode 100755 8.x/mk/tests/ok/s24a.txt create mode 100644 8.x/mk/tests/ok/s25.txt create mode 100755 8.x/mk/tests/ok/s25a.txt create mode 100644 8.x/mk/tests/ok/s26.txt create mode 100755 8.x/mk/tests/ok/s26a.txt create mode 100644 8.x/mk/tests/ok/s27.txt create mode 100755 8.x/mk/tests/ok/s27a.txt create mode 100644 8.x/mk/tests/ok/s28.txt create mode 100755 8.x/mk/tests/ok/s28a.txt create mode 100644 8.x/mk/tests/ok/s29.txt create mode 100755 8.x/mk/tests/ok/s29a.txt create mode 100644 8.x/mk/tests/ok/s30.txt create mode 100755 8.x/mk/tests/ok/s30a.txt create mode 100755 8.x/mk/tests/ok/s31.txt create mode 100755 8.x/mk/tests/ok/s31a.txt create mode 100755 8.x/mk/tests/ok/s32.txt create mode 100755 8.x/mk/tests/ok/s32a.txt create mode 100755 8.x/mk/tests/ok/s33.txt create mode 100755 8.x/mk/tests/ok/s33a.txt create mode 100755 8.x/mk/tests/ok/s33b.txt create mode 100755 8.x/mk/tests/ok/s33c.txt create mode 100644 8.x/mk/tests/ok/s34.txt create mode 100644 8.x/mk/tests/ok/s34a.txt create mode 100644 8.x/mk/tests/ok/s35.txt create mode 100644 8.x/mk/tests/ok/s35a.txt create mode 100644 8.x/mk/tests/ok/s36.txt create mode 100644 8.x/mk/tests/ok/s36a.txt create mode 100644 8.x/mk/tests/ok/s36b.txt create mode 100644 8.x/mk/tests/ok/s37.txt create mode 100644 8.x/mk/tests/ok/s37a.txt create mode 100644 8.x/mk/tests/ok/s38.txt create mode 100644 8.x/mk/tests/ok/s38a.txt create mode 100644 8.x/mk/tests/ok/s39.txt create mode 100644 8.x/mk/tests/ok/s39a.txt create mode 100644 8.x/mk/tests/ok/s40.txt create mode 100644 8.x/mk/tests/ok/s40a.txt create mode 100644 8.x/mk/tests/ok/s41.txt create mode 100644 8.x/mk/tests/ok/s41a.txt create mode 100644 8.x/mk/tests/ok/s42.txt create mode 100644 8.x/mk/tests/ok/s43.txt create mode 100644 8.x/mk/tests/ok/s43a.txt create mode 100644 8.x/mk/tests/ok/s44.txt create mode 100644 8.x/mk/tests/ok/s44a.txt create mode 100644 8.x/mk/tests/ok/s45.txt create mode 100644 8.x/mk/tests/ok/s45a.txt create mode 100644 8.x/mk/tests/ok/s46.txt create mode 100644 8.x/mk/tests/ok/s46a.txt create mode 100644 8.x/mk/tests/ok/s47.txt create mode 100644 8.x/mk/tests/ok/s48.txt create mode 100644 8.x/mk/tests/ok/s48a.txt create mode 100644 8.x/mk/tests/ok/s48b.txt create mode 100644 8.x/mk/tests/ok/s49.txt create mode 100644 8.x/mk/tests/ok/s49a.txt create mode 100644 8.x/mk/tests/ok/s50.txt create mode 100644 8.x/mk/tests/ok/s50a.txt create mode 100755 8.x/mk/tests/regress.cpp create mode 100755 8.x/mk/tests/regress.h create mode 100644 8.x/mk/tests/tbasic1.cpp create mode 100644 8.x/mk/tests/tbasic2.cpp create mode 100755 8.x/mk/tests/tcusto1.cpp create mode 100755 8.x/mk/tests/tcusto2.cpp create mode 100644 8.x/mk/tests/tdiffer.cpp create mode 100644 8.x/mk/tests/textend.cpp create mode 100755 8.x/mk/tests/tformat.cpp create mode 100755 8.x/mk/tests/tlimits.cpp create mode 100644 8.x/mk/tests/tmapped.cpp create mode 100755 8.x/mk/tests/tnotify.cpp create mode 100755 8.x/mk/tests/tresize.cpp create mode 100755 8.x/mk/tests/tstore1.cpp create mode 100755 8.x/mk/tests/tstore2.cpp create mode 100755 8.x/mk/tests/tstore3.cpp create mode 100755 8.x/mk/tests/tstore4.cpp create mode 100644 8.x/mk/tests/tstore5.cpp create mode 100644 8.x/mk/unix/Doxyfile create mode 100644 8.x/mk/unix/Doxytail.html create mode 100755 8.x/mk/unix/Makefile.in create mode 100644 8.x/mk/unix/README create mode 100755 8.x/mk/unix/config.h.in create mode 100755 8.x/mk/unix/configure create mode 100755 8.x/mk/unix/configure.in create mode 100644 8.x/mk/unix/cpprt0_stubs.s create mode 100644 8.x/mk/unix/metakit.spec create mode 100644 8.x/mk/unix/reversed create mode 100755 8.x/mk/unix/scripts/config.guess create mode 100755 8.x/mk/unix/scripts/config.sub create mode 100755 8.x/mk/unix/scripts/install-sh create mode 100755 8.x/mk/win/config.h create mode 100755 8.x/mk/win/msvc60/mkbug.dsp create mode 100755 8.x/mk/win/msvc60/mkdemo.dsp create mode 100755 8.x/mk/win/msvc60/mkdist.dsp create mode 100755 8.x/mk/win/msvc60/mkdll.dsp create mode 100755 8.x/mk/win/msvc60/mkdump.dsp create mode 100755 8.x/mk/win/msvc60/mkhash.dsp create mode 100755 8.x/mk/win/msvc60/mklib.dsp create mode 100755 8.x/mk/win/msvc60/mkpython.dsp create mode 100755 8.x/mk/win/msvc60/mksrc.dsw create mode 100755 8.x/mk/win/msvc60/mktcl.dsp create mode 100755 8.x/mk/win/msvc60/mktest.dsp create mode 100644 8.x/mk/win/msvc60/reversed create mode 100755 8.x/mk/win/msvc70/mkbug.vcproj create mode 100755 8.x/mk/win/msvc70/mkdemo.vcproj create mode 100755 8.x/mk/win/msvc70/mkdist.vcproj create mode 100755 8.x/mk/win/msvc70/mkdll.vcproj create mode 100755 8.x/mk/win/msvc70/mkdump.vcproj create mode 100755 8.x/mk/win/msvc70/mkhash.vcproj create mode 100755 8.x/mk/win/msvc70/mklib.vcproj create mode 100755 8.x/mk/win/msvc70/mkpython.vcproj create mode 100755 8.x/mk/win/msvc70/mksrc.sln create mode 100755 8.x/mk/win/msvc70/mktcl.vcproj create mode 100755 8.x/mk/win/msvc70/mktest.vcproj create mode 100644 8.x/mk/win/msvc70/reversed create mode 100644 8.x/mk/win/msvc70/tests/!keepme.txt create mode 100644 8.x/tclvfs/ChangeLog create mode 100644 8.x/tclvfs/DESCRIPTION.txt create mode 100644 8.x/tclvfs/Makefile.in create mode 100644 8.x/tclvfs/README.cygwin create mode 100644 8.x/tclvfs/Readme.txt create mode 100644 8.x/tclvfs/aclocal.m4 create mode 100755 8.x/tclvfs/configure create mode 100644 8.x/tclvfs/configure.in create mode 100644 8.x/tclvfs/doc/vfs-filesystems.man create mode 100644 8.x/tclvfs/doc/vfs-fsapi.man create mode 100644 8.x/tclvfs/doc/vfs.man create mode 100644 8.x/tclvfs/doc/vfs.n create mode 100644 8.x/tclvfs/doc/vfslib.n create mode 100644 8.x/tclvfs/examples/simpleExamples.tcl create mode 100644 8.x/tclvfs/generic/vfs.c create mode 100644 8.x/tclvfs/http2.6/http.n create mode 100644 8.x/tclvfs/http2.6/http.tcl create mode 100644 8.x/tclvfs/http2.6/pkgIndex.tcl create mode 100644 8.x/tclvfs/library/ftpvfs.tcl create mode 100644 8.x/tclvfs/library/httpvfs.tcl create mode 100644 8.x/tclvfs/library/mk4vfs.tcl create mode 100644 8.x/tclvfs/library/starkit.tcl create mode 100644 8.x/tclvfs/library/tarvfs.tcl create mode 100644 8.x/tclvfs/library/tclprocvfs.tcl create mode 100644 8.x/tclvfs/library/template/chrootvfs.tcl create mode 100644 8.x/tclvfs/library/template/collatevfs.tcl create mode 100644 8.x/tclvfs/library/template/deltavfs.tcl create mode 100644 8.x/tclvfs/library/template/fishvfs.tcl create mode 100644 8.x/tclvfs/library/template/globfind.tcl create mode 100644 8.x/tclvfs/library/template/quotavfs.tcl create mode 100644 8.x/tclvfs/library/template/tclIndex create mode 100644 8.x/tclvfs/library/template/tdelta.tcl create mode 100644 8.x/tclvfs/library/template/templatevfs.tcl create mode 100644 8.x/tclvfs/library/template/versionvfs.tcl create mode 100644 8.x/tclvfs/library/testvfs.tcl create mode 100644 8.x/tclvfs/library/tkvfs.tcl create mode 100644 8.x/tclvfs/library/vfs.tcl.in create mode 100644 8.x/tclvfs/library/vfsUrl.tcl create mode 100644 8.x/tclvfs/library/vfsUtils.tcl create mode 100644 8.x/tclvfs/library/vfslib.tcl create mode 100644 8.x/tclvfs/library/webdavvfs.tcl create mode 100644 8.x/tclvfs/library/zipvfs.tcl create mode 100644 8.x/tclvfs/license.terms create mode 100644 8.x/tclvfs/make55.tcl create mode 100644 8.x/tclvfs/pkgIndex.tcl.in create mode 100644 8.x/tclvfs/tclconfig/README.txt create mode 100755 8.x/tclvfs/tclconfig/install-sh create mode 100644 8.x/tclvfs/tclconfig/tcl.m4 create mode 100644 8.x/tclvfs/tests/all.tcl create mode 100644 8.x/tclvfs/tests/vfs.test create mode 100644 8.x/tclvfs/tests/vfsArchive.test create mode 100644 8.x/tclvfs/tests/vfsFtp.test create mode 100644 8.x/tclvfs/tests/vfsTar.test create mode 100644 8.x/tclvfs/tests/vfsUrl.test create mode 100644 8.x/tclvfs/tests/vfsZip.test create mode 100644 8.x/tclvfs/win/makefile.vc create mode 100644 8.x/tclvfs/win/nmakehlp.c create mode 100644 8.x/tclvfs/win/rules.vc create mode 100644 8.x/tclvfs/win/tclvfs.rc create mode 100644 8.x/thread/.cvsignore create mode 100644 8.x/thread/ChangeLog create mode 100644 8.x/thread/Makefile.in create mode 100644 8.x/thread/README create mode 100644 8.x/thread/aclocal.m4 create mode 100644 8.x/thread/aolserver.m4 create mode 100755 8.x/thread/configure create mode 100644 8.x/thread/configure.in create mode 100644 8.x/thread/doc/format.tcl create mode 100644 8.x/thread/doc/html/thread.html create mode 100644 8.x/thread/doc/html/tpool.html create mode 100644 8.x/thread/doc/html/tsv.html create mode 100644 8.x/thread/doc/html/ttrace.html create mode 100644 8.x/thread/doc/man.macros create mode 100644 8.x/thread/doc/man/thread.n create mode 100644 8.x/thread/doc/man/tpool.n create mode 100644 8.x/thread/doc/man/tsv.n create mode 100644 8.x/thread/doc/man/ttrace.n create mode 100644 8.x/thread/doc/thread.man create mode 100644 8.x/thread/doc/tpool.man create mode 100644 8.x/thread/doc/tsv.man create mode 100644 8.x/thread/doc/ttrace.man create mode 100644 8.x/thread/generic/aolstub.cpp create mode 100644 8.x/thread/generic/psGdbm.c create mode 100644 8.x/thread/generic/psGdbm.h create mode 100644 8.x/thread/generic/tclThread.h create mode 100644 8.x/thread/generic/tclXkeylist.c create mode 100644 8.x/thread/generic/tclXkeylist.h create mode 100644 8.x/thread/generic/threadCmd.c create mode 100644 8.x/thread/generic/threadPoolCmd.c create mode 100644 8.x/thread/generic/threadSpCmd.c create mode 100644 8.x/thread/generic/threadSpCmd.h create mode 100644 8.x/thread/generic/threadSvCmd.c create mode 100644 8.x/thread/generic/threadSvCmd.h create mode 100644 8.x/thread/generic/threadSvKeylistCmd.c create mode 100644 8.x/thread/generic/threadSvKeylistCmd.h create mode 100644 8.x/thread/generic/threadSvListCmd.c create mode 100644 8.x/thread/generic/threadSvListCmd.h create mode 100644 8.x/thread/lib/ttrace.tcl create mode 100644 8.x/thread/license.terms create mode 100755 8.x/thread/pkgIndex.tcl.in create mode 100644 8.x/thread/tcl/README create mode 100644 8.x/thread/tcl/cmdsrv/cmdsrv.tcl create mode 100644 8.x/thread/tcl/phttpd/index.htm create mode 100644 8.x/thread/tcl/phttpd/phttpd.tcl create mode 100644 8.x/thread/tcl/phttpd/uhttpd.tcl create mode 100644 8.x/thread/tcl/tpool/tpool.tcl create mode 100644 8.x/thread/tclconfig/ChangeLog create mode 100644 8.x/thread/tclconfig/README.txt create mode 100755 8.x/thread/tclconfig/install-sh create mode 100644 8.x/thread/tclconfig/tcl.m4 create mode 100644 8.x/thread/tests/all.tcl create mode 100644 8.x/thread/tests/thread.test create mode 100644 8.x/thread/tests/tpool.test create mode 100644 8.x/thread/tests/tsv.test create mode 100644 8.x/thread/tests/ttrace.test create mode 100644 8.x/thread/unix/CONFIG create mode 100644 8.x/thread/unix/README create mode 100644 8.x/thread/unix/threadUnix.c create mode 100644 8.x/thread/win/CONFIG create mode 100644 8.x/thread/win/README.txt create mode 100644 8.x/thread/win/thread.rc create mode 100644 8.x/thread/win/threadWin.c create mode 100644 8.x/thread/win/vc/.cvsignore create mode 100644 8.x/thread/win/vc/README.txt create mode 100644 8.x/thread/win/vc/makefile.vc create mode 100644 8.x/thread/win/vc/nmakehlp.c create mode 100644 8.x/thread/win/vc/nmakehlp.exe create mode 100644 8.x/thread/win/vc/nmakehlp.obj create mode 100644 8.x/thread/win/vc/pkg.vc create mode 100644 8.x/thread/win/vc/rules.vc create mode 100644 8.x/thread/win/vc/thread_win.dsp create mode 100644 8.x/thread/win/vc/thread_win.dsw create mode 100644 8.x/vqtcl/ChangeLog create mode 100644 8.x/vqtcl/Makefile.in create mode 100644 8.x/vqtcl/README create mode 100644 8.x/vqtcl/aclocal.m4 create mode 100755 8.x/vqtcl/configure create mode 100644 8.x/vqtcl/configure.in create mode 100644 8.x/vqtcl/data/gtest.db create mode 100644 8.x/vqtcl/data/lkit-be.db create mode 100644 8.x/vqtcl/data/lkit-le.db create mode 100644 8.x/vqtcl/data/mkblk.db create mode 100644 8.x/vqtcl/doc/ratcl.html create mode 100644 8.x/vqtcl/doc/ratcl.man create mode 100644 8.x/vqtcl/doc/ratcl.n create mode 100644 8.x/vqtcl/doc/vlerq.html create mode 100644 8.x/vqtcl/doc/vlerq.man create mode 100644 8.x/vqtcl/doc/vlerq.n create mode 100644 8.x/vqtcl/generic/vlerq.c create mode 100644 8.x/vqtcl/library/m2mvfs.tcl create mode 100644 8.x/vqtcl/library/mkclvfs.tcl create mode 100644 8.x/vqtcl/library/mklite.tcl create mode 100644 8.x/vqtcl/library/ratcl.tcl create mode 100644 8.x/vqtcl/license.terms create mode 100644 8.x/vqtcl/pkgIndex.tcl.in create mode 100755 8.x/vqtcl/tclconfig/install-sh create mode 100644 8.x/vqtcl/tclconfig/tcl.m4 create mode 100755 8.x/vqtcl/tests/all.tcl create mode 100755 8.x/vqtcl/tests/basic.test create mode 100755 8.x/vqtcl/tests/bits.test create mode 100755 8.x/vqtcl/tests/blocked.test create mode 100755 8.x/vqtcl/tests/column.test create mode 100755 8.x/vqtcl/tests/commit.test create mode 100755 8.x/vqtcl/tests/emit.test create mode 100755 8.x/vqtcl/tests/error.test create mode 100755 8.x/vqtcl/tests/file.test create mode 100755 8.x/vqtcl/tests/get.test create mode 100755 8.x/vqtcl/tests/hash.test create mode 100755 8.x/vqtcl/tests/indirect.test create mode 100644 8.x/vqtcl/tests/initests.tcl create mode 100755 8.x/vqtcl/tests/kitten.test create mode 100755 8.x/vqtcl/tests/l.large.test create mode 100644 8.x/vqtcl/tests/l.leaks.test create mode 100755 8.x/vqtcl/tests/loop.test create mode 100755 8.x/vqtcl/tests/m2m.test create mode 100755 8.x/vqtcl/tests/mkcl.test create mode 100755 8.x/vqtcl/tests/mklite.test create mode 100755 8.x/vqtcl/tests/mutable.test create mode 100755 8.x/vqtcl/tests/ops.test create mode 100755 8.x/vqtcl/tests/ratcl.test create mode 100755 8.x/vqtcl/tests/ref.test create mode 100755 8.x/vqtcl/tests/sorted.test create mode 100755 8.x/vqtcl/tests/view.test create mode 100644 8.x/vqtcl/win/makefile.vc create mode 100644 8.x/vqtcl/win/nmakehlp.c create mode 100644 8.x/vqtcl/win/rules.vc create mode 100644 8.x/vqtcl/win/unistd.h create mode 100644 8.x/zlib/CMakeLists.txt create mode 100644 8.x/zlib/ChangeLog create mode 100644 8.x/zlib/FAQ create mode 100644 8.x/zlib/INDEX create mode 100644 8.x/zlib/Makefile create mode 100644 8.x/zlib/Makefile.in create mode 100644 8.x/zlib/README create mode 100644 8.x/zlib/adler32.c create mode 100644 8.x/zlib/amiga/Makefile.pup create mode 100644 8.x/zlib/amiga/Makefile.sas create mode 100644 8.x/zlib/compress.c create mode 100755 8.x/zlib/configure create mode 100644 8.x/zlib/contrib/README.contrib create mode 100644 8.x/zlib/contrib/ada/buffer_demo.adb create mode 100644 8.x/zlib/contrib/ada/mtest.adb create mode 100644 8.x/zlib/contrib/ada/read.adb create mode 100644 8.x/zlib/contrib/ada/readme.txt create mode 100644 8.x/zlib/contrib/ada/test.adb create mode 100644 8.x/zlib/contrib/ada/zlib-streams.adb create mode 100644 8.x/zlib/contrib/ada/zlib-streams.ads create mode 100644 8.x/zlib/contrib/ada/zlib-thin.adb create mode 100644 8.x/zlib/contrib/ada/zlib-thin.ads create mode 100644 8.x/zlib/contrib/ada/zlib.adb create mode 100644 8.x/zlib/contrib/ada/zlib.ads create mode 100644 8.x/zlib/contrib/ada/zlib.gpr create mode 100644 8.x/zlib/contrib/amd64/amd64-match.S create mode 100644 8.x/zlib/contrib/asm686/README.686 create mode 100644 8.x/zlib/contrib/asm686/match.S create mode 100644 8.x/zlib/contrib/blast/Makefile create mode 100644 8.x/zlib/contrib/blast/README create mode 100644 8.x/zlib/contrib/blast/blast.c create mode 100644 8.x/zlib/contrib/blast/blast.h create mode 100644 8.x/zlib/contrib/blast/test.pk create mode 100644 8.x/zlib/contrib/blast/test.txt create mode 100644 8.x/zlib/contrib/delphi/ZLib.pas create mode 100644 8.x/zlib/contrib/delphi/ZLibConst.pas create mode 100644 8.x/zlib/contrib/delphi/readme.txt create mode 100644 8.x/zlib/contrib/delphi/zlibd32.mak create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib.build create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib.chm create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib.sln create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/CodecBase.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/Deflater.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/DotZLib.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/GZipStream.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/Inflater.cs create mode 100644 8.x/zlib/contrib/dotzlib/DotZLib/UnitTests.cs create mode 100644 8.x/zlib/contrib/dotzlib/LICENSE_1_0.txt create mode 100644 8.x/zlib/contrib/dotzlib/readme.txt create mode 100644 8.x/zlib/contrib/gcc_gvmat64/gvmat64.S create mode 100644 8.x/zlib/contrib/infback9/README create mode 100644 8.x/zlib/contrib/infback9/infback9.c create mode 100644 8.x/zlib/contrib/infback9/infback9.h create mode 100644 8.x/zlib/contrib/infback9/inffix9.h create mode 100644 8.x/zlib/contrib/infback9/inflate9.h create mode 100644 8.x/zlib/contrib/infback9/inftree9.c create mode 100644 8.x/zlib/contrib/infback9/inftree9.h create mode 100644 8.x/zlib/contrib/inflate86/inffas86.c create mode 100644 8.x/zlib/contrib/inflate86/inffast.S create mode 100644 8.x/zlib/contrib/iostream/test.cpp create mode 100644 8.x/zlib/contrib/iostream/zfstream.cpp create mode 100644 8.x/zlib/contrib/iostream/zfstream.h create mode 100644 8.x/zlib/contrib/iostream2/zstream.h create mode 100644 8.x/zlib/contrib/iostream2/zstream_test.cpp create mode 100644 8.x/zlib/contrib/iostream3/README create mode 100644 8.x/zlib/contrib/iostream3/TODO create mode 100644 8.x/zlib/contrib/iostream3/test.cc create mode 100644 8.x/zlib/contrib/iostream3/zfstream.cc create mode 100644 8.x/zlib/contrib/iostream3/zfstream.h create mode 100644 8.x/zlib/contrib/masmx64/bld_ml64.bat create mode 100644 8.x/zlib/contrib/masmx64/gvmat64.asm create mode 100644 8.x/zlib/contrib/masmx64/inffas8664.c create mode 100644 8.x/zlib/contrib/masmx64/inffasx64.asm create mode 100644 8.x/zlib/contrib/masmx64/readme.txt create mode 100644 8.x/zlib/contrib/masmx86/bld_ml32.bat create mode 100644 8.x/zlib/contrib/masmx86/inffas32.asm create mode 100644 8.x/zlib/contrib/masmx86/match686.asm create mode 100644 8.x/zlib/contrib/masmx86/readme.txt create mode 100644 8.x/zlib/contrib/minizip/Makefile create mode 100644 8.x/zlib/contrib/minizip/MiniZip64_Changes.txt create mode 100644 8.x/zlib/contrib/minizip/MiniZip64_info.txt create mode 100644 8.x/zlib/contrib/minizip/crypt.h create mode 100644 8.x/zlib/contrib/minizip/ioapi.c create mode 100644 8.x/zlib/contrib/minizip/ioapi.h create mode 100644 8.x/zlib/contrib/minizip/iowin32.c create mode 100644 8.x/zlib/contrib/minizip/iowin32.h create mode 100644 8.x/zlib/contrib/minizip/make_vms.com create mode 100644 8.x/zlib/contrib/minizip/miniunz.c create mode 100644 8.x/zlib/contrib/minizip/minizip.c create mode 100644 8.x/zlib/contrib/minizip/mztools.c create mode 100644 8.x/zlib/contrib/minizip/mztools.h create mode 100644 8.x/zlib/contrib/minizip/unzip.c create mode 100644 8.x/zlib/contrib/minizip/unzip.h create mode 100644 8.x/zlib/contrib/minizip/zip.c create mode 100644 8.x/zlib/contrib/minizip/zip.h create mode 100644 8.x/zlib/contrib/pascal/example.pas create mode 100644 8.x/zlib/contrib/pascal/readme.txt create mode 100644 8.x/zlib/contrib/pascal/zlibd32.mak create mode 100644 8.x/zlib/contrib/pascal/zlibpas.pas create mode 100644 8.x/zlib/contrib/puff/Makefile create mode 100644 8.x/zlib/contrib/puff/README create mode 100644 8.x/zlib/contrib/puff/puff.c create mode 100644 8.x/zlib/contrib/puff/puff.h create mode 100644 8.x/zlib/contrib/puff/zeros.raw create mode 100644 8.x/zlib/contrib/testzlib/testzlib.c create mode 100644 8.x/zlib/contrib/testzlib/testzlib.txt create mode 100644 8.x/zlib/contrib/untgz/Makefile create mode 100644 8.x/zlib/contrib/untgz/Makefile.msc create mode 100644 8.x/zlib/contrib/untgz/untgz.c create mode 100644 8.x/zlib/contrib/vstudio/readme.txt create mode 100644 8.x/zlib/contrib/vstudio/vc10/miniunz.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/miniunz.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc10/minizip.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/minizip.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlib.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlib.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlib.rc create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibstat.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibvc.def create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibvc.sln create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibvc.vcxproj create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters create mode 100644 8.x/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.user create mode 100644 8.x/zlib/contrib/vstudio/vc9/miniunz.vcproj create mode 100644 8.x/zlib/contrib/vstudio/vc9/minizip.vcproj create mode 100644 8.x/zlib/contrib/vstudio/vc9/testzlib.vcproj create mode 100644 8.x/zlib/contrib/vstudio/vc9/testzlibdll.vcproj create mode 100644 8.x/zlib/contrib/vstudio/vc9/zlib.rc create mode 100644 8.x/zlib/contrib/vstudio/vc9/zlibstat.vcproj create mode 100644 8.x/zlib/contrib/vstudio/vc9/zlibvc.def create mode 100644 8.x/zlib/contrib/vstudio/vc9/zlibvc.sln create mode 100644 8.x/zlib/contrib/vstudio/vc9/zlibvc.vcproj create mode 100644 8.x/zlib/crc32.c create mode 100644 8.x/zlib/crc32.h create mode 100644 8.x/zlib/deflate.c create mode 100644 8.x/zlib/deflate.h create mode 100644 8.x/zlib/doc/algorithm.txt create mode 100644 8.x/zlib/doc/rfc1950.txt create mode 100644 8.x/zlib/doc/rfc1951.txt create mode 100644 8.x/zlib/doc/rfc1952.txt create mode 100644 8.x/zlib/doc/txtvsbin.txt create mode 100644 8.x/zlib/example.c create mode 100644 8.x/zlib/examples/README.examples create mode 100644 8.x/zlib/examples/enough.c create mode 100644 8.x/zlib/examples/fitblk.c create mode 100644 8.x/zlib/examples/gun.c create mode 100644 8.x/zlib/examples/gzappend.c create mode 100644 8.x/zlib/examples/gzjoin.c create mode 100644 8.x/zlib/examples/gzlog.c create mode 100644 8.x/zlib/examples/gzlog.h create mode 100644 8.x/zlib/examples/zlib_how.html create mode 100644 8.x/zlib/examples/zpipe.c create mode 100644 8.x/zlib/examples/zran.c create mode 100644 8.x/zlib/gzclose.c create mode 100644 8.x/zlib/gzguts.h create mode 100644 8.x/zlib/gzlib.c create mode 100644 8.x/zlib/gzread.c create mode 100644 8.x/zlib/gzwrite.c create mode 100644 8.x/zlib/infback.c create mode 100644 8.x/zlib/inffast.c create mode 100644 8.x/zlib/inffast.h create mode 100644 8.x/zlib/inffixed.h create mode 100644 8.x/zlib/inflate.c create mode 100644 8.x/zlib/inflate.h create mode 100644 8.x/zlib/inftrees.c create mode 100644 8.x/zlib/inftrees.h create mode 100644 8.x/zlib/make_vms.com create mode 100644 8.x/zlib/minigzip.c create mode 100644 8.x/zlib/msdos/Makefile.bor create mode 100644 8.x/zlib/msdos/Makefile.dj2 create mode 100644 8.x/zlib/msdos/Makefile.emx create mode 100644 8.x/zlib/msdos/Makefile.msc create mode 100644 8.x/zlib/msdos/Makefile.tc create mode 100644 8.x/zlib/nintendods/Makefile create mode 100644 8.x/zlib/nintendods/README create mode 100644 8.x/zlib/old/Makefile.riscos create mode 100644 8.x/zlib/old/README create mode 100644 8.x/zlib/old/as400/bndsrc create mode 100644 8.x/zlib/old/as400/compile.clp create mode 100644 8.x/zlib/old/as400/readme.txt create mode 100644 8.x/zlib/old/as400/zlib.inc create mode 100644 8.x/zlib/old/descrip.mms create mode 100644 8.x/zlib/old/os2/Makefile.os2 create mode 100644 8.x/zlib/old/os2/zlib.def create mode 100644 8.x/zlib/old/visual-basic.txt create mode 100644 8.x/zlib/old/visualc6/README.txt create mode 100644 8.x/zlib/old/visualc6/example.dsp create mode 100644 8.x/zlib/old/visualc6/minigzip.dsp create mode 100644 8.x/zlib/old/visualc6/zlib.dsp create mode 100644 8.x/zlib/old/visualc6/zlib.dsw create mode 100644 8.x/zlib/qnx/package.qpg create mode 100644 8.x/zlib/treebuild.xml create mode 100644 8.x/zlib/trees.c create mode 100644 8.x/zlib/trees.h create mode 100644 8.x/zlib/uncompr.c create mode 100644 8.x/zlib/watcom/watcom_f.mak create mode 100644 8.x/zlib/watcom/watcom_l.mak create mode 100644 8.x/zlib/win32/DLL_FAQ.txt create mode 100644 8.x/zlib/win32/Makefile.bor create mode 100644 8.x/zlib/win32/Makefile.emx create mode 100644 8.x/zlib/win32/Makefile.gcc create mode 100644 8.x/zlib/win32/Makefile.msc create mode 100644 8.x/zlib/win32/README-WIN32.txt create mode 100644 8.x/zlib/win32/VisualC.txt create mode 100644 8.x/zlib/win32/zlib.def create mode 100644 8.x/zlib/win32/zlib1.rc create mode 100644 8.x/zlib/zconf.h create mode 100644 8.x/zlib/zconf.h.cmakein create mode 100644 8.x/zlib/zconf.h.in create mode 100644 8.x/zlib/zlib.3 create mode 100644 8.x/zlib/zlib.3.pdf create mode 100644 8.x/zlib/zlib.h create mode 100644 8.x/zlib/zlib.map create mode 100644 8.x/zlib/zlib.pc.in create mode 100755 8.x/zlib/zlib2ansi create mode 100644 8.x/zlib/zutil.c create mode 100644 8.x/zlib/zutil.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee59f99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Ignore directories created by the tools +/sources +/downloads +/sources + +# Ignore the build directories but not the 8.x extensions directory +/8.*/ +!/8.x diff --git a/8.x/itcl/.cvsignore b/8.x/itcl/.cvsignore new file mode 100644 index 0000000..3dfe125 --- /dev/null +++ b/8.x/itcl/.cvsignore @@ -0,0 +1,3 @@ +Makefile +config.log +confdefs.h diff --git a/8.x/itcl/Makefile.in b/8.x/itcl/Makefile.in new file mode 100644 index 0000000..a00ebbc --- /dev/null +++ b/8.x/itcl/Makefile.in @@ -0,0 +1,412 @@ +# 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-2004 ActiveState Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: Makefile.in,v 1.30 2008/12/15 20:02:58 andreas_kupries Exp $ + +#======================================================================== +# 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 header files to be installed +# itk.h includes itclInt.h, which needs itclIntDecls.h, +# so we must install them. +#======================================================================== + +PKG_HEADERS = @PKG_HEADERS@ + +#======================================================================== +# Nothing of the variables below this line need to be changed. Please +# check the TARGETS section below to make sure the make targets are +# correct. +#======================================================================== + +#======================================================================== +# Change the name of the variable "exampleA_LIB_FILE" to match the one +# used in the configure script. This is the parameterized name of the +# library that we are building. +#======================================================================== + +PKG_LIB_FILE = @PKG_LIB_FILE@ +PKG_STUB_LIB_FILE = @PKG_STUB_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@ +datadir = @datadir@ +mandir = @mandir@ +includedir = @includedir@ + +DESTDIR = + +PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION) +pkgdatadir = $(datadir)/$(PKG_DIR) +pkglibdir = $(libdir)/$(PKG_DIR) +pkgincludedir = $(includedir)/$(PKG_DIR) + +top_builddir = . + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ + +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +CC = @CC@ +CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ +CFLAGS_WARNING = @CFLAGS_WARNING@ +CLEANFILES = @CLEANFILES@ +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_FLAGS = @SHLIB_LD_FLAGS@ +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@ +# This is necessary for packages that use private Tcl headers +TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ + +# 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) +TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` +PKG_ENV = ITCL_LIBRARY=`@CYGPATH@ $(srcdir)/library` \ + @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \ + PATH="$(EXTRA_PATH):$(PATH)" \ + TCLLIBPATH="$(top_builddir)" +TCLSH_PROG = $(TCLSH_ENV) @TCLSH_PROG@ +TCLSH = $(PKG_ENV) $(TCLSH_PROG) +SHARED_BUILD = @SHARED_BUILD@ + +INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ + +PKG_CFLAGS = @PKG_CFLAGS@ + +DEFS = @DEFS@ $(PKG_CFLAGS) \ + -DITCL_LIBRARY=\"$(pkglibdir)\" -DUSE_NON_CONST + +CONFIG_CLEAN_FILES = @CONFIG_CLEAN_FILES@ Makefile itclConfig.sh pkgIndex.tcl + +CPPFLAGS = @CPPFLAGS@ +LIBS = @PKG_LIBS@ @LIBS@ +AR = @AR@ +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + +#======================================================================== +# Start of user-definable TARGETS section +#======================================================================== + +#======================================================================== +# TEA TARGETS. Please note that the "libraries:" target refers to platform +# independent files, and the "binaries:" target inclues 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: + +doc: + +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. +#======================================================================== + +install-libraries: libraries + @mkdir -p $(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 + @mkdir -p $(DESTDIR)$(mandir)/mann + @echo "Installing man pages in $(DESTDIR)$(mandir)" + @cd $(srcdir)/doc; for i in *.n; do \ + echo "Installing $$i"; \ + rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \ + sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ + $$i > $(DESTDIR)$(mandir)/mann/$$i; \ + chmod 444 $(DESTDIR)$(mandir)/mann/$$i; \ + done + +test: binaries libraries + $(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` -load "package require Itcl" $(TESTFLAGS) + +shell: binaries libraries + @$(TCLSH) $(SCRIPT) + +gdb: + $(TCLSH_ENV) gdb $(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: +# +# exampleA.$(OBJEXT): $(srcdir)/generic/exampleA.c +# $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/exampleA.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)/unix:$(srcdir)/generic:$(srcdir)/win + +.c.$(OBJEXT): + $(COMPILE) -c `@CYGPATH@ $<` -o $@ + +#======================================================================== +# Distribution creation +# You may need to tweak this target to make it work correctly. +#======================================================================== + +TAR = tar +#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-clean: + rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.* + +dist: dist-clean doc + mkdir -p $(DIST_DIR) + cp -p $(srcdir)/license* $(srcdir)/aclocal.m4 $(srcdir)/configure \ + $(srcdir)/*.in $(DIST_DIR)/ + chmod 664 $(DIST_DIR)/Makefile.in $(DIST_DIR)/aclocal.m4 + chmod 775 $(DIST_DIR)/configure $(DIST_DIR)/configure.in + + mkdir $(DIST_DIR)/tclconfig + cp $(srcdir)/tclconfig/install-sh $(srcdir)/tclconfig/tcl.m4 \ + $(DIST_DIR)/tclconfig/ + chmod 664 $(DIST_DIR)/tclconfig/tcl.m4 + chmod +x $(DIST_DIR)/tclconfig/install-sh + + list='doc generic library tests win win/rc'; \ + for p in $$list; do \ + if test -d $(srcdir)/$$p ; then \ + mkdir $(DIST_DIR)/$$p; \ + for q in $(srcdir)/$$p/*; do \ + if test -f $$q ; then \ + cp -p $$q $(DIST_DIR)/$$p/; \ + fi; \ + done; \ + fi; \ + done + + list='CHANGES ChangeLog INCOMPATIBLE README TODO'; \ + for p in $$list; do \ + if test -f $(srcdir)/../$$p ; then \ + cp -p $(srcdir)/../$$p $(DIST_DIR)/; \ + 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.in +#======================================================================== + +clean: + -test -z "$(BINARIES)" || rm -f $(BINARIES) + -rm -f *.o core *.core + -rm -f *.$(OBJEXT) + -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. +# Additionally, the .dll files go into the bin directory, but the .lib +# files go into the lib directory. On Unix platforms, all 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 tclsh8.2 shell) +# +# You should not have to modify this target. +#======================================================================== + +install-lib-binaries: + @mkdir -p $(DESTDIR)$(pkglibdir) + @list='$(lib_BINARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \ + stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \ + if test "x$$stub" = "xstub"; then \ + echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \ + $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \ + else \ + echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \ + fi; \ + 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 + $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir) + $(INSTALL_DATA) itclConfig.sh $(DESTDIR)$(libdir) + +#======================================================================== +# Install binary executables (e.g. .exe files) +# +# You should not have to modify this target. +#======================================================================== + +install-bin-binaries: + @mkdir -p $(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 + +.SUFFIXES: .c .$(OBJEXT) + +#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 + +# 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/8.x/itcl/aclocal.m4 b/8.x/itcl/aclocal.m4 new file mode 100644 index 0000000..0f09fb8 --- /dev/null +++ b/8.x/itcl/aclocal.m4 @@ -0,0 +1 @@ +builtin(include,tclconfig/tcl.m4) diff --git a/8.x/itcl/configure b/8.x/itcl/configure new file mode 100755 index 0000000..317dfb8 --- /dev/null +++ b/8.x/itcl/configure @@ -0,0 +1,10503 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.59 for itcl 3.4. +# +# Copyright (C) 2003 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 Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# 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 + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + 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 + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # 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 sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# 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'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='itcl' +PACKAGE_TARNAME='itcl' +PACKAGE_VERSION='3.4' +PACKAGE_STRING='itcl 3.4' +PACKAGE_BUGREPORT='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS LN_S CONFIG_CLEAN_FILES TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS CLEANFILES TCL_TOP_DIR_NATIVE TCL_GENERIC_DIR_NATIVE TCL_UNIX_DIR_NATIVE TCL_WIN_DIR_NATIVE TCL_BMAP_DIR_NATIVE TCL_TOOL_DIR_NATIVE TCL_PLATFORM_DIR_NATIVE TCL_INCLUDES SHARED_BUILD AR CELIB_DIR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB itcl_STUB_LIB_FILE itcl_LIB_FILE TCLSH_PROG itcl_BUILD_LIB_SPEC itcl_LIB_SPEC itcl_BUILD_STUB_LIB_SPEC itcl_STUB_LIB_SPEC itcl_BUILD_STUB_LIB_PATH itcl_STUB_LIB_PATH itcl_SRC_DIR LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# 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. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_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 | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -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 ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -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 ;; + + -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + 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'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +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 + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + 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 + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + 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 + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# 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 itcl 3.4 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 \`..'] + +_ACEOF + + cat <<_ACEOF +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] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --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] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of itcl 3.4:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-shared build and link with shared libraries (default: on) + --enable-64bit enable 64bit support (default: off) + --enable-64bit-vis enable 64bit Sparc VIS support (default: off) + --enable-wince enable Win/CE support (where applicable) + --enable-load allow dynamic loading and "load" command (default: + on) + --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-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 + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style 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 + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +itcl configure 3.4 +generated by GNU Autoconf 2.59 + +Copyright (C) 2003 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 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by itcl $as_me 3.4, which was +generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +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` +hostinfo = `(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=. + echo "PATH: $as_dir" +done + +} >&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_sep= +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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$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 + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# 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 + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + 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. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +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 `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +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 + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`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. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#-------------------------------------------------------------------- +# 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 extensions pass this us the version of TEA they think they + # are compatible with. + TEA_VERSION="3.6" + + echo "$as_me:$LINENO: checking for correct TEA configuration" >&5 +echo $ECHO_N "checking for correct TEA configuration... $ECHO_C" >&6 + if test x"${PACKAGE_NAME}" = x ; then + { { echo "$as_me:$LINENO: error: +The PACKAGE_NAME variable must be defined by your TEA configure.in" >&5 +echo "$as_me: error: +The PACKAGE_NAME variable must be defined by your TEA configure.in" >&2;} + { (exit 1); exit 1; }; } + fi + if test x"3.6" = x ; then + { { echo "$as_me:$LINENO: error: +TEA version not specified." >&5 +echo "$as_me: error: +TEA version not specified." >&2;} + { (exit 1); exit 1; }; } + elif test "3.6" != "${TEA_VERSION}" ; then + echo "$as_me:$LINENO: result: warning: requested TEA version \"3.6\", have \"${TEA_VERSION}\"" >&5 +echo "${ECHO_T}warning: requested TEA version \"3.6\", have \"${TEA_VERSION}\"" >&6 + else + echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5 +echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6 + fi + case "`uname -s`" in + *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*) + # Extract the first word of "cygpath", so it can be a program name with args. +set dummy cygpath; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CYGPATH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CYGPATH="cygpath -w" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo" +fi +fi +CYGPATH=$ac_cv_prog_CYGPATH +if test -n "$CYGPATH"; then + echo "$as_me:$LINENO: result: $CYGPATH" >&5 +echo "${ECHO_T}$CYGPATH" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + EXEEXT=".exe" + TEA_PLATFORM="windows" + ;; + *) + CYGPATH=echo + EXEEXT="" + TEA_PLATFORM="unix" + ;; + 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 + + + + + # 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_... + + + + + + + + + +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 +fi + +CONFIG_CLEAN_FILES= +if test ! -d $srcdir/tclconfig ; then + if test -d $srcdir/../tclconfig ; then + $LN_S $srcdir/../tclconfig tclconfig + CONFIG_CLEAN_FILES=tclconfig + fi +fi + + +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 + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in tclconfig $srcdir/tclconfig" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in tclconfig $srcdir/tclconfig" >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + + +#-------------------------------------------------------------------- +# 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 or --without-tcl was given. +if test "${with_tcl+set}" = set; then + withval="$with_tcl" + with_tclconfig=${withval} +fi; + echo "$as_me:$LINENO: checking for Tcl configuration" >&5 +echo $ECHO_N "checking for Tcl configuration... $ECHO_C" >&6 + if test "${ac_cv_c_tclconfig+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 + { echo "$as_me:$LINENO: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 +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 + { { echo "$as_me:$LINENO: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&5 +echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&2;} + { (exit 1); exit 1; }; } + 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 -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` \ + ; do + if test -f "$i/Tcl.framework/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)` + break + fi + done + fi + + # 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/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 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 -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" + { echo "$as_me:$LINENO: WARNING: Can't find Tcl configuration definitions" >&5 +echo "$as_me: WARNING: Can't find Tcl configuration definitions" >&2;} + exit 0 + else + no_tcl= + TCL_BIN_DIR=${ac_cv_c_tclconfig} + echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 +echo "${ECHO_T}found ${TCL_BIN_DIR}/tclConfig.sh" >&6 + fi + fi + + + echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 +echo $ECHO_N "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... $ECHO_C" >&6 + + if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then + echo "$as_me:$LINENO: result: loading" >&5 +echo "${ECHO_T}loading" >&6 + . ${TCL_BIN_DIR}/tclConfig.sh + else + echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 +echo "${ECHO_T}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 arbitary 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"` -framework ${TCL_LIB_FILE}" + break + fi + done + fi + if test -f ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}; then + TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${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}\"" + + + + + + + + + + + + + + + + + + + + +#----------------------------------------------------------------------- +# 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 + { echo "$as_me:$LINENO: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 +echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} + prefix=${TCL_PREFIX} + else + { echo "$as_me:$LINENO: --prefix defaulting to /usr/local" >&5 +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 + { echo "$as_me:$LINENO: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 +echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} + exec_prefix=${TCL_EXEC_PREFIX} + else + { echo "$as_me:$LINENO: --exec-prefix defaulting to ${prefix}" >&5 +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, AC_PROG_INSTALL 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. + + # If the user did not set CFLAGS, set it now to keep + # the AC_PROG_CC macro from adding "-g -O2". + if test "${CFLAGS+set}" != "set" ; then + CFLAGS="" + 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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_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" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +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 + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + 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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out 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. +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; + * ) + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; 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 | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$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 +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* 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 -std1 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 -std1. */ +int osf4_cc_array ['\x00' == 0 ? 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 +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +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 +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f 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 +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +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 + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + + #-------------------------------------------------------------------- + # Checks to see if the make program sets the $MAKE variable. + #-------------------------------------------------------------------- + + echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="$(MAKE)"' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + + #-------------------------------------------------------------------- + # Determines the correct binary file extension (.o, .obj, .exe etc.) + #-------------------------------------------------------------------- + + + + + + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#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)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `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 + echo "$as_me:$LINENO: checking if the compiler understands -pipe" >&5 +echo $ECHO_N "checking if the compiler understands -pipe... $ECHO_C" >&6 +if test "${tcl_cv_cc_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_cc_pipe=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_cc_pipe=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_cc_pipe" >&5 +echo "${ECHO_T}$tcl_cv_cc_pipe" >&6 + if test $tcl_cv_cc_pipe = yes; then + CFLAGS="$CFLAGS -pipe" + fi + fi + + #-------------------------------------------------------------------- + # Common compiler flag setup + #-------------------------------------------------------------------- + + echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_bigendian=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +# It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; 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 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +int +main () +{ + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + exit (u.c[sizeof (long) - 1] == 1); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6 +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + + if test "${TEA_PLATFORM}" = "unix" ; then + + #-------------------------------------------------------------------- + # On a few very rare systems, all of the libm.a stuff is + # already in libc.a. Set compiler flags accordingly. + # Also, Linux requires the "ieee" library for math to work + # right (and it must appear before "-lm"). + #-------------------------------------------------------------------- + + echo "$as_me:$LINENO: checking for sin" >&5 +echo $ECHO_N "checking for sin... $ECHO_C" >&6 +if test "${ac_cv_func_sin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define sin to an innocuous variant, in case declares sin. + For example, HP-UX 11i declares gettimeofday. */ +#define sin innocuous_sin + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char sin (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef sin + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sin (); +/* 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_sin) || defined (__stub___sin) +choke me +#else +char (*f) () = sin; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != sin; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_sin=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_sin=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_sin" >&5 +echo "${ECHO_T}$ac_cv_func_sin" >&6 +if test $ac_cv_func_sin = yes; then + MATH_LIBS="" +else + MATH_LIBS="-lm" +fi + + echo "$as_me:$LINENO: checking for main in -lieee" >&5 +echo $ECHO_N "checking for main in -lieee... $ECHO_C" >&6 +if test "${ac_cv_lib_ieee_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lieee $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ieee_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ieee_main=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_ieee_main" >&5 +echo "${ECHO_T}$ac_cv_lib_ieee_main" >&6 +if test $ac_cv_lib_ieee_main = yes; then + MATH_LIBS="-lieee $MATH_LIBS" +fi + + + #-------------------------------------------------------------------- + # Interactive UNIX requires -linet instead of -lsocket, plus it + # needs net/errno.h to define the socket-related error codes. + #-------------------------------------------------------------------- + + echo "$as_me:$LINENO: checking for main in -linet" >&5 +echo $ECHO_N "checking for main in -linet... $ECHO_C" >&6 +if test "${ac_cv_lib_inet_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-linet $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_inet_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_inet_main=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_inet_main" >&5 +echo "${ECHO_T}$ac_cv_lib_inet_main" >&6 +if test $ac_cv_lib_inet_main = yes; then + LIBS="$LIBS -linet" +fi + + if test "${ac_cv_header_net_errno_h+set}" = set; then + echo "$as_me:$LINENO: checking for net/errno.h" >&5 +echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6 +if test "${ac_cv_header_net_errno_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5 +echo "${ECHO_T}$ac_cv_header_net_errno_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking net/errno.h usability" >&5 +echo $ECHO_N "checking net/errno.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking net/errno.h presence" >&5 +echo $ECHO_N "checking net/errno.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: net/errno.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: net/errno.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: net/errno.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: net/errno.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: net/errno.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: net/errno.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for net/errno.h" >&5 +echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6 +if test "${ac_cv_header_net_errno_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_net_errno_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5 +echo "${ECHO_T}$ac_cv_header_net_errno_h" >&6 + +fi +if test $ac_cv_header_net_errno_h = yes; then + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_NET_ERRNO_H 1 +_ACEOF + +fi + + + + #-------------------------------------------------------------------- + # Check for the existence of the -lsocket and -lnsl libraries. + # The order here is important, so that they end up in the right + # order in the command line generated by make. Here are some + # special considerations: + # 1. Use "connect" and "accept" to check for -lsocket, and + # "gethostbyname" to check for -lnsl. + # 2. Use each function name only once: can't redo a check because + # autoconf caches the results of the last check and won't redo it. + # 3. Use -lnsl and -lsocket only if they supply procedures that + # aren't already present in the normal libraries. This is because + # IRIX 5.2 has libraries, but they aren't needed and they're + # bogus: they goof up name resolution if used. + # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. + # To get around this problem, check for both libraries together + # if -lsocket doesn't work by itself. + #-------------------------------------------------------------------- + + tcl_checkBoth=0 + echo "$as_me:$LINENO: checking for connect" >&5 +echo $ECHO_N "checking for connect... $ECHO_C" >&6 +if test "${ac_cv_func_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect (); +/* 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_connect) || defined (__stub___connect) +choke me +#else +char (*f) () = connect; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != connect; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_connect=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +echo "${ECHO_T}$ac_cv_func_connect" >&6 +if test $ac_cv_func_connect = yes; then + tcl_checkSocket=0 +else + tcl_checkSocket=1 +fi + + if test "$tcl_checkSocket" = 1; then + echo "$as_me:$LINENO: checking for setsockopt" >&5 +echo $ECHO_N "checking for setsockopt... $ECHO_C" >&6 +if test "${ac_cv_func_setsockopt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define setsockopt to an innocuous variant, in case declares setsockopt. + For example, HP-UX 11i declares gettimeofday. */ +#define setsockopt innocuous_setsockopt + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char setsockopt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef setsockopt + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char setsockopt (); +/* 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_setsockopt) || defined (__stub___setsockopt) +choke me +#else +char (*f) () = setsockopt; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != setsockopt; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_setsockopt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_setsockopt=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5 +echo "${ECHO_T}$ac_cv_func_setsockopt" >&6 +if test $ac_cv_func_setsockopt = yes; then + : +else + echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5 +echo $ECHO_N "checking for setsockopt in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_setsockopt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char setsockopt (); +int +main () +{ +setsockopt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_setsockopt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_socket_setsockopt=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_setsockopt" >&6 +if test $ac_cv_lib_socket_setsockopt = yes; then + LIBS="$LIBS -lsocket" +else + tcl_checkBoth=1 +fi + +fi + + fi + if test "$tcl_checkBoth" = 1; then + tk_oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + echo "$as_me:$LINENO: checking for accept" >&5 +echo $ECHO_N "checking for accept... $ECHO_C" >&6 +if test "${ac_cv_func_accept+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define accept to an innocuous variant, in case declares accept. + For example, HP-UX 11i declares gettimeofday. */ +#define accept innocuous_accept + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char accept (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef accept + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char accept (); +/* 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_accept) || defined (__stub___accept) +choke me +#else +char (*f) () = accept; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != accept; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_accept=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_accept=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_accept" >&5 +echo "${ECHO_T}$ac_cv_func_accept" >&6 +if test $ac_cv_func_accept = yes; then + tcl_checkNsl=0 +else + LIBS=$tk_oldLibs +fi + + fi + echo "$as_me:$LINENO: checking for gethostbyname" >&5 +echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 +if test "${ac_cv_func_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +/* 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_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +char (*f) () = gethostbyname; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != gethostbyname; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_gethostbyname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 +if test $ac_cv_func_gethostbyname = yes; then + : +else + echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main () +{ +gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_nsl_gethostbyname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 +if test $ac_cv_lib_nsl_gethostbyname = yes; then + LIBS="$LIBS -lnsl" +fi + +fi + + + # Don't perform the eval of the libraries here because DL_LIBS + # won't be set until we call TEA_CONFIG_CFLAGS + + TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' + + + + + echo "$as_me:$LINENO: checking dirent.h" >&5 +echo $ECHO_N "checking dirent.h... $ECHO_C" >&6 +if test "${tcl_cv_dirent_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ + +#ifndef _POSIX_SOURCE +# ifdef __Lynx__ + /* + * Generate compilation error to make the test fail: Lynx headers + * are only valid if really in the POSIX environment. + */ + + missing_procedure(); +# endif +#endif +DIR *d; +struct dirent *entryPtr; +char *p; +d = opendir("foobar"); +entryPtr = readdir(d); +p = entryPtr->d_name; +closedir(d); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_dirent_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_dirent_h=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5 +echo "${ECHO_T}$tcl_cv_dirent_h" >&6 + + if test $tcl_cv_dirent_h = no; then + +cat >>confdefs.h <<\_ACEOF +#define NO_DIRENT_H 1 +_ACEOF + + fi + + if test "${ac_cv_header_errno_h+set}" = set; then + echo "$as_me:$LINENO: checking for errno.h" >&5 +echo $ECHO_N "checking for errno.h... $ECHO_C" >&6 +if test "${ac_cv_header_errno_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 +echo "${ECHO_T}$ac_cv_header_errno_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking errno.h usability" >&5 +echo $ECHO_N "checking errno.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking errno.h presence" >&5 +echo $ECHO_N "checking errno.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: errno.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: errno.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: errno.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: errno.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: errno.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for errno.h" >&5 +echo $ECHO_N "checking for errno.h... $ECHO_C" >&6 +if test "${ac_cv_header_errno_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_errno_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 +echo "${ECHO_T}$ac_cv_header_errno_h" >&6 + +fi +if test $ac_cv_header_errno_h = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define NO_ERRNO_H 1 +_ACEOF + +fi + + + if test "${ac_cv_header_float_h+set}" = set; then + echo "$as_me:$LINENO: checking for float.h" >&5 +echo $ECHO_N "checking for float.h... $ECHO_C" >&6 +if test "${ac_cv_header_float_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5 +echo "${ECHO_T}$ac_cv_header_float_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking float.h usability" >&5 +echo $ECHO_N "checking float.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking float.h presence" >&5 +echo $ECHO_N "checking float.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: float.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: float.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: float.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: float.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: float.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: float.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for float.h" >&5 +echo $ECHO_N "checking for float.h... $ECHO_C" >&6 +if test "${ac_cv_header_float_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_float_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5 +echo "${ECHO_T}$ac_cv_header_float_h" >&6 + +fi +if test $ac_cv_header_float_h = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define NO_FLOAT_H 1 +_ACEOF + +fi + + + if test "${ac_cv_header_values_h+set}" = set; then + echo "$as_me:$LINENO: checking for values.h" >&5 +echo $ECHO_N "checking for values.h... $ECHO_C" >&6 +if test "${ac_cv_header_values_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5 +echo "${ECHO_T}$ac_cv_header_values_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking values.h usability" >&5 +echo $ECHO_N "checking values.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking values.h presence" >&5 +echo $ECHO_N "checking values.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: values.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: values.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: values.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: values.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: values.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: values.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for values.h" >&5 +echo $ECHO_N "checking for values.h... $ECHO_C" >&6 +if test "${ac_cv_header_values_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_values_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5 +echo "${ECHO_T}$ac_cv_header_values_h" >&6 + +fi +if test $ac_cv_header_values_h = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define NO_VALUES_H 1 +_ACEOF + +fi + + + if test "${ac_cv_header_limits_h+set}" = set; then + echo "$as_me:$LINENO: checking for limits.h" >&5 +echo $ECHO_N "checking for limits.h... $ECHO_C" >&6 +if test "${ac_cv_header_limits_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5 +echo "${ECHO_T}$ac_cv_header_limits_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking limits.h usability" >&5 +echo $ECHO_N "checking limits.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking limits.h presence" >&5 +echo $ECHO_N "checking limits.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: limits.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: limits.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: limits.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: limits.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: limits.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for limits.h" >&5 +echo $ECHO_N "checking for limits.h... $ECHO_C" >&6 +if test "${ac_cv_header_limits_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_limits_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5 +echo "${ECHO_T}$ac_cv_header_limits_h" >&6 + +fi +if test $ac_cv_header_limits_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIMITS_H 1 +_ACEOF + +else + +cat >>confdefs.h <<\_ACEOF +#define NO_LIMITS_H 1 +_ACEOF + +fi + + + if test "${ac_cv_header_stdlib_h+set}" = set; then + echo "$as_me:$LINENO: checking for stdlib.h" >&5 +echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6 +if test "${ac_cv_header_stdlib_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5 +echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking stdlib.h usability" >&5 +echo $ECHO_N "checking stdlib.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking stdlib.h presence" >&5 +echo $ECHO_N "checking stdlib.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: stdlib.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: stdlib.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: stdlib.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: stdlib.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: stdlib.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for stdlib.h" >&5 +echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6 +if test "${ac_cv_header_stdlib_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_stdlib_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5 +echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6 + +fi +if test $ac_cv_header_stdlib_h = yes; then + tcl_ok=1 +else + tcl_ok=0 +fi + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strtol" >/dev/null 2>&1; then + : +else + tcl_ok=0 +fi +rm -f conftest* + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strtoul" >/dev/null 2>&1; then + : +else + tcl_ok=0 +fi +rm -f conftest* + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strtod" >/dev/null 2>&1; then + : +else + tcl_ok=0 +fi +rm -f conftest* + + if test $tcl_ok = 0; then + +cat >>confdefs.h <<\_ACEOF +#define NO_STDLIB_H 1 +_ACEOF + + fi + if test "${ac_cv_header_string_h+set}" = set; then + echo "$as_me:$LINENO: checking for string.h" >&5 +echo $ECHO_N "checking for string.h... $ECHO_C" >&6 +if test "${ac_cv_header_string_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5 +echo "${ECHO_T}$ac_cv_header_string_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking string.h usability" >&5 +echo $ECHO_N "checking string.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking string.h presence" >&5 +echo $ECHO_N "checking string.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: string.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: string.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: string.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: string.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: string.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for string.h" >&5 +echo $ECHO_N "checking for string.h... $ECHO_C" >&6 +if test "${ac_cv_header_string_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_string_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5 +echo "${ECHO_T}$ac_cv_header_string_h" >&6 + +fi +if test $ac_cv_header_string_h = yes; then + tcl_ok=1 +else + tcl_ok=0 +fi + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strstr" >/dev/null 2>&1; then + : +else + tcl_ok=0 +fi +rm -f conftest* + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strerror" >/dev/null 2>&1; then + : +else + tcl_ok=0 +fi +rm -f conftest* + + + # See also memmove check below for a place where NO_STRING_H can be + # set and why. + + if test $tcl_ok = 0; then + +cat >>confdefs.h <<\_ACEOF +#define NO_STRING_H 1 +_ACEOF + + fi + + if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/wait.h" >&5 +echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/wait.h usability" >&5 +echo $ECHO_N "checking sys/wait.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/wait.h presence" >&5 +echo $ECHO_N "checking sys/wait.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/wait.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/wait.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/wait.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/wait.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/wait.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/wait.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/wait.h" >&5 +echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_wait_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 + +fi +if test $ac_cv_header_sys_wait_h = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define NO_SYS_WAIT_H 1 +_ACEOF + +fi + + + if test "${ac_cv_header_dlfcn_h+set}" = set; then + echo "$as_me:$LINENO: checking for dlfcn.h" >&5 +echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6 +if test "${ac_cv_header_dlfcn_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 +echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking dlfcn.h usability" >&5 +echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking dlfcn.h presence" >&5 +echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: dlfcn.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for dlfcn.h" >&5 +echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6 +if test "${ac_cv_header_dlfcn_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_dlfcn_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 +echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6 + +fi +if test $ac_cv_header_dlfcn_h = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define NO_DLFCN_H 1 +_ACEOF + +fi + + + + # OS/390 lacks sys/param.h (and doesn't need it, by chance). + +for ac_header in sys/param.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to the itcl lists. ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + # Let the user call this, because if it triggers, they will + # need a compat/strtod.c that is correct. Users can also + # use Tcl_GetDouble(FromObj) instead. + #TEA_BUGGY_STRTOD + 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="itclStubInit.c + itcl_bicmds.c + itcl_class.c + itcl_cmds.c + itcl_ensemble.c + itcl_linkage.c + itcl_methods.c + itcl_migrate.c + itcl_objects.c + itcl_parse.c + itcl_util.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 + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + ; then + { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 +echo "$as_me: error: could not find source file '$i'" >&2;} + { (exit 1); exit 1; }; } + 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/itcl.h + generic/itclDecls.h + generic/itclInt.h + generic/itclIntDecls.h" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + { { echo "$as_me:$LINENO: error: could not find header file '${srcdir}/$i'" >&5 +echo "$as_me: error: could not find header file '${srcdir}/$i'" >&2;} + { (exit 1); exit 1; }; } + fi + PKG_HEADERS="$PKG_HEADERS $i" + done + + + + vars="-I\"`${CYGPATH} ${srcdir}/generic`\"" + for i in $vars; do + PKG_INCLUDES="$PKG_INCLUDES $i" + done + + + + vars="" + 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 + + + + PKG_CFLAGS="$PKG_CFLAGS " + + + + vars="itclStubLib.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" \ + ; then + { { echo "$as_me:$LINENO: error: could not find stub source file '$i'" >&5 +echo "$as_me: error: could not find stub source file '$i'" >&2;} + { (exit 1); exit 1; }; } + 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/itcl.tcl" + for i in $vars; do + # check for existence, be strict because it is installed + if test ! -f "${srcdir}/$i" ; then + { { echo "$as_me:$LINENO: error: could not find tcl source file '${srcdir}/$i'" >&5 +echo "$as_me: error: could not find tcl source file '${srcdir}/$i'" >&2;} + { (exit 1); exit 1; }; } + fi + PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" + done + + + +#-------------------------------------------------------------------- +# __CHANGE__ +# A few miscellaneous platform-specific items: +# +# Define a special symbol for Windows (BUILD_itcl in this case) so +# that we create the export library with the dll. See sha1.h on how +# to use this. +# +# Windows creates a few extra files that need to be cleaned up. +# You can add more files to clean if your extension creates any extra +# files. +# +# Define any extra compiler flags in the PACKAGE_CFLAGS variable. +# These will be appended to the current set of compiler flags for +# your system. +#-------------------------------------------------------------------- + +if test "${TEA_PLATFORM}" = "windows" ; then + cat >>confdefs.h <<\_ACEOF +#define BUILD_itcl 1 +_ACEOF + + CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc*.pch" + + vars="dllEntryPoint.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 + if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ + -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ + ; then + { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 +echo "$as_me: error: could not find source file '$i'" >&2;} + { (exit 1); exit 1; }; } + 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 + + + +else + CLEANFILES= + #TEA_ADD_SOURCES([]) +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 done AFTER calling TEA_PATH_TCLCONFIG/TEA_LOAD_TCLCONFIG +# so that we can extract TCL_SRC_DIR from the config file (in the case +# of private headers +#-------------------------------------------------------------------- + +#TEA_PUBLIC_TCL_HEADERS + + echo "$as_me:$LINENO: checking for Tcl private include files" >&5 +echo $ECHO_N "checking for Tcl private include files... $ECHO_C" >&6 + + TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}` + TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\" + TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\" + TCL_UNIX_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\" + TCL_WIN_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\" + TCL_BMAP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/bitmaps\" + TCL_TOOL_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/tools\" + TCL_COMPAT_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/compat\" + + if test "${TEA_PLATFORM}" = "windows"; then + TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE} + else + TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE} + fi + # 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 + else + if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then + { { echo "$as_me:$LINENO: error: Cannot find private header tclInt.h in ${TCL_SRC_DIR}" >&5 +echo "$as_me: error: Cannot find private header tclInt.h in ${TCL_SRC_DIR}" >&2;} + { (exit 1); exit 1; }; } + fi + fi + + + + + + + + + + + + echo "$as_me:$LINENO: result: Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" >&5 +echo "${ECHO_T}Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" >&6 + + +#-------------------------------------------------------------------- +# We need to enable the threading macros found in tcl.h and tclInt.h. +# The use of the threading features is determined by the core the +# extension is loaded into, but we need to compile with these macros +# turned on. +#-------------------------------------------------------------------- + +cat >>confdefs.h <<\_ACEOF +#define TCL_THREADS 1 +_ACEOF + + +#-------------------------------------------------------------------- +# 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. +#-------------------------------------------------------------------- + + + echo "$as_me:$LINENO: checking how to build libraries" >&5 +echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6 + # Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + tcl_ok=$enableval +else + tcl_ok=yes +fi; + + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + tcl_ok=$enableval + else + tcl_ok=yes + fi + + if test "$tcl_ok" = "yes" ; then + echo "$as_me:$LINENO: result: shared" >&5 +echo "${ECHO_T}shared" >&6 + SHARED_BUILD=1 + else + echo "$as_me:$LINENO: result: static" >&5 +echo "${ECHO_T}static" >&6 + SHARED_BUILD=0 + +cat >>confdefs.h <<\_ACEOF +#define STATIC_BUILD 1 +_ACEOF + + 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. +#-------------------------------------------------------------------- + + + + + # Step 0.a: Enable 64 bit support? + + echo "$as_me:$LINENO: checking if 64bit support is requested" >&5 +echo $ECHO_N "checking if 64bit support is requested... $ECHO_C" >&6 + # Check whether --enable-64bit or --disable-64bit was given. +if test "${enable_64bit+set}" = set; then + enableval="$enable_64bit" + do64bit=$enableval +else + do64bit=no +fi; + echo "$as_me:$LINENO: result: $do64bit" >&5 +echo "${ECHO_T}$do64bit" >&6 + + # Step 0.b: Enable Solaris 64 bit VIS support? + + echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5 +echo $ECHO_N "checking if 64bit Sparc VIS support is requested... $ECHO_C" >&6 + # Check whether --enable-64bit-vis or --disable-64bit-vis was given. +if test "${enable_64bit_vis+set}" = set; then + enableval="$enable_64bit_vis" + do64bitVIS=$enableval +else + do64bitVIS=no +fi; + echo "$as_me:$LINENO: result: $do64bitVIS" >&5 +echo "${ECHO_T}$do64bitVIS" >&6 + + if test "$do64bitVIS" = "yes"; then + # Force 64bit on with VIS + do64bit=yes + fi + + # Step 0.c: Cross-compiling options for Windows/CE builds? + + if test "${TEA_PLATFORM}" = "windows" ; then + echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5 +echo $ECHO_N "checking if Windows/CE build is requested... $ECHO_C" >&6 + # Check whether --enable-wince or --disable-wince was given. +if test "${enable_wince+set}" = set; then + enableval="$enable_wince" + doWince=$enableval +else + doWince=no +fi; + echo "$as_me:$LINENO: result: $doWince" >&5 +echo "${ECHO_T}$doWince" >&6 + fi + + # Step 1: set the variable "system" to hold the name and version number + # for the system. + + + echo "$as_me:$LINENO: checking system version" >&5 +echo $ECHO_N "checking system version... $ECHO_C" >&6 +if test "${tcl_cv_sys_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test "${TEA_PLATFORM}" = "windows" ; then + tcl_cv_sys_version=windows + elif test -f /usr/lib/NextStep/software_version; then + tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` + else + tcl_cv_sys_version=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + { echo "$as_me:$LINENO: WARNING: can't find uname command" >&5 +echo "$as_me: WARNING: can't find uname command" >&2;} + tcl_cv_sys_version=unknown + else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + tcl_cv_sys_version=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi + fi + fi + +fi +echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5 +echo "${ECHO_T}$tcl_cv_sys_version" >&6 + system=$tcl_cv_sys_version + + + # Step 2: check for existence of -ldl library. This is needed because + # Linux can use either -ldl or -ldld for dynamic loading. + + echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dl_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 +if test $ac_cv_lib_dl_dlopen = yes; then + have_dl=yes +else + have_dl=no +fi + + + # Require ranlib early so we can override it in special cases below. + + + + # Step 3: 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. + + do64bit_ok=no + LDFLAGS_ORIG="$LDFLAGS" + # 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="" + TCL_EXPORT_FILE_SUFFIX="" + UNSHARED_LIB_SUFFIX="" + TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' + ECHO_VERSION='`echo ${PACKAGE_VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g + CFLAGS_OPTIMIZE=-O + if test "$GCC" = "yes" ; then + CFLAGS_OPTIMIZE=-O2 + CFLAGS_WARNING="-Wall -Wno-implicit-int" + else + CFLAGS_WARNING="" + fi + TCL_NEEDS_EXP_FILE=0 + TCL_BUILD_EXP_FILE="" + TCL_EXP_FILE="" + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + STLIB_LD='${AR} cr' + LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" + case $system in + 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 ! -d "${PATH64}" ; then + { echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 +echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} + { echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5 +echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} + do64bit="no" + else + echo "$as_me:$LINENO: result: Using 64-bit $MACHINE mode" >&5 +echo "${ECHO_T} Using 64-bit $MACHINE mode" >&6 + do64bit_ok="yes" + fi + fi + + if test "$doWince" != "no" ; then + if test "$do64bit" != "no" ; then + { { echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5 +echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;} + { (exit 1); exit 1; }; } + fi + if test "$GCC" = "yes" ; then + { { echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5 +echo "$as_me: error: Windows/CE and GCC builds incompatible" >&2;} + { (exit 1); exit 1; }; } + 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 or --without-celib was given. +if test "${with_celib+set}" = set; then + withval="$with_celib" + with_celibconfig=${withval} +fi; + echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5 +echo $ECHO_N "checking for Windows/CE celib directory... $ECHO_C" >&6 + if test "${ac_cv_c_celibconfig+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 + { { echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5 +echo "$as_me: error: ${with_celibconfig} directory doesn't contain inc directory" >&2;} + { (exit 1); exit 1; }; } + 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 + { { echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5 +echo "$as_me: error: Cannot find celib support library directory" >&2;} + { (exit 1); exit 1; }; } + else + no_celib= + CELIB_DIR=${ac_cv_c_celibconfig} + CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` + echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5 +echo "${ECHO_T}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 + { { echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5 +echo "$as_me: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&2;} + { (exit 1); exit 1; }; } + 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 + + 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="-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="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" + LINKBIN="\"${CEBINROOT}/link.exe\"" + + else + RC="rc" + 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 + RC="windres" + 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}" + 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 + # This essentially turns it all on. + LDFLAGS_DEBUG="-debug:full -debugtype:both -warn:2" + 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_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".dll" + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' + + TCL_LIB_VERSIONS_OK=nodots + # Bogus to avoid getting this turned off + DL_OBJS="tclLoadNone.obj" + ;; + 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) + # ok ... + ;; + *) + CC=${CC}_r + ;; + esac + echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5 +echo "${ECHO_T}Using $CC for compiling with threads" >&6 + fi + LIBS="$LIBS -lc" + SHLIB_CFLAGS="" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + DL_OBJS="tclLoadDl.o" + LD_LIBRARY_PATH_VAR="LIBPATH" + + # Check to enable 64-bit flags for compiler/linker on AIX 4+ + if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then + if test "$GCC" = "yes" ; then + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 +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" + # AIX-5 has dl* in libc.so + DL_LIBS="" + 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="gcc -shared" + else + SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" + fi + SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + TCL_NEEDS_EXP_FILE=1 + TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp' + fi + + # AIX v<=4.1 has some different flags than 4.2+ + if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then + case $LIBOBJS in + "tclLoadAix.$ac_objext" | \ + *" tclLoadAix.$ac_objext" | \ + "tclLoadAix.$ac_objext "* | \ + *" tclLoadAix.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext" ;; +esac + + DL_LIBS="-lld" + fi + + # On AIX <=v4 systems, libbsd.a has to be linked in to support + # non-blocking file IO. This library has to be linked in after + # the MATH_LIBS or it breaks the pow() function. The way to + # insure proper sequencing, is to add it to the tail of MATH_LIBS. + # This library also supplies gettimeofday. + # + # AIX does not have a timezone field in struct tm. When the AIX + # bsd library is used, the timezone global and the gettimeofday + # methods are to be avoided for timezone deduction instead, we + # deduce the timezone by comparing the localtime result on a + # known GMT value. + + echo "$as_me:$LINENO: checking for gettimeofday in -lbsd" >&5 +echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6 +if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gettimeofday (); +int +main () +{ +gettimeofday (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bsd_gettimeofday=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_bsd_gettimeofday=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gettimeofday" >&5 +echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6 +if test $ac_cv_lib_bsd_gettimeofday = yes; then + libbsd=yes +else + libbsd=no +fi + + if test $libbsd = yes; then + MATH_LIBS="$MATH_LIBS -lbsd" + +cat >>confdefs.h <<\_ACEOF +#define USE_DELTA_FOR_TZ 1 +_ACEOF + + fi + ;; + BeOS*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="${CC} -nostart" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + + #----------------------------------------------------------- + # 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. + #----------------------------------------------------------- + echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5 +echo $ECHO_N "checking for inet_ntoa in -lbind... $ECHO_C" >&6 +if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbind $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char inet_ntoa (); +int +main () +{ +inet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bind_inet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_bind_inet_ntoa=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_bind_inet_ntoa" >&6 +if test $ac_cv_lib_bind_inet_ntoa = yes; then + LIBS="$LIBS -lbind -lsocket" +fi + + ;; + BSD/OS-2.1*|BSD/OS-3*) + SHLIB_CFLAGS="" + SHLIB_LD="shlicc -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + BSD/OS-4.*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + SHLIB_LD="cc -shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + dgux*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + +cat >>confdefs.h <<\_ACEOF +#define _XOPEN_SOURCE_EXTENDED 1 +_ACEOF + + # 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" + else + SHLIB_SUFFIX=".sl" + fi + echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main () +{ +shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dld_shl_load=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 +if test $ac_cv_lib_dld_shl_load = yes; then + tcl_ok=yes +else + tcl_ok=no +fi + + if test "$tcl_ok" = yes; then + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadShl.o" + DL_LIBS="-ldld" + 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="gcc -shared" + SHLIB_LD_LIBS='${LIBS}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + fi + + # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc + #CFLAGS="$CFLAGS +DAportable" + + # Check to enable 64-bit flags for compiler/linker + if test "$do64bit" = "yes" ; then + if test "$GCC" = "yes" ; then + hpux_arch=`${CC} -dumpmachine` + case $hpux_arch in + hppa64*) + # 64-bit gcc in use. Fix flags for GNU ld. + do64bit_ok=yes + SHLIB_LD="${CC} -shared" + SHLIB_LD_LIBS='${LIBS}' + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + ;; + *) + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 +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 + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + SHLIB_SUFFIX=".sl" + echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main () +{ +shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dld_shl_load=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 +if test $ac_cv_lib_dld_shl_load = yes; then + tcl_ok=yes +else + tcl_ok=no +fi + + if test "$tcl_ok" = yes; then + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + SHLIB_LD_LIBS="" + DL_OBJS="tclLoadShl.o" + DL_LIBS="-ldld" + 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 + ;; + IRIX-5.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + ;; + IRIX-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + 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_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + + # Check to enable 64-bit flags for compiler/linker + + if test "$do64bit" = "yes" ; then + if test "$GCC" = "yes" ; then + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5 +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*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings + # when you inline the string and math operations. Turn this off to + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here: + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + if test "`uname -m`" = "alpha" ; then + CFLAGS="$CFLAGS -mieee" + fi + if test $do64bit = yes; then + echo "$as_me:$LINENO: checking if compiler accepts -m64 flag" >&5 +echo $ECHO_N "checking if compiler accepts -m64 flag... $ECHO_C" >&6 +if test "${tcl_cv_cc_m64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_cc_m64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_cc_m64=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_cc_m64" >&5 +echo "${ECHO_T}$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 + + ;; + GNU*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + SHLIB_LD="${CC} -shared" + DL_OBJS="" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + if test "`uname -m`" = "alpha" ; then + CFLAGS="$CFLAGS -mieee" + fi + ;; + Lynx*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + CFLAGS_OPTIMIZE=-02 + SHLIB_LD="${CC} -shared " + DL_OBJS="tclLoadDl.o" + DL_LIBS="-mshared -ldl" + LD_FLAGS="-Wl,--export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; + MP-RAS-02*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + MP-RAS-*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,-Bexport" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + NetBSD-*|FreeBSD-[1-2].*) + # NetBSD/SPARC needs -fPIC, -fpic will not do. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + echo "$as_me:$LINENO: checking for ELF" >&5 +echo $ECHO_N "checking for ELF... $ECHO_C" >&6 +if test "${tcl_cv_ld_elf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef __ELF__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then + tcl_cv_ld_elf=yes +else + tcl_cv_ld_elf=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5 +echo "${ECHO_T}$tcl_cv_ld_elf" >&6 + if test $tcl_cv_ld_elf = yes; then + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' + else + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' + fi + + # Ancient FreeBSD doesn't handle version numbers with dots. + + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + OpenBSD-*) + # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. + case `machine` in + sparc|sparc64) + SHLIB_CFLAGS="-fPIC";; + *) + SHLIB_CFLAGS="-fpic";; + esac + SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' + echo "$as_me:$LINENO: checking for ELF" >&5 +echo $ECHO_N "checking for ELF... $ECHO_C" >&6 +if test "${tcl_cv_ld_elf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef __ELF__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then + tcl_cv_ld_elf=yes +else + tcl_cv_ld_elf=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5 +echo "${ECHO_T}$tcl_cv_ld_elf" >&6 + if test $tcl_cv_ld_elf = yes; then + LDFLAGS=-Wl,-export-dynamic + else + LDFLAGS="" + fi + + # OpenBSD doesn't do version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + FreeBSD-*) + # FreeBSD 3.* and greater have ELF. + SHLIB_CFLAGS="-fPIC" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS -export-dynamic" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + 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 + case $system in + FreeBSD-3.*) + # FreeBSD-3 doesn't handle version numbers with dots. + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' + 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) + echo "$as_me:$LINENO: checking if compiler accepts -arch ppc64 flag" >&5 +echo $ECHO_N "checking if compiler accepts -arch ppc64 flag... $ECHO_C" >&6 +if test "${tcl_cv_cc_arch_ppc64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_cc_arch_ppc64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_cc_arch_ppc64=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_ppc64" >&5 +echo "${ECHO_T}$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) + echo "$as_me:$LINENO: checking if compiler accepts -arch x86_64 flag" >&5 +echo $ECHO_N "checking if compiler accepts -arch x86_64 flag... $ECHO_C" >&6 +if test "${tcl_cv_cc_arch_x86_64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_cflags=$CFLAGS + CFLAGS="$CFLAGS -arch x86_64" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_cc_arch_x86_64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_cc_arch_x86_64=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$hold_cflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_x86_64" >&5 +echo "${ECHO_T}$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;; + *) + { echo "$as_me:$LINENO: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 +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 + echo "$CFLAGS " | grep -E -q -- '-arch (ppc64|x86_64) ' && \ + echo "$CFLAGS " | grep -E -q -- '-arch (ppc|i386) ' && \ + fat_32_64=yes + fi + # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here: + SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' + echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5 +echo $ECHO_N "checking if ld accepts -single_module flag... $ECHO_C" >&6 +if test "${tcl_cv_ld_single_module+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_ld_single_module=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_ld_single_module=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_ld_single_module" >&5 +echo "${ECHO_T}$tcl_cv_ld_single_module" >&6 + if test $tcl_cv_ld_single_module = yes; then + SHLIB_LD="${SHLIB_LD} -Wl,-single_module" + fi + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".dylib" + DL_OBJS="tclLoadDyld.o" + DL_LIBS="" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ + "`echo "${CFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4 && \ + LDFLAGS="$LDFLAGS -prebind" + LDFLAGS="$LDFLAGS -headerpad_max_install_names" + echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5 +echo $ECHO_N "checking if ld accepts -search_paths_first flag... $ECHO_C" >&6 +if test "${tcl_cv_ld_search_paths_first+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_ld_search_paths_first=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_ld_search_paths_first=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_ld_search_paths_first" >&5 +echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6 + if test $tcl_cv_ld_search_paths_first = yes; then + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + fi + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" + + # TEA specific: for Tk extensions, remove 64-bit arch flags from + # CFLAGS for combined 32-bit and 64-bit fat builds as neither TkAqua + # nor TkX11 can be built for 64-bit at present. + test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" && \ + CFLAGS="`echo "$CFLAGS " | sed -e 's/-arch ppc64 / /g' -e 's/-arch x86_64 / /g'`" + ;; + NEXTSTEP-*) + SHLIB_CFLAGS="" + SHLIB_LD="cc -nostdlib -r" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadNext.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + OS/390-*) + CFLAGS_OPTIMIZE="" # Optimizer is buggy + +cat >>confdefs.h <<\_ACEOF +#define _OE_SOCKETS 1 +_ACEOF + + ;; + OSF1-1.0|OSF1-1.1|OSF1-1.2) + # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 + SHLIB_CFLAGS="" + # Hack: make package name same as library name + SHLIB_LD='ld -R -export :' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadOSF.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + OSF1-1.*) + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + SHLIB_CFLAGS="-fPIC" + if test "$SHARED_BUILD" = "1" ; then + SHLIB_LD="ld -shared" + else + SHLIB_LD="ld -non_shared" + fi + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + 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_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + 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" + DL_OBJS="tclLoadDl.o" + # dlopen is in -lc on QNX + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SCO_SV-3.2*) + # Note, dlopen is available only on SCO 3.2.5 and greater. However, + # this test works, since "uname -s" was non-standard in 3.2.4 and + # below. + 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" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SINIX*5.4*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + SunOS-4*) + SHLIB_CFLAGS="-PIC" + SHLIB_LD="ld" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + + # SunOS can't handle version numbers with dots in them in library + # specs, like -ltcl7.5, so use -ltcl75 instead. Also, it + # requires an extra version number at the end of .so file names. + # So, the library has to have a name like libtcl75.so.1.0 + + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + 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. + + +cat >>confdefs.h <<\_ACEOF +#define _REENTRANT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_PTHREAD_SEMANTICS 1 +_ACEOF + + + SHLIB_CFLAGS="-KPIC" + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + 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. + + +cat >>confdefs.h <<\_ACEOF +#define _REENTRANT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_PTHREAD_SEMANTICS 1 +_ACEOF + + + 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 "`gcc -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 +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 + elif test "$arch" = "amd64 i386" ; then + if test "$GCC" = "yes" ; then + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 +echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} + else + do64bit_ok=yes + CFLAGS="$CFLAGS -xarch=amd64" + LDFLAGS="$LDFLAGS -xarch=amd64" + fi + else + { echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5 +echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} + fi + fi + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + 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 + # 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" + fi + else + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + 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" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers + # that don't grok the -Bexport option. Test that it does. + echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5 +echo $ECHO_N "checking for ld accepts -Bexport flag... $ECHO_C" >&6 +if test "${tcl_cv_ld_Bexport+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + hold_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-Bexport" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_ld_Bexport=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_ld_Bexport=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$hold_ldflags +fi +echo "$as_me:$LINENO: result: $tcl_cv_ld_Bexport" >&5 +echo "${ECHO_T}$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 + { echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 +echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} + fi + + + + # Step 4: disable dynamic loading if requested via a command-line switch. + + # Check whether --enable-load or --disable-load was given. +if test "${enable_load+set}" = set; then + enableval="$enable_load" + tcl_ok=$enableval +else + tcl_ok=yes +fi; + if test "$tcl_ok" = "no"; then + DL_OBJS="" + fi + + if test "x$DL_OBJS" != "x" ; then + BUILD_DLTEST="\$(DLTEST_TARGETS)" + else + echo "Can't figure out how to do dynamic loading or shared libraries" + echo "on this system." + SHLIB_CFLAGS="" + SHLIB_LD="" + SHLIB_SUFFIX="" + DL_OBJS="tclLoadNone.o" + DL_LIBS="" + LDFLAGS="$LDFLAGS_ORIG" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + BUILD_DLTEST="" + fi + 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 "$DL_OBJS" != "tclLoadNone.o" ; then + if test "$GCC" = "yes" ; then + case $system in + AIX-*) + ;; + BSD/OS*) + ;; + IRIX*) + ;; + NetBSD-*|FreeBSD-*) + ;; + Darwin-*) + ;; + SCO_SV-3.2*) + ;; + windows) + ;; + *) + SHLIB_CFLAGS="-fPIC" + ;; + esac + fi + fi + + if test "$SHARED_LIB_SUFFIX" = "" ; then + SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' + fi + if test "$UNSHARED_LIB_SUFFIX" = "" ; then + UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' + fi + + + + + + + + + + + + + + + + # These must be called after we do the basic CFLAGS checks and + # verify any possible 64-bit or similar switches are necessary + + echo "$as_me:$LINENO: checking for required early compiler flags" >&5 +echo $ECHO_N "checking for required early compiler flags... $ECHO_C" >&6 + tcl_flags="" + + if test "${tcl_cv_flag__isoc99_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *)strtoll; char *q = (char *)strtoull; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__isoc99_source=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _ISOC99_SOURCE 1 +#include +int +main () +{ +char *p = (char *)strtoll; char *q = (char *)strtoull; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__isoc99_source=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_flag__isoc99_source=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then + +cat >>confdefs.h <<\_ACEOF +#define _ISOC99_SOURCE 1 +_ACEOF + + tcl_flags="$tcl_flags _ISOC99_SOURCE" + fi + + + if test "${tcl_cv_flag__largefile64_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +struct stat64 buf; int i = stat64("/", &buf); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__largefile64_source=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGEFILE64_SOURCE 1 +#include +int +main () +{ +struct stat64 buf; int i = stat64("/", &buf); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__largefile64_source=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_flag__largefile64_source=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then + +cat >>confdefs.h <<\_ACEOF +#define _LARGEFILE64_SOURCE 1 +_ACEOF + + tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" + fi + + + if test "${tcl_cv_flag__largefile_source64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *)open64; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__largefile_source64=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGEFILE_SOURCE64 1 +#include +int +main () +{ +char *p = (char *)open64; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_flag__largefile_source64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_flag__largefile_source64=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then + +cat >>confdefs.h <<\_ACEOF +#define _LARGEFILE_SOURCE64 1 +_ACEOF + + tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" + fi + + if test "x${tcl_flags}" = "x" ; then + echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6 + else + echo "$as_me:$LINENO: result: ${tcl_flags}" >&5 +echo "${ECHO_T}${tcl_flags}" >&6 + fi + + + echo "$as_me:$LINENO: checking for 64-bit integer type" >&5 +echo $ECHO_N "checking for 64-bit integer type... $ECHO_C" >&6 + if test "${tcl_cv_type_64bit+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + tcl_cv_type_64bit=none + # See if the compiler knows natively about __int64 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +__int64 value = (__int64) 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_type_64bit=__int64 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_type_64bit="long long" +fi +rm -f 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 >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +switch (0) { + case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; + } + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_type_64bit=${tcl_type_64bit} +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + if test "${tcl_cv_type_64bit}" = none ; then + +cat >>confdefs.h <<\_ACEOF +#define TCL_WIDE_INT_IS_LONG 1 +_ACEOF + + echo "$as_me:$LINENO: result: using long" >&5 +echo "${ECHO_T}using long" >&6 + elif test "${tcl_cv_type_64bit}" = "__int64" \ + -a "${TEA_PLATFORM}" = "windows" ; then + # We actually want to use the default tcl.h checks in this + # case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* + echo "$as_me:$LINENO: result: using Tcl header defaults" >&5 +echo "${ECHO_T}using Tcl header defaults" >&6 + else + +cat >>confdefs.h <<_ACEOF +#define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit} +_ACEOF + + echo "$as_me:$LINENO: result: ${tcl_cv_type_64bit}" >&5 +echo "${ECHO_T}${tcl_cv_type_64bit}" >&6 + + # Now check for auxiliary declarations + echo "$as_me:$LINENO: checking for struct dirent64" >&5 +echo $ECHO_N "checking for struct dirent64... $ECHO_C" >&6 +if test "${tcl_cv_struct_dirent64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +struct dirent64 p; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_struct_dirent64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_struct_dirent64=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5 +echo "${ECHO_T}$tcl_cv_struct_dirent64" >&6 + if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRUCT_DIRENT64 1 +_ACEOF + + fi + + echo "$as_me:$LINENO: checking for struct stat64" >&5 +echo $ECHO_N "checking for struct stat64... $ECHO_C" >&6 +if test "${tcl_cv_struct_stat64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +struct stat64 p; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_struct_stat64=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_struct_stat64=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5 +echo "${ECHO_T}$tcl_cv_struct_stat64" >&6 + if test "x${tcl_cv_struct_stat64}" = "xyes" ; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRUCT_STAT64 1 +_ACEOF + + fi + + + +for ac_func in open64 lseek64 +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + echo "$as_me:$LINENO: checking for off64_t" >&5 +echo $ECHO_N "checking for off64_t... $ECHO_C" >&6 + if test "${tcl_cv_type_off64_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +off64_t offset; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcl_cv_type_off64_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +tcl_cv_type_off64_t=no +fi +rm -f 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 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TYPE_OFF64_T 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + + + +#-------------------------------------------------------------------- +# Set the default compiler switches based on the --enable-symbols +# option. +#-------------------------------------------------------------------- + + + + echo "$as_me:$LINENO: checking for build with symbols" >&5 +echo $ECHO_N "checking for build with symbols... $ECHO_C" >&6 + # Check whether --enable-symbols or --disable-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}" + LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + else + CFLAGS_DEFAULT="${CFLAGS_DEBUG}" + LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" + if test "$tcl_ok" = "yes"; then + echo "$as_me:$LINENO: result: yes (standard debugging)" >&5 +echo "${ECHO_T}yes (standard debugging)" >&6 + fi + fi + if test "${TEA_PLATFORM}" != "windows" ; then + LDFLAGS_DEFAULT="${LDFLAGS}" + fi + + + + + + if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then + +cat >>confdefs.h <<\_ACEOF +#define TCL_MEM_DEBUG 1 +_ACEOF + + fi + + if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then + if test "$tcl_ok" = "all"; then + echo "$as_me:$LINENO: result: enabled symbols mem debugging" >&5 +echo "${ECHO_T}enabled symbols mem debugging" >&6 + else + echo "$as_me:$LINENO: result: enabled $tcl_ok debugging" >&5 +echo "${ECHO_T}enabled $tcl_ok debugging" >&6 + fi + fi + + +#-------------------------------------------------------------------- +# Everyone should be linking against the Tcl stub library. If you +# can't for some reason, remove this definition. If you aren't using +# stubs, you also need to modify the SHLIB_LD_LIBS setting below to +# link against the non-stubbed Tcl library. +#-------------------------------------------------------------------- + +if test "${SHARED_BUILD}" = "1" ; then + cat >>confdefs.h <<\_ACEOF +#define USE_TCL_STUBS 1 +_ACEOF + +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)" + MAKE_STUB_LIB="\${STLIB_LD} -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. + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" + if test x"${TK_BIN_DIR}" != x ; then + SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" + fi + eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" + else + eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=${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_NAME}${SHARED_LIB_SUFFIX}" + RANLIB=: + else + eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" + fi + # Some packages build their own stubs libraries + eval eval "PKG_STUB_LIB_FILE=lib${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 + + + + + + + + +#-------------------------------------------------------------------- +# __CHANGE__ +# Change the name from exampeA_LIB_FILE to match your package name. +# Use the stub_LIB_FILE substitution if your package creates a stub +# library. +#-------------------------------------------------------------------- + +itcl_STUB_LIB_FILE=${PKG_STUB_LIB_FILE} +itcl_LIB_FILE=${PKG_LIB_FILE} + + + +#-------------------------------------------------------------------- +# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl +# file during the install process. Don't run the TCLSH_PROG through +# ${CYGPATH} because it's being used directly by make. +# Require that we use a tclsh shell version 8.2 or later since earlier +# versions have bugs in the pkg_mkIndex routine. +#-------------------------------------------------------------------- + + + echo "$as_me:$LINENO: checking for tclsh" >&5 +echo $ECHO_N "checking for tclsh... $ECHO_C" >&6 + if test -f "${TCL_BIN_DIR}/Makefile" ; then + # tclConfig.sh is in Tcl build directory + if test "${TEA_PLATFORM}" = "windows"; then + TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" + 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 + echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5 +echo "${ECHO_T}${TCLSH_PROG}" >&6 + + + +#-------------------------------------------------------------------- +# These are for itclConfig.sh +#-------------------------------------------------------------------- + +# pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) +eval pkglibdir="${libdir}/${PACKAGE_NAME}${PACKAGE_VERSION}" +if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then + eval itcl_LIB_FLAG="-litcl${PACKAGE_VERSION}${DBGX}" + eval itcl_STUB_LIB_FLAG="-litclstub${PACKAGE_VERSION}${DBGX}" +else + eval itcl_LIB_FLAG="-litcl`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + eval itcl_STUB_LIB_FLAG="-litclstub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" +fi +itcl_BUILD_LIB_SPEC="-L`pwd` ${itcl_LIB_FLAG}" +itcl_LIB_SPEC="-L${pkglibdir} ${itcl_LIB_FLAG}" + +itcl_BUILD_STUB_LIB_SPEC="-L`pwd` ${itcl_STUB_LIB_FLAG}" +itcl_STUB_LIB_SPEC="-L${pkglibdir} ${itcl_STUB_LIB_FLAG}" +itcl_BUILD_STUB_LIB_PATH="`pwd`/${itcl_STUB_LIB_FILE}" +itcl_STUB_LIB_PATH="${pkglibdir}/${itcl_STUB_LIB_FILE}" + + + + + + + + +# itcl_SRC_DIR must be a fully qualified path +eval itcl_SRC_DIR="$srcdir" +itcl_SRC_DIR=`cd "${itcl_SRC_DIR}"; pwd` + + +#-------------------------------------------------------------------- +# Finally, substitute all of the various values into the Makefile. +#-------------------------------------------------------------------- + + ac_config_files="$ac_config_files Makefile pkgIndex.tcl itclConfig.sh" +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, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "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 \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + 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}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ 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[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# 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 we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS="" + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $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} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# 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 + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + 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 + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # 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 sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# 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'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by itcl $as_me 3.4, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --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 ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +itcl config.status 3.4 +configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2003 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +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=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + 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 +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "pkgIndex.tcl" ) CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;; + "itclConfig.sh" ) CONFIG_FILES="$CONFIG_FILES itclConfig.sh" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + 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 to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CYGPATH@,$CYGPATH,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@PKG_LIB_FILE@,$PKG_LIB_FILE,;t t +s,@PKG_STUB_LIB_FILE@,$PKG_STUB_LIB_FILE,;t t +s,@PKG_STUB_SOURCES@,$PKG_STUB_SOURCES,;t t +s,@PKG_STUB_OBJECTS@,$PKG_STUB_OBJECTS,;t t +s,@PKG_TCL_SOURCES@,$PKG_TCL_SOURCES,;t t +s,@PKG_HEADERS@,$PKG_HEADERS,;t t +s,@PKG_INCLUDES@,$PKG_INCLUDES,;t t +s,@PKG_LIBS@,$PKG_LIBS,;t t +s,@PKG_CFLAGS@,$PKG_CFLAGS,;t t +s,@LN_S@,$LN_S,;t t +s,@CONFIG_CLEAN_FILES@,$CONFIG_CLEAN_FILES,;t t +s,@TCL_VERSION@,$TCL_VERSION,;t t +s,@TCL_BIN_DIR@,$TCL_BIN_DIR,;t t +s,@TCL_SRC_DIR@,$TCL_SRC_DIR,;t t +s,@TCL_LIB_FILE@,$TCL_LIB_FILE,;t t +s,@TCL_LIB_FLAG@,$TCL_LIB_FLAG,;t t +s,@TCL_LIB_SPEC@,$TCL_LIB_SPEC,;t t +s,@TCL_STUB_LIB_FILE@,$TCL_STUB_LIB_FILE,;t t +s,@TCL_STUB_LIB_FLAG@,$TCL_STUB_LIB_FLAG,;t t +s,@TCL_STUB_LIB_SPEC@,$TCL_STUB_LIB_SPEC,;t t +s,@TCL_LIBS@,$TCL_LIBS,;t t +s,@TCL_DEFS@,$TCL_DEFS,;t t +s,@TCL_EXTRA_CFLAGS@,$TCL_EXTRA_CFLAGS,;t t +s,@TCL_LD_FLAGS@,$TCL_LD_FLAGS,;t t +s,@TCL_SHLIB_LD_LIBS@,$TCL_SHLIB_LD_LIBS,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@CPP@,$CPP,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@EGREP@,$EGREP,;t t +s,@MATH_LIBS@,$MATH_LIBS,;t t +s,@PKG_SOURCES@,$PKG_SOURCES,;t t +s,@PKG_OBJECTS@,$PKG_OBJECTS,;t t +s,@CLEANFILES@,$CLEANFILES,;t t +s,@TCL_TOP_DIR_NATIVE@,$TCL_TOP_DIR_NATIVE,;t t +s,@TCL_GENERIC_DIR_NATIVE@,$TCL_GENERIC_DIR_NATIVE,;t t +s,@TCL_UNIX_DIR_NATIVE@,$TCL_UNIX_DIR_NATIVE,;t t +s,@TCL_WIN_DIR_NATIVE@,$TCL_WIN_DIR_NATIVE,;t t +s,@TCL_BMAP_DIR_NATIVE@,$TCL_BMAP_DIR_NATIVE,;t t +s,@TCL_TOOL_DIR_NATIVE@,$TCL_TOOL_DIR_NATIVE,;t t +s,@TCL_PLATFORM_DIR_NATIVE@,$TCL_PLATFORM_DIR_NATIVE,;t t +s,@TCL_INCLUDES@,$TCL_INCLUDES,;t t +s,@SHARED_BUILD@,$SHARED_BUILD,;t t +s,@AR@,$AR,;t t +s,@CELIB_DIR@,$CELIB_DIR,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@DL_LIBS@,$DL_LIBS,;t t +s,@CFLAGS_DEBUG@,$CFLAGS_DEBUG,;t t +s,@CFLAGS_OPTIMIZE@,$CFLAGS_OPTIMIZE,;t t +s,@CFLAGS_WARNING@,$CFLAGS_WARNING,;t t +s,@STLIB_LD@,$STLIB_LD,;t t +s,@SHLIB_LD@,$SHLIB_LD,;t t +s,@SHLIB_LD_LIBS@,$SHLIB_LD_LIBS,;t t +s,@SHLIB_CFLAGS@,$SHLIB_CFLAGS,;t t +s,@LD_LIBRARY_PATH_VAR@,$LD_LIBRARY_PATH_VAR,;t t +s,@TCL_DBGX@,$TCL_DBGX,;t t +s,@CFLAGS_DEFAULT@,$CFLAGS_DEFAULT,;t t +s,@LDFLAGS_DEFAULT@,$LDFLAGS_DEFAULT,;t t +s,@MAKE_LIB@,$MAKE_LIB,;t t +s,@MAKE_SHARED_LIB@,$MAKE_SHARED_LIB,;t t +s,@MAKE_STATIC_LIB@,$MAKE_STATIC_LIB,;t t +s,@MAKE_STUB_LIB@,$MAKE_STUB_LIB,;t t +s,@RANLIB_STUB@,$RANLIB_STUB,;t t +s,@itcl_STUB_LIB_FILE@,$itcl_STUB_LIB_FILE,;t t +s,@itcl_LIB_FILE@,$itcl_LIB_FILE,;t t +s,@TCLSH_PROG@,$TCLSH_PROG,;t t +s,@itcl_BUILD_LIB_SPEC@,$itcl_BUILD_LIB_SPEC,;t t +s,@itcl_LIB_SPEC@,$itcl_LIB_SPEC,;t t +s,@itcl_BUILD_STUB_LIB_SPEC@,$itcl_BUILD_STUB_LIB_SPEC,;t t +s,@itcl_STUB_LIB_SPEC@,$itcl_STUB_LIB_SPEC,;t t +s,@itcl_BUILD_STUB_LIB_PATH@,$itcl_BUILD_STUB_LIB_PATH,;t t +s,@itcl_STUB_LIB_PATH@,$itcl_STUB_LIB_PATH,;t t +s,@itcl_SRC_DIR@,$itcl_SRC_DIR,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # 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. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# 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 || { (exit 1); exit 1; } +fi + diff --git a/8.x/itcl/configure.in b/8.x/itcl/configure.in new file mode 100644 index 0000000..fbb04f6 --- /dev/null +++ b/8.x/itcl/configure.in @@ -0,0 +1,247 @@ +#!/bin/bash -norc +#-------------------------------------------------------------------- +# Sample configure.in for Tcl Extensions. The only places you should +# need to modify this file are marked by the string __CHANGE__ +#-------------------------------------------------------------------- + +#----------------------------------------------------------------------- +# 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. +#----------------------------------------------------------------------- + +AC_INIT([itcl], [3.4]) + +#-------------------------------------------------------------------- +# 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([3.6]) + +AC_PROG_LN_S +CONFIG_CLEAN_FILES= +if test ! -d $srcdir/tclconfig ; then + if test -d $srcdir/../tclconfig ; then + $LN_S $srcdir/../tclconfig tclconfig + CONFIG_CLEAN_FILES=tclconfig + fi +fi +AC_SUBST(CONFIG_CLEAN_FILES) + +AC_CONFIG_AUX_DIR(tclconfig) + +#-------------------------------------------------------------------- +# Load the tclConfig.sh file +#-------------------------------------------------------------------- + +TEA_PATH_TCLCONFIG +TEA_LOAD_TCLCONFIG + +#----------------------------------------------------------------------- +# 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, AC_PROG_INSTALL and a few others to create +# the basic setup necessary to compile executables. +#----------------------------------------------------------------------- + +TEA_SETUP_COMPILER + +#----------------------------------------------------------------------- +# __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([itclStubInit.c + itcl_bicmds.c + itcl_class.c + itcl_cmds.c + itcl_ensemble.c + itcl_linkage.c + itcl_methods.c + itcl_migrate.c + itcl_objects.c + itcl_parse.c + itcl_util.c]) +TEA_ADD_HEADERS([generic/itcl.h + generic/itclDecls.h + generic/itclInt.h + generic/itclIntDecls.h]) +TEA_ADD_INCLUDES([-I\"`${CYGPATH} ${srcdir}/generic`\"]) +TEA_ADD_LIBS([]) +TEA_ADD_CFLAGS([]) +TEA_ADD_STUB_SOURCES([itclStubLib.c]) +TEA_ADD_TCL_SOURCES([library/itcl.tcl]) + +#-------------------------------------------------------------------- +# __CHANGE__ +# A few miscellaneous platform-specific items: +# +# Define a special symbol for Windows (BUILD_itcl in this case) so +# that we create the export library with the dll. See sha1.h on how +# to use this. +# +# Windows creates a few extra files that need to be cleaned up. +# You can add more files to clean if your extension creates any extra +# files. +# +# Define any extra compiler flags in the PACKAGE_CFLAGS variable. +# These will be appended to the current set of compiler flags for +# your system. +#-------------------------------------------------------------------- + +if test "${TEA_PLATFORM}" = "windows" ; then + AC_DEFINE(BUILD_itcl) + CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc*.pch" + TEA_ADD_SOURCES([dllEntryPoint.c]) +else + CLEANFILES= + #TEA_ADD_SOURCES([]) +fi + +AC_SUBST(CLEANFILES) + +#-------------------------------------------------------------------- +# __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 done AFTER calling TEA_PATH_TCLCONFIG/TEA_LOAD_TCLCONFIG +# so that we can extract TCL_SRC_DIR from the config file (in the case +# of private headers +#-------------------------------------------------------------------- + +#TEA_PUBLIC_TCL_HEADERS +TEA_PRIVATE_TCL_HEADERS + +#-------------------------------------------------------------------- +# We need to enable the threading macros found in tcl.h and tclInt.h. +# The use of the threading features is determined by the core the +# extension is loaded into, but we need to compile with these macros +# turned on. +#-------------------------------------------------------------------- + +AC_DEFINE(TCL_THREADS) + +#-------------------------------------------------------------------- +# 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 + +#-------------------------------------------------------------------- +# Set the default compiler switches based on the --enable-symbols +# option. +#-------------------------------------------------------------------- + +TEA_ENABLE_SYMBOLS + +#-------------------------------------------------------------------- +# Everyone should be linking against the Tcl stub library. If you +# can't for some reason, remove this definition. If you aren't using +# stubs, you also need to modify the SHLIB_LD_LIBS setting below to +# link against the non-stubbed Tcl library. +#-------------------------------------------------------------------- + +if test "${SHARED_BUILD}" = "1" ; then + AC_DEFINE(USE_TCL_STUBS) +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. +#-------------------------------------------------------------------- + +TEA_MAKE_LIB + +#-------------------------------------------------------------------- +# __CHANGE__ +# Change the name from exampeA_LIB_FILE to match your package name. +# Use the stub_LIB_FILE substitution if your package creates a stub +# library. +#-------------------------------------------------------------------- + +itcl_STUB_LIB_FILE=${PKG_STUB_LIB_FILE} +itcl_LIB_FILE=${PKG_LIB_FILE} +AC_SUBST(itcl_STUB_LIB_FILE) +AC_SUBST(itcl_LIB_FILE) + +#-------------------------------------------------------------------- +# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl +# file during the install process. Don't run the TCLSH_PROG through +# ${CYGPATH} because it's being used directly by make. +# Require that we use a tclsh shell version 8.2 or later since earlier +# versions have bugs in the pkg_mkIndex routine. +#-------------------------------------------------------------------- + +TEA_PROG_TCLSH + +#-------------------------------------------------------------------- +# These are for itclConfig.sh +#-------------------------------------------------------------------- + +# pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) +eval pkglibdir="${libdir}/${PACKAGE_NAME}${PACKAGE_VERSION}" +if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then + eval itcl_LIB_FLAG="-litcl${PACKAGE_VERSION}${DBGX}" + eval itcl_STUB_LIB_FLAG="-litclstub${PACKAGE_VERSION}${DBGX}" +else + eval itcl_LIB_FLAG="-litcl`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" + eval itcl_STUB_LIB_FLAG="-litclstub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" +fi +itcl_BUILD_LIB_SPEC="-L`pwd` ${itcl_LIB_FLAG}" +itcl_LIB_SPEC="-L${pkglibdir} ${itcl_LIB_FLAG}" + +itcl_BUILD_STUB_LIB_SPEC="-L`pwd` ${itcl_STUB_LIB_FLAG}" +itcl_STUB_LIB_SPEC="-L${pkglibdir} ${itcl_STUB_LIB_FLAG}" +itcl_BUILD_STUB_LIB_PATH="`pwd`/${itcl_STUB_LIB_FILE}" +itcl_STUB_LIB_PATH="${pkglibdir}/${itcl_STUB_LIB_FILE}" + +AC_SUBST(itcl_BUILD_LIB_SPEC) +AC_SUBST(itcl_LIB_SPEC) +AC_SUBST(itcl_BUILD_STUB_LIB_SPEC) +AC_SUBST(itcl_STUB_LIB_SPEC) +AC_SUBST(itcl_BUILD_STUB_LIB_PATH) +AC_SUBST(itcl_STUB_LIB_PATH) + +# itcl_SRC_DIR must be a fully qualified path +eval itcl_SRC_DIR="$srcdir" +itcl_SRC_DIR=`cd "${itcl_SRC_DIR}"; pwd` +AC_SUBST(itcl_SRC_DIR) + +#-------------------------------------------------------------------- +# Finally, substitute all of the various values into the Makefile. +#-------------------------------------------------------------------- + +AC_OUTPUT([Makefile pkgIndex.tcl itclConfig.sh]) diff --git a/8.x/itcl/doc/Class.3 b/8.x/itcl/doc/Class.3 new file mode 100644 index 0000000..1ab32e4 --- /dev/null +++ b/8.x/itcl/doc/Class.3 @@ -0,0 +1,57 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: Class.3,v 1.1 2007/09/06 21:48:31 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_CreateClass 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_CreateClass, Itcl_DeleteClass, Itcl_FindClass, Itcl_IsClass, Itcl_IsClassNamespace \- Manipulate classes. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +int +\fBItcl_CreateClass\fR(\fIinterp, path, info, rPtr\fR) +.sp +int +\fBItcl_DeleteClass\fR(\fIinterp, cdefnPtr\fR) +.sp +ItclClass * +\fBItcl_FindClass\fR(\fIinterp, path, autoload\fR) +.sp +int +\fBItcl_IsClass\fR(\fIcmd\fR) +.sp +int +\fBItcl_IsClassNamespace\fR(\fInamesp\fR) +.SH ARGUMENTS +.AP Tcl_Interp *interp in +Interpreter to modify. +.AP "CONST char" *path in +Path of the class. +.AP ItclObjectInfo *info in +TODO. +.AP ItclClass **rPtr in/out +The address of the pointer to modify. +.AP ItclClass *cdefnPtr in +Pointer to class info struct. +.AP int autoload in +Flag value for if the class should be autoloaded +.AP Tcl_Command cmd in +Command to check. +.AP Tcl_Namespace *namesp in +Namespace to check. +.BE + +.SH DESCRIPTION +.PP + +.SH KEYWORDS +class, find + diff --git a/8.x/itcl/doc/List.3 b/8.x/itcl/doc/List.3 new file mode 100644 index 0000000..3b009a2 --- /dev/null +++ b/8.x/itcl/doc/List.3 @@ -0,0 +1,59 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: List.3,v 1.1 2007/09/06 21:45:52 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_InitList 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_InitList, Itcl_DeleteList, Itcl_CreateListElem, Itcl_DeleteListElem, Itcl_InsertList, Itcl_InsertListElem, Itcl_AppendList, Itcl_AppendListElem, Itcl_SetListValue \- Manipulate an Itcl list object. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +void +\fBItcl_InitList\fR(\fIlist\fR) +.sp +void +\fBItcl_DeleteList\fR(\fIlist\fR) +.sp +Itcl_ListElem * +\fBItcl_CreateListElem\fR(\fIlist\fR) +.sp +Itcl_ListElem * +\fBItcl_DeleteListElem\fR(\fIelem\fR) +.sp +Itcl_ListElem * +\fBItcl_InsertList\fR(\fIlist, clientData\fR) +.sp +Itcl_ListElem * +\fBItcl_InsertListElem\fR(\fIelem, clientData\fR) +.sp +Itcl_ListElem * +\fBItcl_AppendList\fR(\fIlist, clientData\fR) +.sp +Itcl_ListElem * +\fBItcl_AppendListElem\fR(\fIelem, clientData\fR) +.sp +void +\fBItcl_SetListValue\fR(\fIelem, clientData\fR) +.SH ARGUMENTS +.AP Itcl_List *list in +List info structure. +.AP Itcl_ListElem *elem in +List element info structure. +.AP ClientData clientData in +Arbitrary one-word value to save in the list. +.BE + +.SH DESCRIPTION +.PP + +.SH KEYWORDS +list + diff --git a/8.x/itcl/doc/Object.3 b/8.x/itcl/doc/Object.3 new file mode 100644 index 0000000..04d90a2 --- /dev/null +++ b/8.x/itcl/doc/Object.3 @@ -0,0 +1,39 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: Object.3,v 1.1 2007/09/06 21:45:52 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_CreateObject 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_CreateObject, Itcl_DeleteObject, Itcl_FindObject, Itcl_IsObject, Itcl_IsObjectIsa \- Manipulate an class instance. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +void +\fBItcl_PreserveData\fR(\fIcdata\fR) +.sp +void +\fBItcl_ReleaseData\fR(\fIcdata\fR) +.sp +void +\fBItcl_EventuallyFree\fR(\fIcdata, fproc\fR) +.SH ARGUMENTS +.AP Tcl_FreeProc *fproc in +Address of function to call when the block is to be freed. +.AP ClientData clientData in +Arbitrary one-word value. +.BE + +.SH DESCRIPTION +.PP + +.SH KEYWORDS +free, memory + diff --git a/8.x/itcl/doc/Preserve.3 b/8.x/itcl/doc/Preserve.3 new file mode 100644 index 0000000..bbb4d81 --- /dev/null +++ b/8.x/itcl/doc/Preserve.3 @@ -0,0 +1,39 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: Preserve.3,v 1.1 2007/09/06 21:45:52 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_PreserveData 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_PreserveData, Itcl_ReleaseData, Itcl_EventuallyFree \- Manipulate an Itcl list object. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +void +\fBItcl_PreserveData\fR(\fIcdata\fR) +.sp +void +\fBItcl_ReleaseData\fR(\fIcdata\fR) +.sp +void +\fBItcl_EventuallyFree\fR(\fIcdata, fproc\fR) +.SH ARGUMENTS +.AP Tcl_FreeProc *fproc in +Address of function to call when the block is to be freed. +.AP ClientData clientData in +Arbitrary one-word value. +.BE + +.SH DESCRIPTION +.PP + +.SH KEYWORDS +free, memory + diff --git a/8.x/itcl/doc/RegisterC.3 b/8.x/itcl/doc/RegisterC.3 new file mode 100644 index 0000000..9864589 --- /dev/null +++ b/8.x/itcl/doc/RegisterC.3 @@ -0,0 +1,124 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: RegisterC.3,v 1.5 2004/09/27 05:17:11 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_RegisterC 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_RegisterC, Itcl_RegisterObjC, Itcl_FindC \- Associate a symbolic name with a C procedure. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +int +\fBItcl_RegisterC\fR(\fIinterp, cmdName, argProc, clientData, deleteProc\fR) +.sp +int +\fBItcl_RegisterObjC\fR(\fIinterp, cmdName, objProc, clientData, deleteProc\fR) +.sp +int +\fBItcl_FindC\fR(\fIinterp, cmdName, argProcPtr, objProcPtr, cDataPtr\fR) +.SH ARGUMENTS +.AP Tcl_Interp *interp in +Interpreter in which to create new command. +.VS 8.4 +.AP "CONST char" *cmdName in +.VE +Name of command. +.AP Tcl_CmdProc *argProc in +Implementation of new command: \fIargProc\fR will be called whenever +.AP Tcl_CmdProc **argProcPtr in/out +The Tcl_CmdProc * to receive the pointer. +.AP Tcl_ObjCmdProc *objProc in +Implementation of the new command: \fIobjProc\fR will be called whenever +.AP Tcl_ObjCmdProc **objProcPtr in/out +The Tcl_ObjCmdProc * to receive the pointer. +.AP ClientData clientData in +Arbitrary one-word value to pass to \fIproc\fR and \fIdeleteProc\fR. +.AP ClientData *cDataPtr in/out +The ClientData to receive the pointer. +.AP Tcl_CmdDeleteProc *deleteProc in +Procedure to call before \fIcmdName\fR is deleted from the interpreter; +allows for command-specific cleanup. If NULL, then no procedure is +called before the command is deleted. +.BE + +.SH DESCRIPTION +.PP +Used to associate a symbolic name with an (argc,argv) C procedure +that handles a Tcl command. Procedures that are registered in this +manner can be referenced in the body of an [incr Tcl] class +definition to specify C procedures to acting as methods/procs. +Usually invoked in an initialization routine for an extension, +called out in Tcl_AppInit() at the start of an application. +.PP +Each symbolic procedure can have an arbitrary client data value +associated with it. This value is passed into the command +handler whenever it is invoked. +.PP +A symbolic procedure name can be used only once for a given style +(arg/obj) handler. If the name is defined with an arg-style +handler, it can be redefined with an obj-style handler; or if +the name is defined with an obj-style handler, it can be redefined +with an arg-style handler. In either case, any previous client +data is discarded and the new client data is remembered. However, +if a name is redefined to a different handler of the same style, +this procedure returns an error. +.PP +Returns TCL_OK on success, or TCL_ERROR (along with an error message +in interp->result) if anything goes wrong. +.PP +C procedures can be integrated into an \fB[incr\ Tcl]\fR class +definition to implement methods, procs, and the "config" code +for public variables. Any body that starts with "\fB@\fR" +is treated as the symbolic name for a C procedure. +.PP +Symbolic names are established by registering procedures via +\fBItcl_RegisterC()\fR. This is usually done in the \fBTcl_AppInit()\fR +procedure, which is automatically called when the interpreter starts up. +In the following example, the procedure \fCMy_FooCmd()\fR is registered +with the symbolic name "foo". This procedure can be referenced in +the \fBbody\fR command as "\fC@foo\fR". +.CS +int +Tcl_AppInit(interp) + Tcl_Interp *interp; /* Interpreter for application. */ +{ + if (Itcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + + if (Itcl_RegisterC(interp, "foo", My_FooCmd) != TCL_OK) { + return TCL_ERROR; + } +} +.CE +C procedures are implemented just like ordinary Tcl commands. +See the \fBCrtCommand\fR man page for details. Within the procedure, +class data members can be accessed like ordinary variables +using \fBTcl_SetVar()\fR, \fBTcl_GetVar()\fR, \fBTcl_TraceVar()\fR, +etc. Class methods and procs can be executed like ordinary commands +using \fBTcl_Eval()\fR. \fB[incr\ Tcl]\fR makes this possible by +automatically setting up the context before executing the C procedure. +.PP +This scheme provides a natural migration path for code development. +Classes can be developed quickly using Tcl code to implement the +bodies. An entire application can be built and tested. When +necessary, individual bodies can be implemented with C code to +improve performance. +.PP +See the Archetype class in \fB[incr\ Tk]\fR for an example of how this +C linking method is used. + +.SH "SEE ALSO" +Tcl_CreateCommand, Tcl_CreateObjCommand + +.SH KEYWORDS +class, object + diff --git a/8.x/itcl/doc/Stack.3 b/8.x/itcl/doc/Stack.3 new file mode 100644 index 0000000..98e686a --- /dev/null +++ b/8.x/itcl/doc/Stack.3 @@ -0,0 +1,60 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: Stack.3,v 1.2 2004/09/26 00:51:55 davygrvy Exp $ +'\" +.so man.macros +.TH Itcl_InitStack 3 3.0 itcl "[incr\ Tcl] Library Procedures" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +Itcl_InitStack, Itcl_DeleteStack, Itcl_PushStack, Itcl_PopStack, Itcl_PeekStack, Itcl_GetStackValue, Itcl_GetStackSize \- Manipulate an Itcl stack object. +.SH SYNOPSIS +.nf +\fB#include \fR +.sp +int +\fBItcl_InitStack\fR(\fIstack\fR) +.sp +int +\fBItcl_DeleteStack\fR(\fIstack\fR) +.sp +int +\fBItcl_PushStack\fR(\fIcdata, stack\fR) +.sp +ClientData +\fBItcl_PopStack\fR(\fIstack\fR) +.sp +ClientData +\fBItcl_PeekStack\fR(\fIstack\fR) +.sp +ClientData +\fBItcl_GetStackValue\fR(\fIstack, pos\fR) +.sp +int +\fBItcl_GetStackSize\fR(\fIstack\fR) +.SH ARGUMENTS +.AP Itcl_Stack *stack in +Stack info structure. +.AP int pos in +position in stack order from the top. +.AP ClientData clientData in +Arbitrary one-word value to save in the stack. +.BE + +.SH DESCRIPTION +.PP +\fBItcl_InitStack\fR initializes a stack structure and \fBItcl_DeleteStack\fR +deletes it. \fBItcl_PushStack\fR pushes the \fIcdata\fR value onto the stack. +\fBItcl_PopStack\fR removes and returns the top most \fIcdata\fR value. +\fBItcl_PeekStack\fR returns the top most value, but does not remove it. +\fBItcl_GetStackValue\fR gets a value at some index within the stack. Index +"0" is the first value pushed onto the stack. \fBItcl_GetStackSize\fR +returns the count of entries on the stack. + +.SH KEYWORDS +stack + diff --git a/8.x/itcl/doc/body.n b/8.x/itcl/doc/body.n new file mode 100644 index 0000000..4b09355 --- /dev/null +++ b/8.x/itcl/doc/body.n @@ -0,0 +1,124 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: body.n,v 1.4 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH body n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +body \- change the body for a class method/proc +.SH SYNOPSIS +\fBitcl::body \fIclassName\fB::\fIfunction args body\fR +.BE + +.SH DESCRIPTION +.PP +The \fBbody\fR command is used outside of an \fB[incr\ Tcl]\fR +class definition to define or redefine the body of a class +method or proc. This facility allows a class definition +to have separate "interface" and "implementation" parts. +The "interface" part is a \fBclass\fR command with declarations +for methods, procs, instance variables and common variables. +The "implementation" part is a series of \fBbody\fR and +\fBconfigbody\fR commands. If the "implementation" part +is kept in a separate file, it can be sourced again and +again as bugs are fixed, to support interactive development. +When using the "tcl" mode in the \fBemacs\fR editor, the +"interface" and "implementation" parts can be kept in the +same file; as bugs are fixed, individual bodies can be +highlighted and sent to the test application. +.PP +The name "\fIclassName\fB::\fIfunction\fR" +identifies the method/proc being changed. +.PP +If an \fIargs\fR list was specified when the \fIfunction\fR was +defined in the class definition, the \fIargs\fR list for the +\fBbody\fR command must match in meaning. Variable names +can change, but the argument lists must have the same required +arguments and the same default values for optional arguments. +The special \fBargs\fR argument acts as a wildcard when included +in the \fIargs\fR list in the class definition; it will match +zero or more arguments of any type when the body is redefined. +.PP +If the \fIbody\fR string starts with "\fB@\fR", it is treated +as the symbolic name for a C procedure. The \fIargs\fR list +has little meaning for the C procedure, except to document +the expected usage. (The C procedure is not guaranteed to +use arguments in this manner.) If \fIbody\fR does not start +with "\fB@\fR", it is treated as a Tcl command script. When +the function is invoked, command line arguments are matched +against the \fIargs\fR list, and local variables are created +to represent each argument. This is the usual behavior for +a Tcl-style proc. +.PP +Symbolic names for C procedures are established by registering +procedures via \fBItcl_RegisterC()\fR. This is usually done +in the \fBTcl_AppInit()\fR procedure, which is automatically called +when the interpreter starts up. In the following example, +the procedure \fCMy_FooCmd()\fR is registered with the +symbolic name "foo". This procedure can be referenced in +the \fBbody\fR command as "\fC@foo\fR". +.CS +int +Tcl_AppInit(interp) + Tcl_Interp *interp; /* Interpreter for application. */ +{ + if (Itcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + + if (Itcl_RegisterC(interp, "foo", My_FooCmd) != TCL_OK) { + return TCL_ERROR; + } +} +.CE + +.SH EXAMPLE +In the following example, a "File" class is defined to represent +open files. The method bodies are included below the class +definition via the \fBbody\fR command. Note that the bodies +of the constructor/destructor must be included in the class +definition, but they can be redefined via the \fBbody\fR command +as well. +.CS +itcl::class File { + private variable fid "" + constructor {name access} { + set fid [open $name $access] + } + destructor { + close $fid + } + + method get {} + method put {line} + method eof {} +} + +itcl::body File::get {} { + return [gets $fid] +} +itcl::body File::put {line} { + puts $fid $line +} +itcl::body File::eof {} { + return [::eof $fid] +} + +# +# See the File class in action: +# +File x /etc/passwd "r" +while {![x eof]} { + puts "=> [x get]" +} +itcl::delete object x +.CE + +.SH KEYWORDS +class, object, procedure diff --git a/8.x/itcl/doc/class.n b/8.x/itcl/doc/class.n new file mode 100644 index 0000000..5eb5d62 --- /dev/null +++ b/8.x/itcl/doc/class.n @@ -0,0 +1,490 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: class.n,v 1.5 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH class n "" itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +class \- create a class of objects +.SH SYNOPSIS +\fBitcl::class \fIclassName\fR \fB{ +.br + \fBinherit \fIbaseClass\fR ?\fIbaseClass\fR...? +.br + \fBconstructor \fIargs\fR ?\fIinit\fR? \fIbody\fR +.br + \fBdestructor \fIbody\fR +.br + \fBmethod \fIname\fR ?\fIargs\fR? ?\fIbody\fR? +.br + \fBproc \fIname ?\fIargs\fR? ?\fIbody\fR? +.br + \fBvariable \fIvarName\fR ?\fIinit\fR? ?\fIconfig\fR? +.br + \fBcommon \fIvarName\fR ?\fIinit\fR? +.sp + \fBpublic \fIcommand\fR ?\fIarg arg ...\fR? +.br + \fBprotected \fIcommand\fR ?\fIarg arg ...\fR? +.br + \fBprivate \fIcommand\fR ?\fIarg arg ...\fR? +.sp + \fBset \fIvarName\fR ?\fIvalue\fR? +.br + \fBarray \fIoption\fR ?\fIarg arg ...\fR? +.br +\fB}\fR +.sp +\fIclassName objName\fR ?\fIarg arg ...\fR? +.sp +\fIobjName method\fR ?\fIarg arg ...\fR? +.sp +\fIclassName::proc ?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +The fundamental construct in \fB[incr\ Tcl]\fR is the class definition. +Each class acts as a template for actual objects that can be created. +The class itself is a namespace which contains things common to all +objects. Each object has its own unique bundle of data which contains +instances of the "variables" defined in the class definition. Each +object also has a built-in variable named "this", which contains the +name of the object. Classes can also have "common" data members that +are shared by all objects in a class. +.PP +Two types of functions can be included in the class definition. +"Methods" are functions which operate on a specific object, and +therefore have access to both "variables" and "common" data members. +"Procs" are ordinary procedures in the class namespace, and only +have access to "common" data members. +.PP +If the body of any method or proc starts with "\fB@\fR", it is treated +as the symbolic name for a C procedure. Otherwise, it is treated as +a Tcl code script. See below for details on registering and using +C procedures. +.PP +A class can only be defined once, although the bodies of class +methods and procs can be defined again and again for interactive +debugging. See the \fBbody\fR and \fBconfigbody\fR commands for +details. +.PP +Each namespace can have its own collection of objects and classes. +The list of classes available in the current context can be queried +using the "\fBitcl::find classes\fR" command, and the list of objects, +with the "\fBitcl::find objects\fR" command. +.PP +A class can be deleted using the "\fBdelete class\fR" command. +Individual objects can be deleted using the "\fBdelete object\fR" +command. + +.SH CLASS DEFINITIONS +.TP +\fBclass \fIclassName definition\fR +Provides the definition for a class named \fIclassName\fR. If +the class \fIclassName\fR already exists, or if a command called +\fIclassName\fR exists in the current namespace context, this +command returns an error. If the class definition is successfully +parsed, \fIclassName\fR becomes a command in the current context, +handling the creation of objects for this class. +.PP +The class \fIdefinition\fR is evaluated as a series of Tcl +statements that define elements within the class. The following +class definition commands are recognized: +.RS +.TP +\fBinherit \fIbaseClass\fR ?\fIbaseClass\fR...? +Causes the current class to inherit characteristics from one or +more base classes. Classes must have been defined by a previous +\fBclass\fR command, or must be available to the auto-loading +facility (see "AUTO-LOADING" below). A single class definition +can contain no more than one \fBinherit\fR command. +.sp +The order of \fIbaseClass\fR names in the \fBinherit\fR list +affects the name resolution for class members. When the same +member name appears in two or more base classes, the base class +that appears first in the \fBinherit\fR list takes precedence. +For example, if classes "Foo" and "Bar" both contain the member +"x", and if another class has the "\fBinherit\fR" statement: +.CS +inherit Foo Bar +.CE +then the name "x" means "Foo::x". Other inherited members named +"x" must be referenced with their explicit name, like "Bar::x". +.TP +\fBconstructor \fIargs\fR ?\fIinit\fR? \fIbody\fR +Declares the \fIargs\fR argument list and \fIbody\fR used for +the constructor, which is automatically invoked whenever an +object is created. +.sp +Before the \fIbody\fR is executed, the +optional \fIinit\fR statement is used to invoke any base class +constructors that require arguments. Variables in the \fIargs\fR +specification can be accessed in the \fIinit\fR code fragment, +and passed to base class constructors. After evaluating the +\fIinit\fR statement, any base class constructors that have +not been executed are invoked automatically without arguments. +This ensures that all base classes are fully constructed before +the constructor \fIbody\fR is executed. By default, this +scheme causes constructors to be invoked in order from least- +to most-specific. This is exactly the opposite of the order +that classes are reported by the \fBinfo heritage\fR command. +.sp +If construction is successful, the constructor always returns +the object name\-regardless of how the \fIbody\fR is defined\-and +the object name becomes a command in the current namespace context. +If construction fails, an error message is returned. +.TP +\fBdestructor \fIbody\fR +Declares the \fIbody\fR used for the destructor, which is automatically +invoked when an object is deleted. If the destructor is successful, +the object data is destroyed and the object name is removed as a command +from the interpreter. If destruction fails, an error message is returned +and the object remains. +.sp +When an object is destroyed, all destructors in its class hierarchy +are invoked in order from most- to least-specific. This is the +order that the classes are reported by the "\fBinfo heritage\fR" +command, and it is exactly the opposite of the default constructor +order. +.TP +\fBmethod \fIname\fR ?\fIargs\fR? ?\fIbody\fR? +Declares a method called \fIname\fR. When the method \fIbody\fR is +executed, it will have automatic access to object-specific variables +and common data members. +.sp +If the \fIargs\fR list is specified, it establishes the usage +information for this method. The \fBbody\fR command can be used +to redefine the method body, but the \fIargs\fR list must match +this specification. +.sp +Within the body of another class method, a method can be invoked +like any other command\-simply by using its name. Outside of the +class context, the method name must be prefaced an object name, +which provides the context for the data that it manipulates. +Methods in a base class that are redefined in the current class, +or hidden by another base class, can be qualified using the +"\fIclassName\fR::\fImethod\fR" syntax. +.TP +\fBproc \fIname\fR ?\fIargs\fR? ?\fIbody\fR? +Declares a proc called \fIname\fR. A proc is an ordinary procedure +within the class namespace. Unlike a method, a proc is invoked +without referring to a specific object. When the proc \fIbody\fR is +executed, it will have automatic access only to common data members. +.sp +If the \fIargs\fR list is specified, it establishes the usage +information for this proc. The \fBbody\fR command can be used +to redefine the proc body, but the \fIargs\fR list must match +this specification. +.sp +Within the body of another class method or proc, a proc can be +invoked like any other command\-simply by using its name. +In any other namespace context, the proc is invoked using a +qualified name like "\fIclassName\fB::\fIproc\fR". Procs in +a base class that are redefined in the current class, or hidden +by another base class, can also be accessed via their qualified +name. +.TP +\fBvariable \fIvarName\fR ?\fIinit\fR? ?\fIconfig\fR? +Defines an object-specific variable named \fIvarName\fR. All +object-specific variables are automatically available in class +methods. They need not be declared with anything like the +\fBglobal\fR command. +.sp +If the optional \fIinit\fR string is specified, it is used as the +initial value of the variable when a new object is created. +Initialization forces the variable to be a simple scalar +value; uninitialized variables, on the other hand, can be set +within the constructor and used as arrays. +.sp +The optional \fIconfig\fR script is only allowed for public variables. +If specified, this code fragment is executed whenever a public +variable is modified by the built-in "configure" method. The +\fIconfig\fR script can also be specified outside of the class +definition using the \fBconfigbody\fR command. +.TP +\fBcommon \fIvarName\fR ?\fIinit\fR? +Declares a common variable named \fIvarName\fR. Common variables +reside in the class namespace and are shared by all objects belonging +to the class. They are just like global variables, except that +they need not be declared with the usual \fBglobal\fR command. +They are automatically visible in all class methods and procs. +.sp +If the optional \fIinit\fR string is specified, it is used as the +initial value of the variable. Initialization forces the variable +to be a simple scalar value; uninitialized variables, on the other +hand, can be set with subsequent \fBset\fR and \fBarray\fR commands +and used as arrays. +.sp +Once a common data member has been defined, it can be set using +\fBset\fR and \fBarray\fR commands within the class definition. +This allows common data members to be initialized as arrays. +For example: +.CS +itcl::class Foo { + common boolean + set boolean(true) 1 + set boolean(false) 0 +} +.CE +Note that if common data members are initialized within the +constructor, they get initialized again and again whenever new +objects are created. +.TP +\fBpublic \fIcommand\fR ?\fIarg arg ...\fR? +.TP +\fBprotected \fIcommand\fR ?\fIarg arg ...\fR? +.TP +\fBprivate \fIcommand\fR ?\fIarg arg ...\fR? +These commands are used to set the protection level for class +members that are created when \fIcommand\fR is evaluated. +The \fIcommand\fR is usually \fBmethod\fR, \fBproc\fR, +\fBvariable\fR or\fBcommon\fR, and the remaining \fIarg\fR's +complete the member definition. However, \fIcommand\fR can +also be a script containing many different member definitions, +and the protection level will apply to all of the members +that are created. + +.SH CLASS USAGE +.PP +Once a class has been defined, the class name can be used as a +command to create new objects belonging to the class. +.TP +\fIclassName objName\fR ?\fIargs...\fR? +Creates a new object in class \fIclassName\fR with the name \fIobjName\fR. +Remaining arguments are passed to the constructor of the most-specific +class. This in turn passes arguments to base class constructors before +invoking its own body of commands. If construction is successful, a +command called \fIobjName\fR is created in the current namespace context, +and \fIobjName\fR is returned as the result of this operation. +If an error is encountered during construction, the destructors are +automatically invoked to free any resources that have been allocated, +the object is deleted, and an error is returned. +.sp +If \fIobjName\fR contains the string "\fB#auto\fR", that string is +replaced with an automatically generated name. Names have the +form \fIclassName\fR, where the \fIclassName\fR part is +modified to start with a lowercase letter. In class "Toaster", +for example, the "\fB#auto\fR" specification would produce names +like toaster0, toaster1, etc. Note that "\fB#auto\fR" can be +also be buried within an object name: +.CS +fileselectiondialog .foo.bar.#auto -background red +.CE +This would generate an object named ".foo.bar.fileselectiondialog0". + +.SH OBJECT USAGE +Once an object has been created, the object name can be used +as a command to invoke methods that operate on the object. +.TP +\fIobjName method\fR ?\fIargs...\fR? +Invokes a method named \fImethod\fR on an object named \fIobjName\fR. +Remaining arguments are passed to the argument list for the +method. The method name can be "constructor", "destructor", +any method name appearing in the class definition, or any of +the following built-in methods. +.SH BUILT-IN METHODS +.TP +\fIobjName\fR \fBcget option\fR +Provides access to public variables as configuration options. This +mimics the behavior of the usual "cget" operation for Tk widgets. +The \fIoption\fR argument is a string of the form "\fB-\fIvarName\fR", +and this method returns the current value of the public variable +\fIvarName\fR. +.TP +\fIobjName\fR \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Provides access to public variables as configuration options. This +mimics the behavior of the usual "configure" operation for Tk widgets. +With no arguments, this method returns a list of lists describing +all of the public variables. Each list has three elements: the +variable name, its initial value and its current value. +.sp +If a single \fIoption\fR of the form "\fB-\fIvarName\fR" is specified, +then this method returns the information for that one variable. +.sp +Otherwise, the arguments are treated as \fIoption\fR/\fIvalue\fR +pairs assigning new values to public variables. Each variable +is assigned its new value, and if it has any "config" code associated +with it, it is executed in the context of the class where it was +defined. If the "config" code generates an error, the variable +is set back to its previous value, and the \fBconfigure\fR method +returns an error. +.TP +\fIobjName\fR \fBisa \fIclassName\fR +Returns non-zero if the given \fIclassName\fR can be found in the +object's heritage, and zero otherwise. +.TP +\fIobjName\fR \fBinfo \fIoption\fR ?\fIargs...\fR? +Returns information related to a particular object named +\fIobjName\fR, or to its class definition. The \fIoption\fR +parameter includes the following things, as well as the options +recognized by the usual Tcl "info" command: +.RS +.TP +\fIobjName\fR \fBinfo class\fR +Returns the name of the most-specific class for object \fIobjName\fR. +.TP +\fIobjName\fR \fBinfo inherit\fR +Returns the list of base classes as they were defined in the +"\fBinherit\fR" command, or an empty string if this class +has no base classes. +.TP +\fIobjName\fR \fBinfo heritage\fR +Returns the current class name and the entire list of base classes +in the order that they are traversed for member lookup and object +destruction. +.TP +\fIobjName\fR \fBinfo function\fR ?\fIcmdName\fR? ?\fB-protection\fR? ?\fB-type\fR? ?\fB-name\fR? ?\fB-args\fR? ?\fB-body\fR? +With no arguments, this command returns a list of all class methods +and procs. If \fIcmdName\fR is specified, it returns information +for a specific method or proc. If no flags are specified, this +command returns a list with the following elements: the protection +level, the type (method/proc), the qualified name, the argument list +and the body. Flags can be used to request specific elements from +this list. +.TP +\fIobjName\fR \fBinfo variable\fR ?\fIvarName\fR? ?\fB-protection\fR? ?\fB-type\fR? ?\fB-name\fR? ?\fB-init\fR? ?\fB-value\fR? ?\fB-config\fR? +With no arguments, this command returns a list of all object-specific +variables and common data members. If \fIvarName\fR is specified, it +returns information for a specific data member. If no flags are +specified, this command returns a list with the following elements: the +protection level, the type (variable/common), the qualified name, the +initial value, and the current value. If \fIvarName\fR is a public +variable, the "config" code is included on this list. Flags can be +used to request specific elements from this list. + +.SH CHAINING METHODS/PROCS +Sometimes a base class has a method or proc that is redefined with +the same name in a derived class. This is a way of making the +derived class handle the same operations as the base class, but +with its own specialized behavior. For example, suppose we have +a Toaster class that looks like this: +.CS +itcl::class Toaster { + variable crumbs 0 + method toast {nslices} { + if {$crumbs > 50} { + error "== FIRE! FIRE! ==" + } + set crumbs [expr $crumbs+4*$nslices] + } + method clean {} { + set crumbs 0 + } +} +.CE +We might create another class like SmartToaster that redefines +the "toast" method. If we want to access the base class method, +we can qualify it with the base class name, to avoid ambiguity: +.CS +itcl::class SmartToaster { + inherit Toaster + method toast {nslices} { + if {$crumbs > 40} { + clean + } + return [Toaster::toast $nslices] + } +} +.CE +Instead of hard-coding the base class name, we can use the +"chain" command like this: +.CS +itcl::class SmartToaster { + inherit Toaster + method toast {nslices} { + if {$crumbs > 40} { + clean + } + return [chain $nslices] + } +} +.CE +The chain command searches through the class hierarchy for +a slightly more generic (base class) implementation of a method +or proc, and invokes it with the specified arguments. It starts +at the current class context and searches through base classes +in the order that they are reported by the "info heritage" command. +If another implementation is not found, this command does nothing +and returns the null string. + +.SH AUTO-LOADING +.PP +Class definitions need not be loaded explicitly; they can be loaded as +needed by the usual Tcl auto-loading facility. Each directory containing +class definition files should have an accompanying "tclIndex" file. +Each line in this file identifies a Tcl procedure or \fB[incr\ Tcl]\fR +class definition and the file where the definition can be found. +.PP +For example, suppose a directory contains the definitions for classes +"Toaster" and "SmartToaster". Then the "tclIndex" file for this +directory would look like: +.CS +# Tcl autoload index file, version 2.0 for [incr Tcl] +# This file is generated by the "auto_mkindex" command +# and sourced to set up indexing information for one or +# more commands. Typically each line is a command that +# sets an element in the auto_index array, where the +# element name is the name of a command and the value is +# a script that loads the command. + +set auto_index(::Toaster) "source $dir/Toaster.itcl" +set auto_index(::SmartToaster) "source $dir/SmartToaster.itcl" +.PP +The \fBauto_mkindex\fR command is used to automatically +generate "tclIndex" files. +.CE +The auto-loader must be made aware of this directory by appending +the directory name to the "auto_path" variable. When this is in +place, classes will be auto-loaded as needed when used in an +application. + +.SH C PROCEDURES +.PP +C procedures can be integrated into an \fB[incr\ Tcl]\fR class +definition to implement methods, procs, and the "config" code +for public variables. Any body that starts with "\fB@\fR" +is treated as the symbolic name for a C procedure. +.PP +Symbolic names are established by registering procedures via +\fBItcl_RegisterC()\fR. This is usually done in the \fBTcl_AppInit()\fR +procedure, which is automatically called when the interpreter starts up. +In the following example, the procedure \fCMy_FooCmd()\fR is registered +with the symbolic name "foo". This procedure can be referenced in +the \fBbody\fR command as "\fC@foo\fR". +.CS +int +Tcl_AppInit(interp) + Tcl_Interp *interp; /* Interpreter for application. */ +{ + if (Itcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + + if (Itcl_RegisterC(interp, "foo", My_FooCmd) != TCL_OK) { + return TCL_ERROR; + } +} +.CE +C procedures are implemented just like ordinary Tcl commands. +See the \fBCrtCommand\fR man page for details. Within the procedure, +class data members can be accessed like ordinary variables +using \fBTcl_SetVar()\fR, \fBTcl_GetVar()\fR, \fBTcl_TraceVar()\fR, +etc. Class methods and procs can be executed like ordinary commands +using \fBTcl_Eval()\fR. \fB[incr\ Tcl]\fR makes this possible by +automatically setting up the context before executing the C procedure. +.PP +This scheme provides a natural migration path for code development. +Classes can be developed quickly using Tcl code to implement the +bodies. An entire application can be built and tested. When +necessary, individual bodies can be implemented with C code to +improve performance. + +.SH KEYWORDS +class, object, object-oriented diff --git a/8.x/itcl/doc/code.n b/8.x/itcl/doc/code.n new file mode 100644 index 0000000..027917e --- /dev/null +++ b/8.x/itcl/doc/code.n @@ -0,0 +1,96 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: code.n,v 1.3 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH code n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +code \- capture the namespace context for a code fragment +.SH SYNOPSIS +\fBitcl::code \fR?\fB-namespace \fIname\fR? \fIcommand \fR?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +Creates a scoped value for the specified \fIcommand\fR and its +associated \fIarg\fR arguments. A scoped value is a list with three +elements: the "\fC@scope\fR" keyword, a namespace context, +and a value string. For example, the command +.CS +namespace foo { + code puts "Hello World!" +} +.CE +produces the scoped value: +.CS +@scope ::foo {puts {Hello World!}} +.CE +Note that the \fBcode\fR command captures the current namespace +context. If the \fB-namespace\fR flag is specified, then the +current context is ignored, and the \fIname\fR string is used +as the namespace context. +.PP +Extensions like Tk execute ordinary code fragments in the global +namespace. A scoped value captures a code fragment together with +its namespace context in a way that allows it to be executed +properly later. It is needed, for example, to wrap up code fragments +when a Tk widget is used within a namespace: +.CS +namespace foo { + private proc report {mesg} { + puts "click: $mesg" + } + + button .b1 -text "Push Me" \ + -command [code report "Hello World!"] + pack .b1 +} +.CE +The code fragment associated with button \fC.b1\fR only makes +sense in the context of namespace "foo". Furthermore, the +"report" procedure is private, and can only be accessed within +that namespace. The \fBcode\fR command wraps up the code +fragment in a way that allows it to be executed properly +when the button is pressed. +.PP +Also, note that the \fBcode\fR command preserves the integrity +of arguments on the command line. This makes it a natural replacement +for the \fBlist\fR command, which is often used to format Tcl code +fragments. In other words, instead of using the \fBlist\fR command +like this: +.CS +after 1000 [list puts "Hello $name!"] +.CE +use the \fBcode\fR command like this: +.CS +after 1000 [code puts "Hello $name!"] +.CE +This not only formats the command correctly, but also captures +its namespace context. +.PP +Scoped commands can be invoked like ordinary code fragments, with +or without the \fBeval\fR command. For example, the following +statements work properly: +.CS +set cmd {@scope ::foo .b1} +$cmd configure -background red + +set opts {-bg blue -fg white} +eval $cmd configure $opts +.CE +Note that scoped commands by-pass the usual protection mechanisms; +the command: +.CS +@scope ::foo {report {Hello World!}} +.CE +can be used to access the "foo::report" proc from any namespace +context, even though it is private. + +.SH KEYWORDS +scope, callback, namespace, public, protected, private diff --git a/8.x/itcl/doc/configbody.n b/8.x/itcl/doc/configbody.n new file mode 100644 index 0000000..b2db88c --- /dev/null +++ b/8.x/itcl/doc/configbody.n @@ -0,0 +1,129 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: configbody.n,v 1.4 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH configbody n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +configbody \- change the "config" code for a public variable +.SH SYNOPSIS +\fBitcl::configbody \fIclassName\fB::\fIvarName body\fR +.BE + +.SH DESCRIPTION +.PP +The \fBconfigbody\fR command is used outside of an \fB[incr\ Tcl]\fR +class definition to define or redefine the configuration code +associated with a public variable. Public variables act like +configuration options for an object. They can be modified +outside the class scope using the built-in \fBconfigure\fR method. +Each variable can have a bit of "config" code associate with it +that is automatically executed when the variable is configured. +The \fBconfigbody\fR command can be used to define or redefine +this body of code. +.PP +Like the \fBbody\fR command, this facility allows a class definition +to have separate "interface" and "implementation" parts. +The "interface" part is a \fBclass\fR command with declarations +for methods, procs, instance variables and common variables. +The "implementation" part is a series of \fBbody\fR and +\fBconfigbody\fR commands. If the "implementation" part +is kept in a separate file, it can be sourced again and +again as bugs are fixed, to support interactive development. +When using the "tcl" mode in the \fBemacs\fR editor, the +"interface" and "implementation" parts can be kept in the +same file; as bugs are fixed, individual bodies can be +highlighted and sent to the test application. +.PP +The name "\fIclassName\fB::\fIvarName\fR" +identifies the public variable being updated. +If the \fIbody\fR string starts with "\fB@\fR", it is treated +as the symbolic name for a C procedure. Otherwise, it is +treated as a Tcl command script. +.PP +Symbolic names for C procedures are established by registering +procedures via \fBItcl_RegisterC()\fR. This is usually done +in the \fBTcl_AppInit()\fR procedure, which is automatically called +when the interpreter starts up. In the following example, +the procedure \fCMy_FooCmd()\fR is registered with the +symbolic name "foo". This procedure can be referenced in +the \fBconfigbody\fR command as "\fC@foo\fR". +.CS +int +Tcl_AppInit(interp) + Tcl_Interp *interp; /* Interpreter for application. */ +{ + if (Itcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + + if (Itcl_RegisterC(interp, "foo", My_FooCmd) != TCL_OK) { + return TCL_ERROR; + } +} +.CE + +.SH EXAMPLE +In the following example, a "File" class is defined to represent +open files. Whenever the "-name" option is configured, the +existing file is closed, and a new file is opened. Note that +the "config" code for a public variable is optional. The "-access" +option, for example, does not have it. +.CS +itcl::class File { + private variable fid "" + + public variable name "" + public variable access "r" + + constructor {args} { + eval configure $args + } + destructor { + if {$fid != ""} { + close $fid + } + } + + method get {} + method put {line} + method eof {} +} + +itcl::body File::get {} { + return [gets $fid] +} +itcl::body File::put {line} { + puts $fid $line +} +itcl::body File::eof {} { + return [::eof $fid] +} + +itcl::configbody File::name { + if {$fid != ""} { + close $fid + } + set fid [open $name $access] +} + +# +# See the File class in action: +# +File x + +x configure -name /etc/passwd +while {![x eof]} { + puts "=> [x get]" +} +itcl::delete object x +.CE + +.SH KEYWORDS +class, object, variable, configure diff --git a/8.x/itcl/doc/delete.n b/8.x/itcl/doc/delete.n new file mode 100644 index 0000000..206bcbe --- /dev/null +++ b/8.x/itcl/doc/delete.n @@ -0,0 +1,64 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: delete.n,v 1.4 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH delete n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +delete \- delete things in the interpreter +.SH SYNOPSIS +\fBitcl::delete \fIoption\fR ?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +The \fBdelete\fR command is used to delete things in the interpreter. +It is implemented as an ensemble, so extensions can add their own +options and extend the behavior of this command. By default, the +\fBdelete\fR command handles the destruction of namespaces. +.PP +The \fIoption\fR argument determines what action is carried out +by the command. The legal \fIoptions\fR (which may be abbreviated) +are: +.TP +\fBdelete class \fIname\fR ?\fIname...\fR? +Deletes one or more \fB[incr\ Tcl]\fR classes called \fIname\fR. +This deletes all objects in the class, and all derived classes +as well. +.sp +If an error is encountered while destructing an object, it will +prevent the destruction of the class and any remaining objects. +To destroy the entire class without regard for errors, use the +"\fBdelete namespace\fR" command. +.TP +\fBdelete object \fIname\fR ?\fIname...\fR? +Deletes one or more \fB[incr\ Tcl]\fR objects called \fIname\fR. +An object is deleted by invoking all destructors in its class +hierarchy, in order from most- to least-specific. If all destructors +are successful, data associated with the object is deleted and +the \fIname\fR is removed as a command from the interpreter. +.sp +If the access command for an object resides in another namespace, +then its qualified name can be used: +.CS +itcl::delete object foo::bar::x +.CE +If an error is encountered while destructing an object, the +\fBdelete\fR command is aborted and the object remains alive. +To destroy an object without regard for errors, use the +"\fBrename\fR" command to destroy the object access command. +.TP +\fBdelete namespace \fIname\fR ?\fIname...\fR? +Deletes one or more namespaces called \fIname\fR. This deletes +all commands and variables in the namespace, and deletes all +child namespaces as well. When a namespace is deleted, it is +automatically removed from the import lists of all other namespaces. + +.SH KEYWORDS +namespace, proc, variable, ensemble diff --git a/8.x/itcl/doc/ensemble.n b/8.x/itcl/doc/ensemble.n new file mode 100644 index 0000000..247689b --- /dev/null +++ b/8.x/itcl/doc/ensemble.n @@ -0,0 +1,173 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: ensemble.n,v 1.4 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH ensemble n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +ensemble \- create or modify a composite command +.SH SYNOPSIS +\fBitcl::ensemble \fIensName\fR ?\fIcommand arg arg...\fR? +.br +or +.br +\fBensemble \fIensName\fR { +.br + \fBpart \fIpartName args body\fR +.br + \fI...\fR +.br + \fBensemble \fIpartName\fR { +.br + \fBpart \fIsubPartName args body\fR +.br + \fBpart \fIsubPartName args body\fR +.br + \fI...\fR + } +.br +} +.BE + +.SH DESCRIPTION +.PP +The \fBensemble\fR command is used to create or modify a composite +command. See the section \fBWHAT IS AN ENSEMBLE?\fR below for a +brief overview of ensembles. +.PP +If the \fBensemble\fR command finds an existing ensemble called +\fIensName\fR, it updates that ensemble. Otherwise, it creates an +ensemble called \fIensName\fR. If the \fIensName\fR is a simple name +like "foo", then an ensemble command named "foo" is added to the +current namespace context. If a command named "foo" already exists +in that context, then it is deleted. If the \fIensName\fR contains +namespace qualifiers like "a::b::foo", then the namespace path is +resolved, and the ensemble command is added that namespace context. +Parent namespaces like "a" and "b" are created automatically, as needed. +.PP +If the \fIensName\fR contains spaces like "a::b::foo bar baz", then +additional words like "bar" and "baz" are treated as sub-ensembles. +Sub-ensembles are merely parts within an ensemble; they do not have +a Tcl command associated with them. An ensemble like "foo" can +have a sub-ensemble called "foo bar", which in turn can have a +sub-ensemble called "foo bar baz". In this case, the sub-ensemble +"foo bar" must be created before the sub-ensemble "foo bar baz" +that resides within it. +.PP +If there are any arguments following \fIensName\fR, then they are +treated as commands, and they are executed to update the ensemble. +The following commands are recognized in this context: \fBpart\fR +and \fBensemble\fR. +.PP +The \fBpart\fR command defines a new part for the ensemble. +Its syntax is identical to the usual \fBproc\fR command, but +it defines a part within an ensemble, instead of a Tcl command. +If a part called \fIpartName\fR already exists within the ensemble, +then the \fBpart\fR command returns an error. +.PP +The \fBensemble\fR command can be nested inside another \fBensemble\fR +command to define a sub-ensemble. + +.SH "WHAT IS AN ENSEMBLE?" +The usual "info" command is a composite command--the command name +\fBinfo\fR must be followed by a sub-command like \fBbody\fR or \fBglobals\fR. +We will refer to a command like \fBinfo\fR as an \fIensemble\fR, and to +sub-commands like \fBbody\fR or \fBglobals\fR as its \fIparts\fR. +.PP +Ensembles can be nested. For example, the \fBinfo\fR command has +an ensemble \fBinfo namespace\fR within it. This ensemble has parts +like \fBinfo namespace all\fR and \fBinfo namespace children\fR. +.PP +With ensembles, composite commands can be created and extended +in an automatic way. Any package can find an existing ensemble +and add new parts to it. So extension writers can add their +own parts, for example, to the \fBinfo\fR command. +.PP +The ensemble facility manages all of the part names and keeps +track of unique abbreviations. Normally, you can abbreviate +\fBinfo complete\fR to \fBinfo comp\fR. But if an extension adds the +part \fBinfo complexity\fR, the minimum abbreviation for \fBinfo complete\fR +becomes \fBinfo complet\fR. +.PP +The ensemble facility not only automates the construction of +composite commands, but it automates the error handling as well. +If you invoke an ensemble command without specifying a part name, +you get an automatically generated error message that summarizes +the usage information. For example, when the \fBinfo\fR command +is invoked without any arguments, it produces the following error +message: +.CS +wrong # args: should be one of... + info args procname + info body procname + info cmdcount + info commands ?pattern? + info complete command + info context + info default procname arg varname + info exists varName + info globals ?pattern? + info level ?number? + info library + info locals ?pattern? + info namespace option ?arg arg ...? + info patchlevel + info procs ?pattern? + info protection ?-command? ?-variable? name + info script + info tclversion + info vars ?pattern? + info which ?-command? ?-variable? ?-namespace? name\fR +.CE +You can also customize the way an ensemble responds to errors. +When an ensemble encounters an unspecified or ambiguous part +name, it looks for a part called \fB@error\fR. If it exists, +then it is used to handle the error. This part will receive all +of the arguments on the command line starting with the offending +part name. It can find another way of resolving the command, +or generate its own error message. + +.SH EXAMPLE +We could use an ensemble to clean up the syntax of the various +"wait" commands in Tcl/Tk. Instead of using a series of +strange commands like this: +.CS +vwait x +tkwait visibility .top +tkwait window . +.CE +we could use commands with a uniform syntax, like this: +.CS +wait variable x +wait visibility .top +wait window . +.CE +The Tcl package could define the following ensemble: +.CS +itcl::ensemble wait part variable {name} { + uplevel vwait $name +} +.CE +The Tk package could add some options to this ensemble, with a +command like this: +.CS +itcl::ensemble wait { + part visibility {name} { + tkwait visibility $name + } + part window {name} { + tkwait window $name + } +} +.CE +Other extensions could add their own parts to the \fBwait\fR command +too. + +.SH KEYWORDS +ensemble, part, info diff --git a/8.x/itcl/doc/find.n b/8.x/itcl/doc/find.n new file mode 100644 index 0000000..f0d5c25 --- /dev/null +++ b/8.x/itcl/doc/find.n @@ -0,0 +1,72 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: find.n,v 1.5 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH find n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +find \- search for classes and objects +.SH SYNOPSIS +\fBitcl::find \fIoption\fR ?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +The \fBfind\fR command is used to find classes and objects +that are available in the current interpreter. Classes and objects +are reported first in the active namespace, then in all other +namespaces in the interpreter. +.PP +The \fIoption\fR argument determines what action is carried out +by the command. The legal \fIoptions\fR (which may be abbreviated) +are: +.TP +\fBfind classes ?\fIpattern\fR? +Returns a list of [incr Tcl] classes. Classes in the current +namespace are listed first, followed by classes in all other +namespaces in the interpreter. If the optional \fIpattern\fR +is specified, then the reported names are compared using the rules +of the "\fBstring match\fR" command, and only matching names are +reported. +.sp +If a class resides in the current namespace context, this command +reports its simple name--without any qualifiers. However, if the +\fIpattern\fR contains \fB::\fR qualifiers, or if the class resides +in another context, this command reports its fully-qualified name. +Therefore, you can use the following command to obtain a list where +all names are fully-qualified: +.CS +itcl::find classes ::* +.CE +.TP +\fBfind objects ?\fIpattern\fR? ?\fB-class \fIclassName\fR? ?\fB-isa \fIclassName\fR? +Returns a list of [incr Tcl] objects. Objects in the current +namespace are listed first, followed by objects in all other +namespaces in the interpreter. If the optional \fIpattern\fR is +specified, then the reported names are compared using the rules +of the "\fBstring match\fR" command, and only matching names are +reported. +If the optional "\fB-class\fR" parameter is specified, this list is +restricted to objects whose most-specific class is \fIclassName\fR. +If the optional "\fB-isa\fR" parameter is specified, this list is +further restricted to objects having the given \fIclassName\fR +anywhere in their heritage. +.sp +If an object resides in the current namespace context, this command +reports its simple name--without any qualifiers. However, if the +\fIpattern\fR contains \fB::\fR qualifiers, or if the object resides +in another context, this command reports its fully-qualified name. +Therefore, you can use the following command to obtain a list where +all names are fully-qualified: +.CS +itcl::find objects ::* +.CE + +.SH KEYWORDS +class, object, search, import diff --git a/8.x/itcl/doc/is.n b/8.x/itcl/doc/is.n new file mode 100644 index 0000000..cd2c2ae --- /dev/null +++ b/8.x/itcl/doc/is.n @@ -0,0 +1,66 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: is.n,v 1.6 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH is n 3.3 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +is \- test argument to see if it is a class or an object +.SH SYNOPSIS +\fBitcl::is \fIoption\fR ?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +The \fBis\fR command is used to check if the argument given is +a class or an object; depending on the option given. If the argument +if a class or object, then 1 is returned. Otherwise, 0 is returned. +The \fBis\fR command also recognizes the commands wrapped in the +itcl \fBcode command. +.PP +The \fIoption\fR argument determines what action is carried out +by the command. The legal \fIoptions\fR (which may be abbreviated) +are: +.TP +\fBis class \fIcommand\fR +Returns 1 if command is a class, and returns 0 otherwise. +.sp +The fully qualified name of the class needs to be given as the \fIcommand\fR +argument. So, if a class resides in a namespace, then the namespace needs to +be specified as well. So, if a class \fBC resides in a namespace \fBN, then +the command should be called like: +.CS +\fBis N::C\fR + or +\fBis ::N::C\fR +.CE +.TP +\fBis\fR object ?\fB-class \fIclassName\fR? \fIcommand\fR +Returns 1 if \fIcommand\fR is an object, and returns 0 otherwise. +.sp +If the optional "\fB-class\fR" parameter is specified, then the +\fIcommand\fR will be checked within the context of the class +given. Note that \fIclassName\fR has to exist. If not, then an +error will be given. So, if \fIclassName\fR is uncertain to be +a class, then the programmer will need to check it's existance +beforehand, or wrap it in a catch statement. +.sp +So, if \fBc\fR is an object in the class \fBC\fR, in namespace N then +these are the possibilities (all return 1): +.CS +set obj [N::C c] +itcl::is object N::c +itcl::is object c +itcl::is object $obj +itcl::is object [itcl::code c] +.CE + +.SH KEYWORDS +class, object + diff --git a/8.x/itcl/doc/itcl.n b/8.x/itcl/doc/itcl.n new file mode 100644 index 0000000..3854186 --- /dev/null +++ b/8.x/itcl/doc/itcl.n @@ -0,0 +1,147 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: itcl.n,v 1.3 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH itcl n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +itcl \- object-oriented extensions to Tcl +.BE + +.SH DESCRIPTION +.PP +\fB[incr\ Tcl]\fR provides object-oriented extensions to Tcl, much as +C++ provides object-oriented extensions to C. The emphasis of this +work, however, is not to create a whiz-bang object-oriented +programming environment. Rather, it is to support more structured +programming practices in Tcl without changing the flavor of the language. +More than anything else, \fB[incr\ Tcl]\fR provides a means of +encapsulating related procedures together with their shared data +in a namespace that is hidden from the outside world. +It encourages better programming by promoting the object-oriented +"library" mindset. It also allows for code re-use through inheritance. + +.SH CLASSES +.PP +The fundamental construct in \fB[incr\ Tcl]\fR is the class definition. +Each class acts as a template for actual objects that can be created. +Each object has its own unique bundle of data, which contains instances +of the "variables" defined in the class. Special procedures called +"methods" are used to manipulate individual objects. Methods are just +like the operations that are used to manipulate Tk widgets. The +"\fBbutton\fR" widget, for example, has methods such as "flash" and +"invoke" that cause a particular button to blink and invoke its command. +.PP +Within the body of a method, the "variables" defined in the class +are automatically available. They need not be declared with anything +like the \fBglobal\fR command. Within another class method, a method +can be invoked like any other command\-simply by using its name. +From any other context, the method name must be prefaced by an object +name, which provides a context for the data that the method can access. +.PP +Each class has its own namespace containing things that are common +to all objects which belong to the class. For example, "common" data +members are shared by all objects in the class. They are global +variables that exist in the class namespace, but since they are +included in the class definition, they need not be declared using +the \fBglobal\fR command; they are automatically available to any +code executing in the class context. A class can also create +ordinary global variables, but these must be declared using the +\fBglobal\fR command each time they are used. +.PP +Classes can also have ordinary procedures declared as "procs". +Within another class method or proc, a proc can be invoked like +any other command\-simply by using its name. From any other context, +the procedure name should be qualified with the class namespace +like "\fIclassName\fB::\fIproc\fR". Class procs execute in the +class context, and therefore have automatic access to all "common" +data members. However, they cannot access object-specific "variables", +since they are invoked without reference to any specific object. +They are usually used to perform generic operations which affect +all objects belonging to the class. +.PP +Each of the elements in a class can be declared "public", "protected" +or "private". Public elements can be accessed by the class, by +derived classes (other classes that inherit this class), and by +external clients that use the class. Protected elements can be +accessed by the class, and by derived classes. Private elements +are only accessible in the class where they are defined. +.PP +The "public" elements within a class define its interface to the +external world. Public methods define the operations that can +be used to manipulate an object. Public variables are recognized +as configuration options by the "configure" and "cget" methods +that are built into each class. The public interface says +\fIwhat\fR an object will do but not \fIhow\fR it will do it. +Protected and private members, along with the bodies of class +methods and procs, provide the implementation details. Insulating +the application developer from these details leaves the class designer +free to change them at any time, without warning, and without affecting +programs that rely on the class. It is precisely this encapsulation +that makes object-oriented programs easier to understand and maintain. +.PP +The fact that \fB[incr\ Tcl]\fR objects look like Tk widgets is +no accident. \fB[incr\ Tcl]\fR was designed this way, to blend +naturally into a Tcl/Tk application. But \fB[incr\ Tcl]\fR +extends the Tk paradigm from being merely object-based to being +fully object-oriented. An object-oriented system supports +inheritance, allowing classes to share common behaviors by +inheriting them from an ancestor or base class. Having a base +class as a common abstraction allows a programmer to treat +related classes in a similar manner. For example, a toaster +and a blender perform different (specialized) functions, but +both share the abstraction of being appliances. By abstracting +common behaviors into a base class, code can be \fIshared\fR rather +than \fIcopied\fR. The resulting application is easier to +understand and maintain, and derived classes (e.g., specialized +appliances) can be added or removed more easily. +.PP +This description was merely a brief overview of object-oriented +programming and \fB[incr\ Tcl]\fR. A more tutorial introduction is +presented in the paper included with this distribution. See the +\fBclass\fR command for more details on creating and using classes. + +.SH NAMESPACES +.PP +\fB[incr\ Tcl]\fR now includes a complete namespace facility. +A namespace is a collection of commands and global variables that +is kept apart from the usual global scope. This allows Tcl code +libraries to be packaged in a well-defined manner, and prevents +unwanted interactions with other libraries. A namespace can also +have child namespaces within it, so one library can contain its +own private copy of many other libraries. A namespace can also +be used to wrap up a group of related classes. The global scope +(named "\fC::\fR") is the root namespace for an interpreter; all +other namespaces are contained within it. +.PP +See the \fBnamespace\fR command for details on creating and +using namespaces. + +.SH MEGA-WIDGETS +.PP +Mega-widgets are high-level widgets that are constructed using +Tk widgets as component parts, usually without any C code. A +fileselectionbox, for example, may have a few listboxes, some +entry widgets and some control buttons. These individual widgets +are put together in a way that makes them act like one big +widget. +.PP +\fB[incr\ Tk]\fR is a framework for building mega-widgets. It +uses \fB[incr\ Tcl]\fR to support the object paradigm, and adds +base classes which provide default widget behaviors. See the +\fBitk\fR man page for more details. +.PP +\fB[incr\ Widgets]\fR is a library of mega-widgets built using +\fB[incr\ Tk]\fR. It contains more than 30 different widget +classes that can be used right out of the box to build Tcl/Tk +applications. Each widget class has its own man page describing +the features available. + +.SH KEYWORDS +class, object, object-oriented, namespace, mega-widget diff --git a/8.x/itcl/doc/itclvars.n b/8.x/itcl/doc/itclvars.n new file mode 100644 index 0000000..486c79e --- /dev/null +++ b/8.x/itcl/doc/itclvars.n @@ -0,0 +1,96 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: itclvars.n,v 1.3 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH itclvars n 3.0 itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +itclvars \- variables used by [incr\ Tcl] +.BE + +.SH DESCRIPTION +.PP +The following global variables are created and managed automatically +by the \fB[incr\ Tcl]\fR library. Except where noted below, these +variables should normally be treated as read-only by application-specific +code and by users. +.TP +\fBitcl::library\fR +When an interpreter is created, \fB[incr\ Tcl]\fR initializes this variable +to hold the name of a directory containing the system library of +\fB[incr\ Tcl]\fR scripts. The initial value of \fBitcl::library\fR +is set from the ITCL_LIBRARY environment variable if it exists, +or from a compiled-in value otherwise. +.TP +\fBitcl::patchLevel\fR +When an interpreter is created, \fB[incr\ Tcl]\fR initializes this +variable to hold the current patch level for \fB[incr\ Tcl]\fR. +For example, the value "\fB2.0p1\fR" indicates \fB[incr\ Tcl]\fR +version 2.0 with the first set of patches applied. +.TP +\fBitcl::purist\fR +When an interpreter is created containing Tcl/Tk and the +\fB[incr\ Tcl]\fR namespace facility, this variable controls +a "backward-compatibility" mode for widget access. +.sp +In vanilla Tcl/Tk, there is a single pool of commands, so the +access command for a widget is the same as the window name. +When a widget is created within a namespace, however, its access +command is installed in that namespace, and should be accessed +outside of the namespace using a qualified name. For example, +.CS +namespace foo { + namespace bar { + button .b -text "Testing" + } +} +foo::bar::.b configure -background red +pack .b +.CE +Note that the window name "\fC.b\fR" is still used in conjunction +with commands like \fBpack\fR and \fBdestroy\fR. However, the +access command for the widget (i.e., name that appears as the +\fIfirst\fR argument on a command line) must be more specific. +.sp +The "\fBwinfo command\fR" command can be used to query the +fully-qualified access command for any widget, so one can write: +.CS +[winfo command .b] configure -background red +.CE +and this is good practice when writing library procedures. Also, +in conjunction with the \fBbind\fR command, the "%q" field can be +used in place of "%W" as the access command: +.CS +bind Button {%q flash; %q invoke} +.CE +While this behavior makes sense from the standpoint of encapsulation, +it causes problems with existing Tcl/Tk applications. Many existing +applications are written with bindings that use "%W". Many +library procedures assume that the window name is the access +command. +.sp +The \fBitcl::purist\fR variable controls a backward-compatibility +mode. By default, this variable is "0", and the window name +can be used as an access command in any context. Whenever the +\fBunknown\fR procedure stumbles across a widget name, it simply +uses "\fBwinfo command\fR" to determine the appropriate command +name. If this variable is set to "1", this backward-compatibility +mode is disabled. This gives better encapsulation, but using the +window name as the access command may lead to "invalid command" +errors. +.TP +\fBitcl::version\fR +When an interpreter is created, \fB[incr\ Tcl]\fR initializes this +variable to hold the version number of the form \fIx.y\fR. +Changes to \fIx\fR represent major changes with probable +incompatibilities and changes to \fIy\fR represent small enhancements +and bug fixes that retain backward compatibility. + +.SH KEYWORDS +itcl, variables diff --git a/8.x/itcl/doc/license.terms b/8.x/itcl/doc/license.terms new file mode 100644 index 0000000..5ad5643 --- /dev/null +++ b/8.x/itcl/doc/license.terms @@ -0,0 +1,27 @@ +------------------------------------------------------------------------ +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [incr Tcl] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + AUTHOR: Michael J. McLennan + Bell Labs Innovations for Lucent Technologies + mmclennan@lucent.com + http://www.tcltk.com/itcl +======================================================================== + Copyright (c) 1993-1996 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 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. +======================================================================== diff --git a/8.x/itcl/doc/local.n b/8.x/itcl/doc/local.n new file mode 100644 index 0000000..f24b71c --- /dev/null +++ b/8.x/itcl/doc/local.n @@ -0,0 +1,75 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: local.n,v 1.4 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH local n "" itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +local \- create an object local to a procedure +.SH SYNOPSIS +\fBitcl::local \fIclassName objName\fR ?\fIarg arg ...\fR? +.BE + +.SH DESCRIPTION +.PP +The \fBlocal\fR command creates an \fB[incr\ Tcl]\fR object that +is local to the current call frame. When the call frame goes away, +the object is automatically deleted. This command is useful for +creating objects that are local to a procedure. +.PP +As a side effect, this command creates a variable named +"\fCitcl-local-\fIxxx\fR", where \fIxxx\fR is the name of +the object that is created. This variable detects when the +call frame is destroyed and automatically deletes the +associated object. + +.SH EXAMPLE +In the following example, a simple "counter" object is used +within the procedure "test". The counter is created as a +local object, so it is automatically deleted each time the +procedure exits. The \fBputs\fR statements included in the +constructor/destructor show the object coming and going +as the procedure is called. +.CS +itcl::class counter { + private variable count 0 + constructor {} { + puts "created: $this" + } + destructor { + puts "deleted: $this" + } + + method bump {{by 1}} { + incr count $by + } + method get {} { + return $count + } +} + +proc test {val} { + local counter x + for {set i 0} {$i < $val} {incr i} { + x bump + } + return [x get] +} + +set result [test 5] +puts "test: $result" + +set result [test 10] +puts "test: $result" + +puts "objects: [itcl::find objects *]" +.CE + +.SH KEYWORDS +class, object, procedure diff --git a/8.x/itcl/doc/man.macros b/8.x/itcl/doc/man.macros new file mode 100644 index 0000000..3af2da9 --- /dev/null +++ b/8.x/itcl/doc/man.macros @@ -0,0 +1,236 @@ +'\" The definitions below are for supplemental macros used in Tcl/Tk +'\" manual entries. +'\" +'\" .AP type name in/out ?indent? +'\" Start paragraph describing an argument to a library procedure. +'\" type is type of argument (int, etc.), in/out is either "in", "out", +'\" or "in/out" to describe whether procedure reads or modifies arg, +'\" and indent is equivalent to second arg of .IP (shouldn't ever be +'\" needed; use .AS below instead) +'\" +'\" .AS ?type? ?name? +'\" Give maximum sizes of arguments for setting tab stops. Type and +'\" name are examples of largest possible arguments that will be passed +'\" to .AP later. If args are omitted, default tab stops are used. +'\" +'\" .BS +'\" Start box enclosure. From here until next .BE, everything will be +'\" enclosed in one large box. +'\" +'\" .BE +'\" End of box enclosure. +'\" +'\" .CS +'\" Begin code excerpt. +'\" +'\" .CE +'\" End code excerpt. +'\" +'\" .VS ?version? ?br? +'\" Begin vertical sidebar, for use in marking newly-changed parts +'\" of man pages. The first argument is ignored and used for recording +'\" the version when the .VS was added, so that the sidebars can be +'\" found and removed when they reach a certain age. If another argument +'\" is present, then a line break is forced before starting the sidebar. +'\" +'\" .VE +'\" End of vertical sidebar. +'\" +'\" .DS +'\" Begin an indented unfilled display. +'\" +'\" .DE +'\" End of indented unfilled display. +'\" +'\" .SO +'\" Start of list of standard options for a Tk widget. The +'\" options follow on successive lines, in four columns separated +'\" by tabs. +'\" +'\" .SE +'\" End of list of standard options for a Tk widget. +'\" +'\" .OP cmdName dbName dbClass +'\" Start of description of a specific option. cmdName gives the +'\" option's name as specified in the class command, dbName gives +'\" the option's name in the option database, and dbClass gives +'\" the option's class in the option database. +'\" +'\" .UL arg1 arg2 +'\" Print arg1 underlined, then print arg2 normally. +'\" +'\" SCCS: @(#) man.macros 1.9 97/08/22 18:50:59 +'\" +'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +'\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ie !"\\$3"" \{\ +.ta \\n()Au \\n()Bu +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +'\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +'\" # BS - start boxed text +'\" # ^y = starting y location +'\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +'\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +'\" # VS - start vertical sidebar +'\" # ^Y = starting y location +'\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +'\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +'\" # Special macro to handle page bottom: finish off current +'\" # box/sidebar if in box/sidebar mode, then invoked standard +'\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +'\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +'\" # DE - end display +.de DE +.fi +.RE +.sp +.. +'\" # SO - start of list of standard options +.de SO +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 4c 8c 12c +.ft B +.. +'\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\fBoptions\\fR manual entry for details on the standard options. +.. +'\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +'\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +'\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.de UL +\\$1\l'|0\(ul'\\$2 +.. diff --git a/8.x/itcl/doc/scope.n b/8.x/itcl/doc/scope.n new file mode 100644 index 0000000..576c6f0 --- /dev/null +++ b/8.x/itcl/doc/scope.n @@ -0,0 +1,77 @@ +'\" +'\" Copyright (c) 1993-1998 Lucent Technologies, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: $Id: scope.n,v 1.7 2004/09/25 22:50:43 davygrvy Exp $ +'\" +.so man.macros +.TH scope n "" itcl "[incr\ Tcl]" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +scope \- capture the namespace context for a variable +.SH SYNOPSIS +\fBitcl::scope \fIname\fR +.BE + +.SH DESCRIPTION +.PP +Creates a scoped value for the specified \fIname\fR, which must +be a variable name. If the \fIname\fR is an instance variable, +then the scope command returns a string of the following form: +.CS +@itcl \fIobject varName\fP +.CE +This is recognized in any context as an instance variable belonging +to \fIobject\fR. So with itcl3.0 and beyond, it is possible to use +instance variables in conjunction with widgets. For example, if you +have an object with a private variable \fCx\fR, and you can use +\fCx\fR in conjunction with the \fC-textvariable\fR option of an +entry widget. Before itcl3.0, only common variables could be used +in this manner. +.PP +If the \fIname\fR is not an instance variable, then it must be +a common variable or a global variable. In that case, the scope +command returns the fully qualified name of the variable, e.g., +\fC::foo::bar::x\fR. +.PP +If the \fIname\fR is not recognized as a variable, the scope +command returns an error. +.PP +Ordinary variable names refer to variables in the global namespace. +A scoped value captures a variable name together with its namespace +context in a way that allows it to be referenced properly later. +It is needed, for example, to wrap up variable names when a Tk +widget is used within a namespace: +.CS +namespace foo { + private variable mode 1 + + radiobutton .rb1 -text "Mode #1" \ + -variable [scope mode] -value 1 + pack .rb1 + + radiobutton .rb2 -text "Mode #2" \ + -variable [scope mode] -value 2 + pack .rb2 +} +.CE +Radiobuttons \fC.rb1\fR and \fC.rb2\fR interact via the variable +"mode" contained in the namespace "foo". The \fBscope\fR command +guarantees this by returning the fully qualified variable name +\fC::foo::mode\fR. +.PP +You should never use the \fC@itcl\fR syntax directly. For example, +it is a bad idea to write code like this: +.CS +set {@itcl ::fred x} 3 +puts "value = ${@itcl ::fred x}" +.CE +Instead, you should always use the scope command to generate the +variable name dynamically. Then, you can pass that name to a widget +or to any other bit of code in your program. + +.SH KEYWORDS +code, namespace, variable diff --git a/8.x/itcl/generic/itcl.decls b/8.x/itcl/generic/itcl.decls new file mode 100644 index 0000000..0c29022 --- /dev/null +++ b/8.x/itcl/generic/itcl.decls @@ -0,0 +1,112 @@ +# itcl.decls -- +# +# This file contains the declarations for all supported public +# functions that are exported by the Itcl library via the stubs table. +# This file is used to generate the itclDecls.h, itclPlatDecls.h, +# itclStub.c, and itclPlatStub.c files. +# +# +# Copyright (c) 1998-1999 by Scriptics Corporation. +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: $Id: itcl.decls,v 1.3 2003/12/17 02:25:37 davygrvy Exp $ + +library itcl + +# Define the itcl interface with several sub interfaces: +# itclPlat - platform specific public +# itclInt - generic private +# itclPlatInt - platform specific private + +interface itcl +hooks {itclInt} + +# Declare each of the functions in the public Tcl interface. Note that +# the an index should never be reused for a different function in order +# to preserve backwards compatibility. + +declare 0 generic { + int Itcl_Init(Tcl_Interp *interp) +} +declare 1 generic { + int Itcl_SafeInit(Tcl_Interp *interp) +} +declare 2 generic { + int Itcl_RegisterC(Tcl_Interp *interp, CONST char *name, \ + Tcl_CmdProc *proc, ClientData clientData, \ + Tcl_CmdDeleteProc *deleteProc) +} +declare 3 generic { + int Itcl_RegisterObjC (Tcl_Interp *interp, CONST char *name, \ + Tcl_ObjCmdProc *proc, ClientData clientData, \ + Tcl_CmdDeleteProc *deleteProc) +} +declare 4 generic { + int Itcl_FindC(Tcl_Interp *interp, CONST char *name, \ + Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, \ + ClientData *cDataPtr) +} +declare 5 generic { + void Itcl_InitStack(Itcl_Stack *stack) +} +declare 6 generic { + void Itcl_DeleteStack(Itcl_Stack *stack) +} +declare 7 generic { + void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack) +} +declare 8 generic { + ClientData Itcl_PopStack(Itcl_Stack *stack) +} +declare 9 generic { + ClientData Itcl_PeekStack(Itcl_Stack *stack) +} +declare 10 generic { + ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos) +} +declare 11 generic { + void Itcl_InitList(Itcl_List *listPtr) +} +declare 12 generic { + void Itcl_DeleteList(Itcl_List *listPtr) +} +declare 13 generic { + Itcl_ListElem* Itcl_CreateListElem(Itcl_List *listPtr) +} +declare 14 generic { + Itcl_ListElem* Itcl_DeleteListElem(Itcl_ListElem *elemPtr) +} +declare 15 generic { + Itcl_ListElem* Itcl_InsertList(Itcl_List *listPtr, ClientData val) +} +declare 16 generic { + Itcl_ListElem* Itcl_InsertListElem (Itcl_ListElem *pos, ClientData val) +} +declare 17 generic { + Itcl_ListElem* Itcl_AppendList(Itcl_List *listPtr, ClientData val) +} +declare 18 generic { + Itcl_ListElem* Itcl_AppendListElem(Itcl_ListElem *pos, ClientData val) +} +declare 19 generic { + void Itcl_SetListValue(Itcl_ListElem *elemPtr, ClientData val) +} +declare 20 generic { + void Itcl_EventuallyFree(ClientData cdata, Tcl_FreeProc *fproc) +} +declare 21 generic { + void Itcl_PreserveData(ClientData cdata) +} +declare 22 generic { + void Itcl_ReleaseData(ClientData cdata) +} +declare 23 generic { + Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp* interp, int status) +} +declare 24 generic { + int Itcl_RestoreInterpState(Tcl_Interp* interp, Itcl_InterpState state) +} +declare 25 generic { + void Itcl_DiscardInterpState(Itcl_InterpState state) +} diff --git a/8.x/itcl/generic/itcl.h b/8.x/itcl/generic/itcl.h new file mode 100644 index 0000000..89f39e7 --- /dev/null +++ b/8.x/itcl/generic/itcl.h @@ -0,0 +1,233 @@ +/* + * ------------------------------------------------------------------------ + * PACKAGE: [incr Tcl] + * DESCRIPTION: Object-Oriented Extensions to Tcl + * + * [incr Tcl] provides object-oriented extensions to Tcl, much as + * C++ provides object-oriented extensions to C. It provides a means + * of encapsulating related procedures together with their shared data + * in a local namespace that is hidden from the outside world. It + * promotes code re-use through inheritance. More than anything else, + * it encourages better organization of Tcl applications through the + * object-oriented paradigm, leading to code that is easier to + * understand and maintain. + * + * ADDING [incr Tcl] TO A Tcl-BASED APPLICATION: + * + * To add [incr Tcl] facilities to a Tcl application, modify the + * Tcl_AppInit() routine as follows: + * + * 1) Include this header file near the top of the file containing + * Tcl_AppInit(): + * + * #include "itcl.h" + * + * 2) Within the body of Tcl_AppInit(), add the following lines: + * + * if (Itcl_Init(interp) == TCL_ERROR) { + * return TCL_ERROR; + * } + * + * 3) Link your application with libitcl.a + * + * NOTE: An example file "tclAppInit.c" containing the changes shown + * above is included in this distribution. + * + * ======================================================================== + * AUTHOR: Michael J. McLennan + * Bell Labs Innovations for Lucent Technologies + * mmclennan@lucent.com + * http://www.tcltk.com/itcl + * + * RCS: $Id: itcl.h,v 1.31 2007/05/24 22:15:41 hobbs Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ +#ifndef ITCL_H +#define ITCL_H + +#include "tcl.h" + +#ifndef TCL_ALPHA_RELEASE +# define TCL_ALPHA_RELEASE 0 +#endif +#ifndef TCL_BETA_RELEASE +# define TCL_BETA_RELEASE 1 +#endif +#ifndef TCL_FINAL_RELEASE +# define TCL_FINAL_RELEASE 2 +#endif + + +#define ITCL_MAJOR_VERSION 3 +#define ITCL_MINOR_VERSION 4 +#define ITCL_RELEASE_LEVEL TCL_FINAL_RELEASE +#define ITCL_RELEASE_SERIAL 0 + +#define ITCL_VERSION "3.4" +#define ITCL_PATCH_LEVEL "3.4.0" + +/* + * A special definition used to allow this header file to be included + * in resource files so that they can get obtain version information from + * this file. Resource compilers don't like all the C stuff, like typedefs + * and procedure declarations, that occur below. + */ + +#ifndef RC_INVOKED + +#undef TCL_STORAGE_CLASS +#ifdef BUILD_itcl +# define TCL_STORAGE_CLASS DLLEXPORT +#else +# ifdef USE_ITCL_STUBS +# define TCL_STORAGE_CLASS +# else +# define TCL_STORAGE_CLASS DLLIMPORT +# endif +#endif + +/* + * Fix the Borland bug that's in the EXTERN macro from tcl.h. + */ +#ifndef TCL_EXTERN +# undef DLLIMPORT +# undef DLLEXPORT +# ifdef __cplusplus +# define TCL_EXTERNC extern "C" +# else +# define TCL_EXTERNC extern +# endif +# if defined(STATIC_BUILD) +# define DLLIMPORT +# define DLLEXPORT +# define TCL_EXTERN(RTYPE) TCL_EXTERNC RTYPE +# elif (defined(__WIN32__) && ( \ + defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || \ + defined(__LCC__) || defined(__WATCOMC__) || \ + (defined(__GNUC__) && defined(__declspec)) \ + )) || (defined(MAC_TCL) && FUNCTION_DECLSPEC) +# define DLLIMPORT __declspec(dllimport) +# define DLLEXPORT __declspec(dllexport) +# define TCL_EXTERN(RTYPE) TCL_EXTERNC TCL_STORAGE_CLASS RTYPE +# elif defined(__BORLANDC__) +# define DLLIMPORT __import +# define DLLEXPORT __export + /* Pre-5.5 Borland requires the attributes be placed after the */ + /* return type instead. */ +# define TCL_EXTERN(RTYPE) TCL_EXTERNC RTYPE TCL_STORAGE_CLASS +# else +# define DLLIMPORT +# define DLLEXPORT +# define TCL_EXTERN(RTYPE) TCL_EXTERNC TCL_STORAGE_CLASS RTYPE +# endif +#endif + + +/* + * Starting from the 8.4 core, Tcl API is CONST'ified. Our API is always + * CONST, but we need to build with Tcl when it isn't CONST and fake it + * when needed with <= 8.3 + * + * http://wiki.tcl.tk/3669 + */ + +#ifndef CONST84 +# define CONST84 +#endif + + +/* + * Protection levels: + * + * ITCL_PUBLIC - accessible from any namespace + * ITCL_PROTECTED - accessible from namespace that imports in "protected" mode + * ITCL_PRIVATE - accessible only within the namespace that contains it + */ +#define ITCL_PUBLIC 1 +#define ITCL_PROTECTED 2 +#define ITCL_PRIVATE 3 +#define ITCL_DEFAULT_PROTECT 4 + + +/* + * Generic stack. + */ +typedef struct Itcl_Stack { + ClientData *values; /* values on stack */ + int len; /* number of values on stack */ + int max; /* maximum size of stack */ + ClientData space[5]; /* initial space for stack data */ +} Itcl_Stack; + +#define Itcl_GetStackSize(stackPtr) ((stackPtr)->len) + +/* + * Generic linked list. + */ +struct Itcl_List; +typedef struct Itcl_ListElem { + struct Itcl_List* owner; /* list containing this element */ + ClientData value; /* value associated with this element */ + struct Itcl_ListElem *prev; /* previous element in linked list */ + struct Itcl_ListElem *next; /* next element in linked list */ +} Itcl_ListElem; + +typedef struct Itcl_List { + int validate; /* validation stamp */ + int num; /* number of elements */ + struct Itcl_ListElem *head; /* previous element in linked list */ + struct Itcl_ListElem *tail; /* next element in linked list */ +} Itcl_List; + +#define Itcl_FirstListElem(listPtr) ((listPtr)->head) +#define Itcl_LastListElem(listPtr) ((listPtr)->tail) +#define Itcl_NextListElem(elemPtr) ((elemPtr)->next) +#define Itcl_PrevListElem(elemPtr) ((elemPtr)->prev) +#define Itcl_GetListLength(listPtr) ((listPtr)->num) +#define Itcl_GetListValue(elemPtr) ((elemPtr)->value) + +/* + * Token representing the state of an interpreter. + */ +typedef struct Itcl_InterpState_ *Itcl_InterpState; + + +/* + * Include the public function declarations that are accessible via + * the stubs table. + */ + +#include "itclDecls.h" + + +/* + * Itcl_InitStubs is used by extensions like Itk that can be linked + * against the itcl stubs library. If we are not using stubs + * then this reduces to package require. + */ + +#ifdef USE_ITCL_STUBS + +TCL_EXTERNC CONST char * + Itcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, + CONST char *version, int exact)); +#else +#define Itcl_InitStubs(interp, version, exact) \ + Tcl_PkgRequire(interp, "Itcl", version, exact) +#endif + +/* + * Public functions that are not accessible via the stubs table. + */ + + +#endif /* RC_INVOKED */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* ITCL_H */ diff --git a/8.x/itcl/generic/itclDecls.h b/8.x/itcl/generic/itclDecls.h new file mode 100644 index 0000000..fe49ec8 --- /dev/null +++ b/8.x/itcl/generic/itclDecls.h @@ -0,0 +1,334 @@ +/* + * itclDecls.h -- + * + * Declarations of functions in the platform independent public Itcl API. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: $Id: itclDecls.h,v 1.9 2003/12/23 05:22:45 davygrvy Exp $ + */ + +#ifndef _ITCLDECLS +#define _ITCLDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the itcl/generic/tcl.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifndef Itcl_Init_TCL_DECLARED +#define Itcl_Init_TCL_DECLARED +/* 0 */ +TCL_EXTERN(int) Itcl_Init _ANSI_ARGS_((Tcl_Interp * interp)); +#endif +#ifndef Itcl_SafeInit_TCL_DECLARED +#define Itcl_SafeInit_TCL_DECLARED +/* 1 */ +TCL_EXTERN(int) Itcl_SafeInit _ANSI_ARGS_((Tcl_Interp * interp)); +#endif +#ifndef Itcl_RegisterC_TCL_DECLARED +#define Itcl_RegisterC_TCL_DECLARED +/* 2 */ +TCL_EXTERN(int) Itcl_RegisterC _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * name, Tcl_CmdProc * proc, + ClientData clientData, + Tcl_CmdDeleteProc * deleteProc)); +#endif +#ifndef Itcl_RegisterObjC_TCL_DECLARED +#define Itcl_RegisterObjC_TCL_DECLARED +/* 3 */ +TCL_EXTERN(int) Itcl_RegisterObjC _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * name, Tcl_ObjCmdProc * proc, + ClientData clientData, + Tcl_CmdDeleteProc * deleteProc)); +#endif +#ifndef Itcl_FindC_TCL_DECLARED +#define Itcl_FindC_TCL_DECLARED +/* 4 */ +TCL_EXTERN(int) Itcl_FindC _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * name, Tcl_CmdProc ** argProcPtr, + Tcl_ObjCmdProc ** objProcPtr, + ClientData * cDataPtr)); +#endif +#ifndef Itcl_InitStack_TCL_DECLARED +#define Itcl_InitStack_TCL_DECLARED +/* 5 */ +TCL_EXTERN(void) Itcl_InitStack _ANSI_ARGS_((Itcl_Stack * stack)); +#endif +#ifndef Itcl_DeleteStack_TCL_DECLARED +#define Itcl_DeleteStack_TCL_DECLARED +/* 6 */ +TCL_EXTERN(void) Itcl_DeleteStack _ANSI_ARGS_((Itcl_Stack * stack)); +#endif +#ifndef Itcl_PushStack_TCL_DECLARED +#define Itcl_PushStack_TCL_DECLARED +/* 7 */ +TCL_EXTERN(void) Itcl_PushStack _ANSI_ARGS_((ClientData cdata, + Itcl_Stack * stack)); +#endif +#ifndef Itcl_PopStack_TCL_DECLARED +#define Itcl_PopStack_TCL_DECLARED +/* 8 */ +TCL_EXTERN(ClientData) Itcl_PopStack _ANSI_ARGS_((Itcl_Stack * stack)); +#endif +#ifndef Itcl_PeekStack_TCL_DECLARED +#define Itcl_PeekStack_TCL_DECLARED +/* 9 */ +TCL_EXTERN(ClientData) Itcl_PeekStack _ANSI_ARGS_((Itcl_Stack * stack)); +#endif +#ifndef Itcl_GetStackValue_TCL_DECLARED +#define Itcl_GetStackValue_TCL_DECLARED +/* 10 */ +TCL_EXTERN(ClientData) Itcl_GetStackValue _ANSI_ARGS_((Itcl_Stack * stack, + int pos)); +#endif +#ifndef Itcl_InitList_TCL_DECLARED +#define Itcl_InitList_TCL_DECLARED +/* 11 */ +TCL_EXTERN(void) Itcl_InitList _ANSI_ARGS_((Itcl_List * listPtr)); +#endif +#ifndef Itcl_DeleteList_TCL_DECLARED +#define Itcl_DeleteList_TCL_DECLARED +/* 12 */ +TCL_EXTERN(void) Itcl_DeleteList _ANSI_ARGS_((Itcl_List * listPtr)); +#endif +#ifndef Itcl_CreateListElem_TCL_DECLARED +#define Itcl_CreateListElem_TCL_DECLARED +/* 13 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_CreateListElem _ANSI_ARGS_(( + Itcl_List * listPtr)); +#endif +#ifndef Itcl_DeleteListElem_TCL_DECLARED +#define Itcl_DeleteListElem_TCL_DECLARED +/* 14 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_DeleteListElem _ANSI_ARGS_(( + Itcl_ListElem * elemPtr)); +#endif +#ifndef Itcl_InsertList_TCL_DECLARED +#define Itcl_InsertList_TCL_DECLARED +/* 15 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_InsertList _ANSI_ARGS_((Itcl_List * listPtr, + ClientData val)); +#endif +#ifndef Itcl_InsertListElem_TCL_DECLARED +#define Itcl_InsertListElem_TCL_DECLARED +/* 16 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_InsertListElem _ANSI_ARGS_(( + Itcl_ListElem * pos, ClientData val)); +#endif +#ifndef Itcl_AppendList_TCL_DECLARED +#define Itcl_AppendList_TCL_DECLARED +/* 17 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_AppendList _ANSI_ARGS_((Itcl_List * listPtr, + ClientData val)); +#endif +#ifndef Itcl_AppendListElem_TCL_DECLARED +#define Itcl_AppendListElem_TCL_DECLARED +/* 18 */ +TCL_EXTERN(Itcl_ListElem*) Itcl_AppendListElem _ANSI_ARGS_(( + Itcl_ListElem * pos, ClientData val)); +#endif +#ifndef Itcl_SetListValue_TCL_DECLARED +#define Itcl_SetListValue_TCL_DECLARED +/* 19 */ +TCL_EXTERN(void) Itcl_SetListValue _ANSI_ARGS_(( + Itcl_ListElem * elemPtr, ClientData val)); +#endif +#ifndef Itcl_EventuallyFree_TCL_DECLARED +#define Itcl_EventuallyFree_TCL_DECLARED +/* 20 */ +TCL_EXTERN(void) Itcl_EventuallyFree _ANSI_ARGS_((ClientData cdata, + Tcl_FreeProc * fproc)); +#endif +#ifndef Itcl_PreserveData_TCL_DECLARED +#define Itcl_PreserveData_TCL_DECLARED +/* 21 */ +TCL_EXTERN(void) Itcl_PreserveData _ANSI_ARGS_((ClientData cdata)); +#endif +#ifndef Itcl_ReleaseData_TCL_DECLARED +#define Itcl_ReleaseData_TCL_DECLARED +/* 22 */ +TCL_EXTERN(void) Itcl_ReleaseData _ANSI_ARGS_((ClientData cdata)); +#endif +#ifndef Itcl_SaveInterpState_TCL_DECLARED +#define Itcl_SaveInterpState_TCL_DECLARED +/* 23 */ +TCL_EXTERN(Itcl_InterpState) Itcl_SaveInterpState _ANSI_ARGS_(( + Tcl_Interp* interp, int status)); +#endif +#ifndef Itcl_RestoreInterpState_TCL_DECLARED +#define Itcl_RestoreInterpState_TCL_DECLARED +/* 24 */ +TCL_EXTERN(int) Itcl_RestoreInterpState _ANSI_ARGS_(( + Tcl_Interp* interp, Itcl_InterpState state)); +#endif +#ifndef Itcl_DiscardInterpState_TCL_DECLARED +#define Itcl_DiscardInterpState_TCL_DECLARED +/* 25 */ +TCL_EXTERN(void) Itcl_DiscardInterpState _ANSI_ARGS_(( + Itcl_InterpState state)); +#endif + +typedef struct ItclStubHooks { + struct ItclIntStubs *itclIntStubs; +} ItclStubHooks; + +typedef struct ItclStubs { + int magic; + struct ItclStubHooks *hooks; + + int (*itcl_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */ + int (*itcl_SafeInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */ + int (*itcl_RegisterC) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 2 */ + int (*itcl_RegisterObjC) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 3 */ + int (*itcl_FindC) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_CmdProc ** argProcPtr, Tcl_ObjCmdProc ** objProcPtr, ClientData * cDataPtr)); /* 4 */ + void (*itcl_InitStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 5 */ + void (*itcl_DeleteStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 6 */ + void (*itcl_PushStack) _ANSI_ARGS_((ClientData cdata, Itcl_Stack * stack)); /* 7 */ + ClientData (*itcl_PopStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 8 */ + ClientData (*itcl_PeekStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 9 */ + ClientData (*itcl_GetStackValue) _ANSI_ARGS_((Itcl_Stack * stack, int pos)); /* 10 */ + void (*itcl_InitList) _ANSI_ARGS_((Itcl_List * listPtr)); /* 11 */ + void (*itcl_DeleteList) _ANSI_ARGS_((Itcl_List * listPtr)); /* 12 */ + Itcl_ListElem* (*itcl_CreateListElem) _ANSI_ARGS_((Itcl_List * listPtr)); /* 13 */ + Itcl_ListElem* (*itcl_DeleteListElem) _ANSI_ARGS_((Itcl_ListElem * elemPtr)); /* 14 */ + Itcl_ListElem* (*itcl_InsertList) _ANSI_ARGS_((Itcl_List * listPtr, ClientData val)); /* 15 */ + Itcl_ListElem* (*itcl_InsertListElem) _ANSI_ARGS_((Itcl_ListElem * pos, ClientData val)); /* 16 */ + Itcl_ListElem* (*itcl_AppendList) _ANSI_ARGS_((Itcl_List * listPtr, ClientData val)); /* 17 */ + Itcl_ListElem* (*itcl_AppendListElem) _ANSI_ARGS_((Itcl_ListElem * pos, ClientData val)); /* 18 */ + void (*itcl_SetListValue) _ANSI_ARGS_((Itcl_ListElem * elemPtr, ClientData val)); /* 19 */ + void (*itcl_EventuallyFree) _ANSI_ARGS_((ClientData cdata, Tcl_FreeProc * fproc)); /* 20 */ + void (*itcl_PreserveData) _ANSI_ARGS_((ClientData cdata)); /* 21 */ + void (*itcl_ReleaseData) _ANSI_ARGS_((ClientData cdata)); /* 22 */ + Itcl_InterpState (*itcl_SaveInterpState) _ANSI_ARGS_((Tcl_Interp* interp, int status)); /* 23 */ + int (*itcl_RestoreInterpState) _ANSI_ARGS_((Tcl_Interp* interp, Itcl_InterpState state)); /* 24 */ + void (*itcl_DiscardInterpState) _ANSI_ARGS_((Itcl_InterpState state)); /* 25 */ +} ItclStubs; + +TCL_EXTERNC ItclStubs *itclStubsPtr; + +#if defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef Itcl_Init +#define Itcl_Init \ + (itclStubsPtr->itcl_Init) /* 0 */ +#endif +#ifndef Itcl_SafeInit +#define Itcl_SafeInit \ + (itclStubsPtr->itcl_SafeInit) /* 1 */ +#endif +#ifndef Itcl_RegisterC +#define Itcl_RegisterC \ + (itclStubsPtr->itcl_RegisterC) /* 2 */ +#endif +#ifndef Itcl_RegisterObjC +#define Itcl_RegisterObjC \ + (itclStubsPtr->itcl_RegisterObjC) /* 3 */ +#endif +#ifndef Itcl_FindC +#define Itcl_FindC \ + (itclStubsPtr->itcl_FindC) /* 4 */ +#endif +#ifndef Itcl_InitStack +#define Itcl_InitStack \ + (itclStubsPtr->itcl_InitStack) /* 5 */ +#endif +#ifndef Itcl_DeleteStack +#define Itcl_DeleteStack \ + (itclStubsPtr->itcl_DeleteStack) /* 6 */ +#endif +#ifndef Itcl_PushStack +#define Itcl_PushStack \ + (itclStubsPtr->itcl_PushStack) /* 7 */ +#endif +#ifndef Itcl_PopStack +#define Itcl_PopStack \ + (itclStubsPtr->itcl_PopStack) /* 8 */ +#endif +#ifndef Itcl_PeekStack +#define Itcl_PeekStack \ + (itclStubsPtr->itcl_PeekStack) /* 9 */ +#endif +#ifndef Itcl_GetStackValue +#define Itcl_GetStackValue \ + (itclStubsPtr->itcl_GetStackValue) /* 10 */ +#endif +#ifndef Itcl_InitList +#define Itcl_InitList \ + (itclStubsPtr->itcl_InitList) /* 11 */ +#endif +#ifndef Itcl_DeleteList +#define Itcl_DeleteList \ + (itclStubsPtr->itcl_DeleteList) /* 12 */ +#endif +#ifndef Itcl_CreateListElem +#define Itcl_CreateListElem \ + (itclStubsPtr->itcl_CreateListElem) /* 13 */ +#endif +#ifndef Itcl_DeleteListElem +#define Itcl_DeleteListElem \ + (itclStubsPtr->itcl_DeleteListElem) /* 14 */ +#endif +#ifndef Itcl_InsertList +#define Itcl_InsertList \ + (itclStubsPtr->itcl_InsertList) /* 15 */ +#endif +#ifndef Itcl_InsertListElem +#define Itcl_InsertListElem \ + (itclStubsPtr->itcl_InsertListElem) /* 16 */ +#endif +#ifndef Itcl_AppendList +#define Itcl_AppendList \ + (itclStubsPtr->itcl_AppendList) /* 17 */ +#endif +#ifndef Itcl_AppendListElem +#define Itcl_AppendListElem \ + (itclStubsPtr->itcl_AppendListElem) /* 18 */ +#endif +#ifndef Itcl_SetListValue +#define Itcl_SetListValue \ + (itclStubsPtr->itcl_SetListValue) /* 19 */ +#endif +#ifndef Itcl_EventuallyFree +#define Itcl_EventuallyFree \ + (itclStubsPtr->itcl_EventuallyFree) /* 20 */ +#endif +#ifndef Itcl_PreserveData +#define Itcl_PreserveData \ + (itclStubsPtr->itcl_PreserveData) /* 21 */ +#endif +#ifndef Itcl_ReleaseData +#define Itcl_ReleaseData \ + (itclStubsPtr->itcl_ReleaseData) /* 22 */ +#endif +#ifndef Itcl_SaveInterpState +#define Itcl_SaveInterpState \ + (itclStubsPtr->itcl_SaveInterpState) /* 23 */ +#endif +#ifndef Itcl_RestoreInterpState +#define Itcl_RestoreInterpState \ + (itclStubsPtr->itcl_RestoreInterpState) /* 24 */ +#endif +#ifndef Itcl_DiscardInterpState +#define Itcl_DiscardInterpState \ + (itclStubsPtr->itcl_DiscardInterpState) /* 25 */ +#endif + +#endif /* defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _ITCLDECLS */ + diff --git a/8.x/itcl/generic/itclInt.decls b/8.x/itcl/generic/itclInt.decls new file mode 100644 index 0000000..bcb8dce --- /dev/null +++ b/8.x/itcl/generic/itclInt.decls @@ -0,0 +1,513 @@ +# itclInt.decls -- +# +# This file contains the declarations for all unsupported +# functions that are exported by the Itcl library. +# +# By "unsupported", it should be noted that due to Tcl's hiding +# of the data types used, we inherit this hidden-ness ourselves, +# too, unfortunately. +# +# Copyright (c) 1998-1999 by Scriptics Corporation. +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: itclInt.decls,v 1.9 2007/05/24 21:40:23 hobbs Exp $ + +library itcl + +# Define the unsupported generic interfaces. + +interface itclInt + + +# +# Functions used within the package, but not considered "public" +# + +declare 0 generic { + int Itcl_IsClassNamespace(Tcl_Namespace *namesp) +} +declare 1 generic { + int Itcl_IsClass (Tcl_Command cmd) +} +declare 2 generic { + ItclClass* Itcl_FindClass (Tcl_Interp* interp, CONST char* path, int autoload) +} +declare 3 generic { + int Itcl_FindObject (Tcl_Interp *interp, CONST char *name, ItclObject **roPtr) +} +declare 4 generic { + int Itcl_IsObject (Tcl_Command cmd) +} +declare 5 generic { + int Itcl_ObjectIsa (ItclObject *contextObj, ItclClass *cdefn) +} +declare 6 generic { + int Itcl_Protection (Tcl_Interp *interp, int newLevel) +} +declare 7 generic { + char* Itcl_ProtectionStr (int pLevel) +} +declare 8 generic { + int Itcl_CanAccess (ItclMember* memberPtr, Tcl_Namespace* fromNsPtr) +} +declare 9 generic { + int Itcl_CanAccessFunc (ItclMemberFunc* mfunc, Tcl_Namespace* fromNsPtr) +} +declare 10 generic { + Tcl_Namespace* Itcl_GetTrueNamespace (Tcl_Interp *interp, \ + ItclObjectInfo *info) +} +declare 11 generic { + void Itcl_ParseNamespPath (CONST char *name, Tcl_DString *buffer, \ + char **head, char **tail) +} +declare 12 generic { + int Itcl_DecodeScopedCommand (Tcl_Interp *interp, CONST char *name, \ + Tcl_Namespace **rNsPtr, char **rCmdPtr) +} +declare 13 generic { + int Itcl_EvalArgs (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) +} +declare 14 generic { + Tcl_Obj* Itcl_CreateArgs (Tcl_Interp *interp, CONST char *string, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 15 generic { + int Itcl_PushContext (Tcl_Interp *interp, ItclMember *member, \ + ItclClass *contextClass, ItclObject *contextObj, \ + ItclContext *contextPtr) +} +declare 16 generic { + void Itcl_PopContext (Tcl_Interp *interp, ItclContext *contextPtr) +} +declare 17 generic { + int Itcl_GetContext (Tcl_Interp *interp, ItclClass **cdefnPtr, \ + ItclObject **odefnPtr) +} +declare 18 generic { + void Itcl_InitHierIter (ItclHierIter *iter, ItclClass *cdefn) +} +declare 19 generic { + void Itcl_DeleteHierIter (ItclHierIter *iter) +} +declare 20 generic { + ItclClass* Itcl_AdvanceHierIter (ItclHierIter *iter) +} +declare 21 generic { + int Itcl_FindClassesCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 22 generic { + int Itcl_FindObjectsCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 23 generic { + int Itcl_ProtectionCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 24 generic { + int Itcl_DelClassCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 25 generic { + int Itcl_DelObjectCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 26 generic { + int Itcl_ScopeCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 27 generic { + int Itcl_CodeCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 28 generic { + int Itcl_StubCreateCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 29 generic { + int Itcl_StubExistsCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 30 generic { + int Itcl_IsStub (Tcl_Command cmd) +} + + +# +# Functions for manipulating classes +# + +declare 31 generic { + int Itcl_CreateClass (Tcl_Interp* interp, CONST char* path, \ + ItclObjectInfo *info, ItclClass **rPtr) +} +declare 32 generic { + int Itcl_DeleteClass (Tcl_Interp *interp, ItclClass *cdefnPtr) +} +declare 33 generic { + Tcl_Namespace* Itcl_FindClassNamespace (Tcl_Interp* interp, CONST char* path) +} +declare 34 generic { + int Itcl_HandleClass (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 35 generic { + int Itcl_ClassCmdResolver (Tcl_Interp *interp, CONST char* name, \ + Tcl_Namespace *context, int flags, Tcl_Command *rPtr) +} +declare 36 generic { + int Itcl_ClassVarResolver (Tcl_Interp *interp, CONST char* name, \ + Tcl_Namespace *context, int flags, Tcl_Var *rPtr) +} +declare 37 generic { + int Itcl_ClassCompiledVarResolver (Tcl_Interp *interp, CONST char* name, \ + int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr) +} +declare 38 generic { + void Itcl_BuildVirtualTables (ItclClass* cdefnPtr) +} +declare 39 generic { + int Itcl_CreateVarDefn (Tcl_Interp *interp, ItclClass* cdefn, \ + char* name, char* init, char* config, ItclVarDefn** vdefnPtr) +} +declare 40 generic { + void Itcl_DeleteVarDefn (ItclVarDefn *vdefn) +} +declare 41 generic { + CONST char* Itcl_GetCommonVar (Tcl_Interp *interp, CONST char *name, \ + ItclClass *contextClass) +} +declare 42 generic { + ItclMember* Itcl_CreateMember (Tcl_Interp* interp, ItclClass *cdefn, \ + CONST char* name) +} +declare 43 generic { + void Itcl_DeleteMember (ItclMember *memPtr) +} + + +# +# Functions for manipulating objects +# + +declare 44 generic { + int Itcl_CreateObject (Tcl_Interp *interp, CONST char* name, ItclClass *cdefn, \ + int objc, Tcl_Obj *CONST objv[], ItclObject **roPtr) +} +declare 45 generic { + int Itcl_DeleteObject (Tcl_Interp *interp, ItclObject *contextObj) +} +declare 46 generic { + int Itcl_DestructObject (Tcl_Interp *interp, ItclObject *contextObj, \ + int flags) +} +declare 47 generic { + int Itcl_HandleInstance (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 48 generic { + CONST char* Itcl_GetInstanceVar (Tcl_Interp *interp, CONST char *name, \ + ItclObject *contextObj, ItclClass *contextClass) +} +declare 49 generic { + int Itcl_ScopedVarResolver (Tcl_Interp *interp, CONST char *name, \ + Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr) +} + + +# +# Functions for manipulating methods and procs +# + +declare 50 generic { + int Itcl_BodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 51 generic { + int Itcl_ConfigBodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 52 generic { + int Itcl_CreateMethod (Tcl_Interp* interp, ItclClass *cdefn, + CONST char* name, CONST char* arglist, CONST char* body) +} +declare 53 generic { + int Itcl_CreateProc (Tcl_Interp* interp, ItclClass *cdefn, + CONST char* name, CONST char* arglist, CONST char* body) +} +declare 54 generic { + int Itcl_CreateMemberFunc (Tcl_Interp* interp, ItclClass *cdefn, \ + CONST char* name, CONST char* arglist, CONST char* body, \ + ItclMemberFunc** mfuncPtr) +} +declare 55 generic { + int Itcl_ChangeMemberFunc (Tcl_Interp* interp, ItclMemberFunc* mfunc, \ + CONST char* arglist, CONST char* body) +} +declare 56 generic { + void Itcl_DeleteMemberFunc (CONST char* cdata) +} +declare 57 generic { + int Itcl_CreateMemberCode (Tcl_Interp* interp, ItclClass *cdefn, \ + CONST char* arglist, CONST char* body, ItclMemberCode** mcodePtr) +} +declare 58 generic { + void Itcl_DeleteMemberCode (CONST char* cdata) +} +declare 59 generic { + int Itcl_GetMemberCode (Tcl_Interp* interp, ItclMember* member) +} +#declare 60 generic { +# int Itcl_CompileMemberCodeBody (Tcl_Interp *interp, ItclMember *member, \ +# char *desc, Tcl_Obj *bodyPtr) +#} +declare 61 generic { + int Itcl_EvalMemberCode (Tcl_Interp *interp, ItclMemberFunc *mfunc, \ + ItclMember *member, ItclObject *contextObj, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 62 generic { + int Itcl_CreateArgList (Tcl_Interp* interp, CONST char* decl, int* argcPtr, \ + CompiledLocal** argPtr) +} +declare 63 generic { + CompiledLocal* Itcl_CreateArg (CONST char* name, CONST char* init) +} +declare 64 generic { + void Itcl_DeleteArgList (CompiledLocal *arglist) +} +declare 65 generic { + Tcl_Obj* Itcl_ArgList (int argc, CompiledLocal* arglist) +} +declare 66 generic { + int Itcl_EquivArgLists (CompiledLocal* arg1, int arg1c, \ + CompiledLocal* arg2, int arg2c) +} +declare 67 generic { + void Itcl_GetMemberFuncUsage (ItclMemberFunc *mfunc, \ + ItclObject *contextObj, Tcl_Obj *objPtr) +} +declare 68 generic { + int Itcl_ExecMethod (ClientData clientData, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 69 generic { + int Itcl_ExecProc (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 70 generic { + int Itcl_AssignArgs (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], \ + ItclMemberFunc *mfunc) +} +declare 71 generic { + int Itcl_ConstructBase (Tcl_Interp *interp, ItclObject *contextObj, \ + ItclClass *contextClass) +} +declare 72 generic { + int Itcl_InvokeMethodIfExists (Tcl_Interp *interp, CONST char *name, \ + ItclClass *contextClass, ItclObject *contextObj, int objc, \ + Tcl_Obj *CONST objv[]) +} +#declare 73 generic { +# int Itcl_EvalBody (Tcl_Interp *interp, Tcl_Obj *bodyPtr) +#} +declare 74 generic { + int Itcl_ReportFuncErrors (Tcl_Interp* interp, ItclMemberFunc *mfunc, \ + ItclObject *contextObj, int result) +} + + +# +# Commands for parsing class definitions +# + +declare 75 generic { + int Itcl_ParseInit (Tcl_Interp *interp, ItclObjectInfo *info) +} +declare 76 generic { + int Itcl_ClassCmd (ClientData clientData, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 77 generic { + int Itcl_ClassInheritCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 78 generic { + int Itcl_ClassProtectionCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 79 generic { + int Itcl_ClassConstructorCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 80 generic { + int Itcl_ClassDestructorCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 81 generic { + int Itcl_ClassMethodCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 82 generic { + int Itcl_ClassProcCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 83 generic { + int Itcl_ClassVariableCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 84 generic { + int Itcl_ClassCommonCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 85 generic { + int Itcl_ParseVarResolver (Tcl_Interp *interp, CONST char* name, \ + Tcl_Namespace *contextNs, int flags, Tcl_Var* rPtr) +} + + +# +# Commands in the "builtin" namespace +# + +declare 86 generic { + int Itcl_BiInit (Tcl_Interp *interp) +} +declare 87 generic { + int Itcl_InstallBiMethods (Tcl_Interp *interp, ItclClass *cdefn) +} +declare 88 generic { + int Itcl_BiIsaCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 89 generic { + int Itcl_BiConfigureCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 90 generic { + int Itcl_BiCgetCmd (ClientData clientData, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 91 generic { + int Itcl_BiChainCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 92 generic { + int Itcl_BiInfoClassCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 93 generic { + int Itcl_BiInfoInheritCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 94 generic { + int Itcl_BiInfoHeritageCmd (ClientData dummy, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 95 generic { + int Itcl_BiInfoFunctionCmd (ClientData dummy, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 96 generic { + int Itcl_BiInfoVariableCmd (ClientData dummy, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 97 generic { + int Itcl_BiInfoBodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 98 generic { + int Itcl_BiInfoArgsCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 99 generic { + int Itcl_DefaultInfoCmd (ClientData dummy, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} + + +# +# Ensembles +# + +declare 100 generic { + int Itcl_EnsembleInit (Tcl_Interp *interp) +} +declare 101 generic { + int Itcl_CreateEnsemble (Tcl_Interp *interp, CONST char* ensName) +} +declare 102 generic { + int Itcl_AddEnsemblePart (Tcl_Interp *interp, CONST char* ensName, \ + CONST char* partName, CONST char* usageInfo, Tcl_ObjCmdProc *objProc, \ + ClientData clientData, Tcl_CmdDeleteProc *deleteProc) +} +declare 103 generic { + int Itcl_GetEnsemblePart (Tcl_Interp *interp, CONST char *ensName, \ + CONST char *partName, Tcl_CmdInfo *infoPtr) +} +declare 104 generic { + int Itcl_IsEnsemble (Tcl_CmdInfo* infoPtr) +} +declare 105 generic { + int Itcl_GetEnsembleUsage (Tcl_Interp *interp, CONST char *ensName, \ + Tcl_Obj *objPtr) +} +declare 106 generic { + int Itcl_GetEnsembleUsageForObj (Tcl_Interp *interp, Tcl_Obj *ensObjPtr, \ + Tcl_Obj *objPtr) +} +declare 107 generic { + int Itcl_EnsembleCmd (ClientData clientData, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 108 generic { + int Itcl_EnsPartCmd (ClientData clientData, Tcl_Interp *interp, int objc, \ + Tcl_Obj *CONST objv[]) +} +declare 109 generic { + int Itcl_EnsembleErrorCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} + + +# +# Commands provided for backward compatibility +# + +# not used anymore (3.3) +#declare 110 generic { +# int Itcl_OldInit (Tcl_Interp* interp, ItclObjectInfo* info) +#} +#declare 111 generic { +# int Itcl_InstallOldBiMethods (Tcl_Interp *interp, ItclClass *cdefn) +#} + + +# +# Things that should be in the Tcl core. +# + +declare 112 generic { + Itcl_CallFrame* _Tcl_GetCallFrame (Tcl_Interp *interp, int level) +} +declare 113 generic { + Itcl_CallFrame* _Tcl_ActivateCallFrame (Tcl_Interp *interp, \ + Itcl_CallFrame *framePtr) +} +declare 114 generic { + Var* _TclNewVar (void) +} +declare 115 generic { + void Itcl_Assert (CONST char *testExpr, CONST char *fileName, int lineNum) +} + +declare 116 generic { + int Itcl_IsObjectCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} +declare 117 generic { + int Itcl_IsClassCmd (ClientData clientData, Tcl_Interp *interp, \ + int objc, Tcl_Obj *CONST objv[]) +} diff --git a/8.x/itcl/generic/itclInt.h b/8.x/itcl/generic/itclInt.h new file mode 100644 index 0000000..b245f13 --- /dev/null +++ b/8.x/itcl/generic/itclInt.h @@ -0,0 +1,514 @@ +/* + * ------------------------------------------------------------------------ + * PACKAGE: [incr Tcl] + * DESCRIPTION: Object-Oriented Extensions to Tcl + * + * [incr Tcl] provides object-oriented extensions to Tcl, much as + * C++ provides object-oriented extensions to C. It provides a means + * of encapsulating related procedures together with their shared data + * in a local namespace that is hidden from the outside world. It + * promotes code re-use through inheritance. More than anything else, + * it encourages better organization of Tcl applications through the + * object-oriented paradigm, leading to code that is easier to + * understand and maintain. + * + * ADDING [incr Tcl] TO A Tcl-BASED APPLICATION: + * + * To add [incr Tcl] facilities to a Tcl application, modify the + * Tcl_AppInit() routine as follows: + * + * 1) Include this header file near the top of the file containing + * Tcl_AppInit(): + * + * #include "itcl.h" + * + * 2) Within the body of Tcl_AppInit(), add the following lines: + * + * if (Itcl_Init(interp) == TCL_ERROR) { + * return TCL_ERROR; + * } + * + * 3) Link your application with libitcl.a + * + * NOTE: An example file "tclAppInit.c" containing the changes shown + * above is included in this distribution. + * + * ======================================================================== + * AUTHOR: Michael J. McLennan + * Bell Labs Innovations for Lucent Technologies + * mmclennan@lucent.com + * http://www.tcltk.com/itcl + * + * RCS: $Id: itclInt.h,v 1.19 2008/12/15 20:02:58 andreas_kupries Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ +#ifndef ITCLINT_H +#define ITCLINT_H + +#include "tclInt.h" +#include "itcl.h" + +#ifdef BUILD_itcl +# undef TCL_STORAGE_CLASS +# define TCL_STORAGE_CLASS DLLEXPORT +#endif + +/* + * Handle hiding of errorLine in 8.6 + */ +#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6) +#define ERRORLINE(interp) ((interp)->errorLine) +#else +#define ERRORLINE(interp) (Tcl_GetErrorLine(interp)) +#endif + +#define ITCL_TCL_PRE_8_5 (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 5) + +#if !ITCL_TCL_PRE_8_5 +#if defined(USE_TCL_STUBS) + +/* + * Fix Tcl bug #803489 the right way. We need to always use the old Stub + * slot positions, not the new broken ones part of TIP 127. I do like + * that these functions have moved to the public space (about time), but + * the slot change is the killer and is the painful side affect. + */ + +# undef Tcl_CreateNamespace +# define Tcl_CreateNamespace \ + (tclIntStubsPtr->tcl_CreateNamespace) +# undef Tcl_DeleteNamespace +# define Tcl_DeleteNamespace \ + (tclIntStubsPtr->tcl_DeleteNamespace) +# undef Tcl_AppendExportList +# define Tcl_AppendExportList \ + (tclIntStubsPtr->tcl_AppendExportList) +# undef Tcl_Export +# define Tcl_Export \ + (tclIntStubsPtr->tcl_Export) +# undef Tcl_Import +# define Tcl_Import \ + (tclIntStubsPtr->tcl_Import) +# undef Tcl_ForgetImport +# define Tcl_ForgetImport \ + (tclIntStubsPtr->tcl_ForgetImport) +# undef Tcl_GetCurrentNamespace +# define Tcl_GetCurrentNamespace \ + (tclIntStubsPtr->tcl_GetCurrentNamespace) +# undef Tcl_GetGlobalNamespace +# define Tcl_GetGlobalNamespace \ + (tclIntStubsPtr->tcl_GetGlobalNamespace) +# undef Tcl_FindNamespace +# define Tcl_FindNamespace \ + (tclIntStubsPtr->tcl_FindNamespace) +# undef Tcl_FindCommand +# define Tcl_FindCommand \ + (tclIntStubsPtr->tcl_FindCommand) +# undef Tcl_GetCommandFromObj +# define Tcl_GetCommandFromObj \ + (tclIntStubsPtr->tcl_GetCommandFromObj) +# undef Tcl_GetCommandFullName +# define Tcl_GetCommandFullName \ + (tclIntStubsPtr->tcl_GetCommandFullName) +#endif /* use stubs */ + +/* + * Use 8.5+ CallFrame + */ + +#define ItclCallFrame CallFrame +#define Itcl_CallFrame Tcl_CallFrame + +#define ItclInitVarFlags(varPtr) \ + (varPtr)->flags = 0 + +#define ItclInitVarArgument(varPtr) \ + (varPtr)->flags = VAR_ARGUMENT + +#define ItclVarHashCreateVar(tablePtr, key, newPtr) \ + TclVarHashCreateVar((tablePtr), (key), (newPtr)) + +#define ItclVarRefCount(varPtr) VarHashRefCount(varPtr) + +#define ItclClearVarUndefined(varPtr) + +#define ItclNextLocal(varPtr) ((varPtr)++) + +#define ItclVarObjValue(varPtr) ((varPtr)->value.objPtr) + +#define itclVarInHashSize sizeof(VarInHash) +#define itclVarLocalSize sizeof(Var) + +#else /* Compiling on Tcl8.x, x<5 */ + +/* + * Redefine CallFrame to account for extra ClientData in 8.5. + * Make sure that standard CallFrame comes first. + */ + +typedef struct ItclCallFrame { + Namespace *nsPtr; + int isProcCallFrame; + int objc; + Tcl_Obj *CONST *objv; + struct CallFrame *callerPtr; + struct CallFrame *callerVarPtr; + int level; + Proc *procPtr; + Tcl_HashTable *varTablePtr; + int numCompiledLocals; + Var* compiledLocals; + ClientData clientData; + struct localCache *localCachePtr; +} ItclCallFrame; + +typedef struct Itcl_CallFrame { + Tcl_Namespace *nsPtr; + int dummy1; + int dummy2; + char *dummy3; + char *dummy4; + char *dummy5; + int dummy6; + char *dummy7; + char *dummy8; + int dummy9; + char *dummy10; + char *dummy11; + char *dummy12; +} Itcl_CallFrame; + +/* + * Definition of runtime behaviour to be able to run irrespective of the Tcl + * version. + */ + +#define VarInHash Var + +#define TclVarHashTable Tcl_HashTable + +typedef struct ItclShortVar { + int flags; + union { + Tcl_Obj *objPtr; + TclVarHashTable *tablePtr; + struct Var *linkPtr; + } value; +} ItclShortVar; + +typedef struct ItclVarInHash { + ItclShortVar var; + int refCount; + Tcl_HashEntry entry; +} ItclVarInHash; + +#define ItclOffset(type, field) ((int) ((char *) &((type *) 0)->field)) + +#define itclOldRuntime (itclVarFlagOffset!=0) + +extern int itclVarFlagOffset; +extern int itclVarRefCountOffset; +extern int itclVarInHashSize; +extern int itclVarLocalSize; +extern int itclVarValueOffset; + +/* + * VarReform related macros: provide access to the Var fields with offsets + * determined at load time, so that the same code copes with the different + * structs in Tcl8.5 and previous Tcl. + */ + +#define ItclNextLocal(varPtr) \ + ((varPtr) = (Var *) (((char *)(varPtr))+itclVarLocalSize)) + +#define ItclVarObjValue(varPtr) \ + (*((Tcl_Obj **) (((char *)(varPtr))+itclVarValueOffset))) + +#define ItclVarRefCount(varPtr) \ + (*((int *) (((char *)(varPtr))+itclVarRefCountOffset))) + +#define ItclVarFlags(varPtr) \ + (*((int *)(((char *)(varPtr))+itclVarFlagOffset))) + +/* Note that itclVarFlagOffset==0 exactly when we are running in Tcl8.5 */ +#define ItclInitVarFlags(varPtr) \ + if (itclOldRuntime) { \ + (varPtr)->flags = (VAR_SCALAR | VAR_UNDEFINED | VAR_IN_HASHTABLE);\ + } else { \ + ((ItclShortVar *)(varPtr))->flags = 0;\ + } + +/* This is used for CompiledLocal, not for Var & Co. That struct did not + * change, but the correct flag init did! The flags bits themselves are + * unchanged */ + +#define ItclInitVarArgument(varPtr) \ + if (itclOldRuntime) { \ + (varPtr)->flags = (VAR_SCALAR | VAR_ARGUMENT);\ + } else { \ + (varPtr)->flags = VAR_ARGUMENT;\ + } + +#define TclIsVarNamespaceVar(varPtr) \ + (ItclVarFlags(varPtr) & VAR_NAMESPACE_VAR) + +#define TclSetVarNamespaceVar(varPtr) \ + if (!TclIsVarNamespaceVar(varPtr)) {\ + ItclVarFlags(varPtr) |= VAR_NAMESPACE_VAR;\ + ItclVarRefCount(varPtr)++;\ + } + +#define ItclClearVarUndefined(varPtr) \ + if (itclOldRuntime) { \ + ItclVarFlags(varPtr) &= ~VAR_UNDEFINED;\ + } + +#ifndef MODULE_SCOPE +#define MODULE_SCOPE +#endif + +MODULE_SCOPE Var * ItclVarHashCreateVar (TclVarHashTable * tablePtr, + const char * key, int * newPtr); + +#endif /* Version dependent defs and macros */ + + +#define ItclVarHashFindVar(tablePtr, key) \ + ItclVarHashCreateVar((tablePtr), (key), NULL) + + +/* + * Some backward compatability adjustments. + */ + +#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0 +# define Tcl_GetString(obj) Tcl_GetStringFromObj((obj), NULL) +# define TCL_DECLARE_MUTEX(mutexVar) +# define Tcl_MutexLock(mutexVar) +# define Tcl_MutexUnlock(mutexVar) +# define Tcl_Panic panic +#endif + +#define TCL_DOES_STUBS \ + (TCL_MAJOR_VERSION > 8 || TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION > 1 || \ + (TCL_MINOR_VERSION == 1 && TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE))) + + +/* + * Common info for managing all known objects. + * Each interpreter has one of these data structures stored as + * clientData in the "itcl" namespace. It is also accessible + * as associated data via the key ITCL_INTERP_DATA. + */ +struct ItclObject; +typedef struct ItclObjectInfo { + Tcl_Interp *interp; /* interpreter that manages this info */ + Tcl_HashTable objects; /* list of all known objects */ + + Itcl_Stack transparentFrames; /* stack of call frames that should be + * treated transparently. When + * Itcl_EvalMemberCode is invoked in + * one of these contexts, it does an + * "uplevel" to get past the transparent + * frame and back to the calling context. */ + Tcl_HashTable contextFrames; /* object contexts for active call frames */ + + int protection; /* protection level currently in effect */ + + Itcl_Stack cdefnStack; /* stack of class definitions currently + * being parsed */ +} ItclObjectInfo; + +#define ITCL_INTERP_DATA "itcl_data" + +/* + * Representation for each [incr Tcl] class. + */ +typedef struct ItclClass { + char *name; /* class name */ + char *fullname; /* fully qualified class name */ + Tcl_Interp *interp; /* interpreter that manages this info */ + Tcl_Namespace *namesp; /* namespace representing class scope */ + Tcl_Command accessCmd; /* access command for creating instances */ + + struct ItclObjectInfo *info; /* info about all known objects */ + Itcl_List bases; /* list of base classes */ + Itcl_List derived; /* list of all derived classes */ + Tcl_HashTable heritage; /* table of all base classes. Look up + * by pointer to class definition. This + * provides fast lookup for inheritance + * tests. */ + Tcl_Obj *initCode; /* initialization code for new objs */ + Tcl_HashTable variables; /* definitions for all data members + in this class. Look up simple string + names and get back ItclVarDefn* ptrs */ + Tcl_HashTable functions; /* definitions for all member functions + in this class. Look up simple string + names and get back ItclMemberFunc* ptrs */ + int numInstanceVars; /* number of instance vars in variables + table */ + Tcl_HashTable resolveVars; /* all possible names for variables in + * this class (e.g., x, foo::x, etc.) */ + Tcl_HashTable resolveCmds; /* all possible names for functions in + * this class (e.g., x, foo::x, etc.) */ + int unique; /* unique number for #auto generation */ + int flags; /* maintains class status */ +} ItclClass; + +typedef struct ItclHierIter { + ItclClass *current; /* current position in hierarchy */ + Itcl_Stack stack; /* stack used for traversal */ +} ItclHierIter; + +/* + * Representation for each [incr Tcl] object. + */ +typedef struct ItclObject { + ItclClass *classDefn; /* most-specific class */ + Tcl_Command accessCmd; /* object access command */ + + int dataSize; /* number of elements in data array */ + Var** data; /* all object-specific data members */ + Tcl_HashTable* constructed; /* temp storage used during construction */ + Tcl_HashTable* destructed; /* temp storage used during destruction */ +} ItclObject; + +#define ITCL_IGNORE_ERRS 0x002 /* useful for construction/destruction */ + +/* + * Implementation for any code body in an [incr Tcl] class. + */ +typedef struct ItclMemberCode { + int flags; /* flags describing implementation */ + CompiledLocal *arglist; /* list of arg names and initial values */ + int argcount; /* number of args in arglist */ + Proc *procPtr; /* Tcl proc representation (needed to + * handle compiled locals) */ + union { + Tcl_CmdProc *argCmd; /* (argc,argv) C implementation */ + Tcl_ObjCmdProc *objCmd; /* (objc,objv) C implementation */ + } cfunc; + + ClientData clientData; /* client data for C implementations */ + +} ItclMemberCode; + +#define Itcl_IsMemberCodeImplemented(mcode) \ + (((mcode)->flags & ITCL_IMPLEMENT_NONE) == 0) + +/* + * Basic representation for class members (commands/variables) + */ +typedef struct ItclMember { + Tcl_Interp* interp; /* interpreter containing the class */ + ItclClass* classDefn; /* class containing this member */ + char* name; /* member name */ + char* fullname; /* member name with "class::" qualifier */ + int protection; /* protection level */ + int flags; /* flags describing member (see below) */ + ItclMemberCode *code; /* code associated with member */ +} ItclMember; + +/* + * Flag bits for ItclMemberCode and ItclMember: + */ +#define ITCL_IMPLEMENT_NONE 0x001 /* no implementation */ +#define ITCL_IMPLEMENT_TCL 0x002 /* Tcl implementation */ +#define ITCL_IMPLEMENT_ARGCMD 0x004 /* (argc,argv) C implementation */ +#define ITCL_IMPLEMENT_OBJCMD 0x008 /* (objc,objv) C implementation */ +#define ITCL_IMPLEMENT_C 0x00c /* either kind of C implementation */ +#define ITCL_CONSTRUCTOR 0x010 /* non-zero => is a constructor */ +#define ITCL_DESTRUCTOR 0x020 /* non-zero => is a destructor */ +#define ITCL_COMMON 0x040 /* non-zero => is a "proc" */ +#define ITCL_ARG_SPEC 0x080 /* non-zero => has an argument spec */ + +#define ITCL_OLD_STYLE 0x100 /* non-zero => old-style method + * (process "config" argument) */ + +#define ITCL_THIS_VAR 0x200 /* non-zero => built-in "this" variable */ + +/* + * Representation of member functions in an [incr Tcl] class. + */ +typedef struct ItclMemberFunc { + ItclMember *member; /* basic member info */ + Tcl_Command accessCmd; /* Tcl command installed for this function */ + CompiledLocal *arglist; /* list of arg names and initial values */ + int argcount; /* number of args in arglist */ +} ItclMemberFunc; + +/* + * Instance variables. + */ +typedef struct ItclVarDefn { + ItclMember *member; /* basic member info */ + char* init; /* initial value */ +} ItclVarDefn; + +/* + * Instance variable lookup entry. + */ +typedef struct ItclVarLookup { + ItclVarDefn* vdefn; /* variable definition */ + int usage; /* number of uses for this record */ + int accessible; /* non-zero => accessible from class with + * this lookup record in its resolveVars */ + char *leastQualName; /* simplist name for this variable, with + * the fewest qualifiers. This string is + * taken from the resolveVars table, so + * it shouldn't be freed. */ + union { + int index; /* index into virtual table (instance data) */ + Tcl_Var common; /* variable (common data) */ + } var; +} ItclVarLookup; + +/* + * Representation for the context in which a body of [incr Tcl] + * code executes. In ordinary Tcl, this is a CallFrame. But for + * [incr Tcl] code bodies, we must be careful to set up the + * CallFrame properly, to plug in instance variables before + * executing the code body. + */ +typedef struct ItclContext { + ItclClass *classDefn; /* class definition */ + ItclCallFrame frame; /* call frame for object context */ + Var *compiledLocals; /* points to storage for compiled locals */ + Var localStorage[20]; /* default storage for compiled locals */ +} ItclContext; + +/* + * Compatibility flags. Used to support small "hacks". These are stored + * in the global variable named itclCompatFlags. + */ + +extern int itclCompatFlags; + +#define ITCL_COMPAT_USECMDFLAGS 0x0001 /* Tcl8.4a1 introduced a different Command + * structure, and we need to adapt + * dynamically */ +#define ITCL_COMPAT_USE_ISTATE_API 0x2 /* Tcl 8.5a2 added interp state APIs */ + +#include "itclIntDecls.h" + +/* + * Since the Tcl/Tk distribution doesn't perform any asserts, + * dynamic loading can fail to find the __assert function. + * As a workaround, we'll include our own. + */ + +#undef assert +#ifndef DEBUG +#define assert(EX) ((void)0) +#else +#define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0)) +#endif /* DEBUG */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* ITCLINT_H */ diff --git a/8.x/itcl/generic/itclIntDecls.h b/8.x/itcl/generic/itclIntDecls.h new file mode 100644 index 0000000..c19df29 --- /dev/null +++ b/8.x/itcl/generic/itclIntDecls.h @@ -0,0 +1,1393 @@ +/* + * itclIntDecls.h -- + * + * This file contains the declarations for all unsupported + * functions that are exported by the Tcl library. These + * interfaces are not guaranteed to remain the same between + * versions. Use at your own risk. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: $Id: itclIntDecls.h,v 1.13 2007/05/24 21:40:23 hobbs Exp $ + */ + +#ifndef _ITCLINTDECLS +#define _ITCLINTDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the itcl/generic/tclInt.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifndef Itcl_IsClassNamespace_TCL_DECLARED +#define Itcl_IsClassNamespace_TCL_DECLARED +/* 0 */ +TCL_EXTERN(int) Itcl_IsClassNamespace _ANSI_ARGS_(( + Tcl_Namespace * namesp)); +#endif +#ifndef Itcl_IsClass_TCL_DECLARED +#define Itcl_IsClass_TCL_DECLARED +/* 1 */ +TCL_EXTERN(int) Itcl_IsClass _ANSI_ARGS_((Tcl_Command cmd)); +#endif +#ifndef Itcl_FindClass_TCL_DECLARED +#define Itcl_FindClass_TCL_DECLARED +/* 2 */ +TCL_EXTERN(ItclClass*) Itcl_FindClass _ANSI_ARGS_((Tcl_Interp* interp, + CONST char* path, int autoload)); +#endif +#ifndef Itcl_FindObject_TCL_DECLARED +#define Itcl_FindObject_TCL_DECLARED +/* 3 */ +TCL_EXTERN(int) Itcl_FindObject _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * name, ItclObject ** roPtr)); +#endif +#ifndef Itcl_IsObject_TCL_DECLARED +#define Itcl_IsObject_TCL_DECLARED +/* 4 */ +TCL_EXTERN(int) Itcl_IsObject _ANSI_ARGS_((Tcl_Command cmd)); +#endif +#ifndef Itcl_ObjectIsa_TCL_DECLARED +#define Itcl_ObjectIsa_TCL_DECLARED +/* 5 */ +TCL_EXTERN(int) Itcl_ObjectIsa _ANSI_ARGS_((ItclObject * contextObj, + ItclClass * cdefn)); +#endif +#ifndef Itcl_Protection_TCL_DECLARED +#define Itcl_Protection_TCL_DECLARED +/* 6 */ +TCL_EXTERN(int) Itcl_Protection _ANSI_ARGS_((Tcl_Interp * interp, + int newLevel)); +#endif +#ifndef Itcl_ProtectionStr_TCL_DECLARED +#define Itcl_ProtectionStr_TCL_DECLARED +/* 7 */ +TCL_EXTERN(char*) Itcl_ProtectionStr _ANSI_ARGS_((int pLevel)); +#endif +#ifndef Itcl_CanAccess_TCL_DECLARED +#define Itcl_CanAccess_TCL_DECLARED +/* 8 */ +TCL_EXTERN(int) Itcl_CanAccess _ANSI_ARGS_((ItclMember* memberPtr, + Tcl_Namespace* fromNsPtr)); +#endif +#ifndef Itcl_CanAccessFunc_TCL_DECLARED +#define Itcl_CanAccessFunc_TCL_DECLARED +/* 9 */ +TCL_EXTERN(int) Itcl_CanAccessFunc _ANSI_ARGS_(( + ItclMemberFunc* mfunc, + Tcl_Namespace* fromNsPtr)); +#endif +#ifndef Itcl_GetTrueNamespace_TCL_DECLARED +#define Itcl_GetTrueNamespace_TCL_DECLARED +/* 10 */ +TCL_EXTERN(Tcl_Namespace*) Itcl_GetTrueNamespace _ANSI_ARGS_(( + Tcl_Interp * interp, ItclObjectInfo * info)); +#endif +#ifndef Itcl_ParseNamespPath_TCL_DECLARED +#define Itcl_ParseNamespPath_TCL_DECLARED +/* 11 */ +TCL_EXTERN(void) Itcl_ParseNamespPath _ANSI_ARGS_((CONST char * name, + Tcl_DString * buffer, char ** head, + char ** tail)); +#endif +#ifndef Itcl_DecodeScopedCommand_TCL_DECLARED +#define Itcl_DecodeScopedCommand_TCL_DECLARED +/* 12 */ +TCL_EXTERN(int) Itcl_DecodeScopedCommand _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * name, + Tcl_Namespace ** rNsPtr, char ** rCmdPtr)); +#endif +#ifndef Itcl_EvalArgs_TCL_DECLARED +#define Itcl_EvalArgs_TCL_DECLARED +/* 13 */ +TCL_EXTERN(int) Itcl_EvalArgs _ANSI_ARGS_((Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_CreateArgs_TCL_DECLARED +#define Itcl_CreateArgs_TCL_DECLARED +/* 14 */ +TCL_EXTERN(Tcl_Obj*) Itcl_CreateArgs _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * string, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_PushContext_TCL_DECLARED +#define Itcl_PushContext_TCL_DECLARED +/* 15 */ +TCL_EXTERN(int) Itcl_PushContext _ANSI_ARGS_((Tcl_Interp * interp, + ItclMember * member, + ItclClass * contextClass, + ItclObject * contextObj, + ItclContext * contextPtr)); +#endif +#ifndef Itcl_PopContext_TCL_DECLARED +#define Itcl_PopContext_TCL_DECLARED +/* 16 */ +TCL_EXTERN(void) Itcl_PopContext _ANSI_ARGS_((Tcl_Interp * interp, + ItclContext * contextPtr)); +#endif +#ifndef Itcl_GetContext_TCL_DECLARED +#define Itcl_GetContext_TCL_DECLARED +/* 17 */ +TCL_EXTERN(int) Itcl_GetContext _ANSI_ARGS_((Tcl_Interp * interp, + ItclClass ** cdefnPtr, + ItclObject ** odefnPtr)); +#endif +#ifndef Itcl_InitHierIter_TCL_DECLARED +#define Itcl_InitHierIter_TCL_DECLARED +/* 18 */ +TCL_EXTERN(void) Itcl_InitHierIter _ANSI_ARGS_((ItclHierIter * iter, + ItclClass * cdefn)); +#endif +#ifndef Itcl_DeleteHierIter_TCL_DECLARED +#define Itcl_DeleteHierIter_TCL_DECLARED +/* 19 */ +TCL_EXTERN(void) Itcl_DeleteHierIter _ANSI_ARGS_((ItclHierIter * iter)); +#endif +#ifndef Itcl_AdvanceHierIter_TCL_DECLARED +#define Itcl_AdvanceHierIter_TCL_DECLARED +/* 20 */ +TCL_EXTERN(ItclClass*) Itcl_AdvanceHierIter _ANSI_ARGS_(( + ItclHierIter * iter)); +#endif +#ifndef Itcl_FindClassesCmd_TCL_DECLARED +#define Itcl_FindClassesCmd_TCL_DECLARED +/* 21 */ +TCL_EXTERN(int) Itcl_FindClassesCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_FindObjectsCmd_TCL_DECLARED +#define Itcl_FindObjectsCmd_TCL_DECLARED +/* 22 */ +TCL_EXTERN(int) Itcl_FindObjectsCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ProtectionCmd_TCL_DECLARED +#define Itcl_ProtectionCmd_TCL_DECLARED +/* 23 */ +TCL_EXTERN(int) Itcl_ProtectionCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_DelClassCmd_TCL_DECLARED +#define Itcl_DelClassCmd_TCL_DECLARED +/* 24 */ +TCL_EXTERN(int) Itcl_DelClassCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_DelObjectCmd_TCL_DECLARED +#define Itcl_DelObjectCmd_TCL_DECLARED +/* 25 */ +TCL_EXTERN(int) Itcl_DelObjectCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ScopeCmd_TCL_DECLARED +#define Itcl_ScopeCmd_TCL_DECLARED +/* 26 */ +TCL_EXTERN(int) Itcl_ScopeCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_CodeCmd_TCL_DECLARED +#define Itcl_CodeCmd_TCL_DECLARED +/* 27 */ +TCL_EXTERN(int) Itcl_CodeCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_StubCreateCmd_TCL_DECLARED +#define Itcl_StubCreateCmd_TCL_DECLARED +/* 28 */ +TCL_EXTERN(int) Itcl_StubCreateCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_StubExistsCmd_TCL_DECLARED +#define Itcl_StubExistsCmd_TCL_DECLARED +/* 29 */ +TCL_EXTERN(int) Itcl_StubExistsCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_IsStub_TCL_DECLARED +#define Itcl_IsStub_TCL_DECLARED +/* 30 */ +TCL_EXTERN(int) Itcl_IsStub _ANSI_ARGS_((Tcl_Command cmd)); +#endif +#ifndef Itcl_CreateClass_TCL_DECLARED +#define Itcl_CreateClass_TCL_DECLARED +/* 31 */ +TCL_EXTERN(int) Itcl_CreateClass _ANSI_ARGS_((Tcl_Interp* interp, + CONST char* path, ItclObjectInfo * info, + ItclClass ** rPtr)); +#endif +#ifndef Itcl_DeleteClass_TCL_DECLARED +#define Itcl_DeleteClass_TCL_DECLARED +/* 32 */ +TCL_EXTERN(int) Itcl_DeleteClass _ANSI_ARGS_((Tcl_Interp * interp, + ItclClass * cdefnPtr)); +#endif +#ifndef Itcl_FindClassNamespace_TCL_DECLARED +#define Itcl_FindClassNamespace_TCL_DECLARED +/* 33 */ +TCL_EXTERN(Tcl_Namespace*) Itcl_FindClassNamespace _ANSI_ARGS_(( + Tcl_Interp* interp, CONST char* path)); +#endif +#ifndef Itcl_HandleClass_TCL_DECLARED +#define Itcl_HandleClass_TCL_DECLARED +/* 34 */ +TCL_EXTERN(int) Itcl_HandleClass _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassCmdResolver_TCL_DECLARED +#define Itcl_ClassCmdResolver_TCL_DECLARED +/* 35 */ +TCL_EXTERN(int) Itcl_ClassCmdResolver _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char* name, + Tcl_Namespace * context, int flags, + Tcl_Command * rPtr)); +#endif +#ifndef Itcl_ClassVarResolver_TCL_DECLARED +#define Itcl_ClassVarResolver_TCL_DECLARED +/* 36 */ +TCL_EXTERN(int) Itcl_ClassVarResolver _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char* name, + Tcl_Namespace * context, int flags, + Tcl_Var * rPtr)); +#endif +#ifndef Itcl_ClassCompiledVarResolver_TCL_DECLARED +#define Itcl_ClassCompiledVarResolver_TCL_DECLARED +/* 37 */ +TCL_EXTERN(int) Itcl_ClassCompiledVarResolver _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char* name, + int length, Tcl_Namespace * context, + Tcl_ResolvedVarInfo ** rPtr)); +#endif +#ifndef Itcl_BuildVirtualTables_TCL_DECLARED +#define Itcl_BuildVirtualTables_TCL_DECLARED +/* 38 */ +TCL_EXTERN(void) Itcl_BuildVirtualTables _ANSI_ARGS_(( + ItclClass* cdefnPtr)); +#endif +#ifndef Itcl_CreateVarDefn_TCL_DECLARED +#define Itcl_CreateVarDefn_TCL_DECLARED +/* 39 */ +TCL_EXTERN(int) Itcl_CreateVarDefn _ANSI_ARGS_((Tcl_Interp * interp, + ItclClass* cdefn, char* name, char* init, + char* config, ItclVarDefn** vdefnPtr)); +#endif +#ifndef Itcl_DeleteVarDefn_TCL_DECLARED +#define Itcl_DeleteVarDefn_TCL_DECLARED +/* 40 */ +TCL_EXTERN(void) Itcl_DeleteVarDefn _ANSI_ARGS_((ItclVarDefn * vdefn)); +#endif +#ifndef Itcl_GetCommonVar_TCL_DECLARED +#define Itcl_GetCommonVar_TCL_DECLARED +/* 41 */ +TCL_EXTERN(CONST char*) Itcl_GetCommonVar _ANSI_ARGS_((Tcl_Interp * interp, + CONST char * name, ItclClass * contextClass)); +#endif +#ifndef Itcl_CreateMember_TCL_DECLARED +#define Itcl_CreateMember_TCL_DECLARED +/* 42 */ +TCL_EXTERN(ItclMember*) Itcl_CreateMember _ANSI_ARGS_((Tcl_Interp* interp, + ItclClass * cdefn, CONST char* name)); +#endif +#ifndef Itcl_DeleteMember_TCL_DECLARED +#define Itcl_DeleteMember_TCL_DECLARED +/* 43 */ +TCL_EXTERN(void) Itcl_DeleteMember _ANSI_ARGS_((ItclMember * memPtr)); +#endif +#ifndef Itcl_CreateObject_TCL_DECLARED +#define Itcl_CreateObject_TCL_DECLARED +/* 44 */ +TCL_EXTERN(int) Itcl_CreateObject _ANSI_ARGS_((Tcl_Interp * interp, + CONST char* name, ItclClass * cdefn, + int objc, Tcl_Obj *CONST objv[], + ItclObject ** roPtr)); +#endif +#ifndef Itcl_DeleteObject_TCL_DECLARED +#define Itcl_DeleteObject_TCL_DECLARED +/* 45 */ +TCL_EXTERN(int) Itcl_DeleteObject _ANSI_ARGS_((Tcl_Interp * interp, + ItclObject * contextObj)); +#endif +#ifndef Itcl_DestructObject_TCL_DECLARED +#define Itcl_DestructObject_TCL_DECLARED +/* 46 */ +TCL_EXTERN(int) Itcl_DestructObject _ANSI_ARGS_((Tcl_Interp * interp, + ItclObject * contextObj, int flags)); +#endif +#ifndef Itcl_HandleInstance_TCL_DECLARED +#define Itcl_HandleInstance_TCL_DECLARED +/* 47 */ +TCL_EXTERN(int) Itcl_HandleInstance _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_GetInstanceVar_TCL_DECLARED +#define Itcl_GetInstanceVar_TCL_DECLARED +/* 48 */ +TCL_EXTERN(CONST char*) Itcl_GetInstanceVar _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * name, + ItclObject * contextObj, + ItclClass * contextClass)); +#endif +#ifndef Itcl_ScopedVarResolver_TCL_DECLARED +#define Itcl_ScopedVarResolver_TCL_DECLARED +/* 49 */ +TCL_EXTERN(int) Itcl_ScopedVarResolver _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * name, + Tcl_Namespace * contextNs, int flags, + Tcl_Var * rPtr)); +#endif +#ifndef Itcl_BodyCmd_TCL_DECLARED +#define Itcl_BodyCmd_TCL_DECLARED +/* 50 */ +TCL_EXTERN(int) Itcl_BodyCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ConfigBodyCmd_TCL_DECLARED +#define Itcl_ConfigBodyCmd_TCL_DECLARED +/* 51 */ +TCL_EXTERN(int) Itcl_ConfigBodyCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_CreateMethod_TCL_DECLARED +#define Itcl_CreateMethod_TCL_DECLARED +/* 52 */ +TCL_EXTERN(int) Itcl_CreateMethod _ANSI_ARGS_((Tcl_Interp* interp, + ItclClass * cdefn, CONST char* name, + CONST char* arglist, CONST char* body)); +#endif +#ifndef Itcl_CreateProc_TCL_DECLARED +#define Itcl_CreateProc_TCL_DECLARED +/* 53 */ +TCL_EXTERN(int) Itcl_CreateProc _ANSI_ARGS_((Tcl_Interp* interp, + ItclClass * cdefn, CONST char* name, + CONST char* arglist, CONST char* body)); +#endif +#ifndef Itcl_CreateMemberFunc_TCL_DECLARED +#define Itcl_CreateMemberFunc_TCL_DECLARED +/* 54 */ +TCL_EXTERN(int) Itcl_CreateMemberFunc _ANSI_ARGS_(( + Tcl_Interp* interp, ItclClass * cdefn, + CONST char* name, CONST char* arglist, + CONST char* body, ItclMemberFunc** mfuncPtr)); +#endif +#ifndef Itcl_ChangeMemberFunc_TCL_DECLARED +#define Itcl_ChangeMemberFunc_TCL_DECLARED +/* 55 */ +TCL_EXTERN(int) Itcl_ChangeMemberFunc _ANSI_ARGS_(( + Tcl_Interp* interp, ItclMemberFunc* mfunc, + CONST char* arglist, CONST char* body)); +#endif +#ifndef Itcl_DeleteMemberFunc_TCL_DECLARED +#define Itcl_DeleteMemberFunc_TCL_DECLARED +/* 56 */ +TCL_EXTERN(void) Itcl_DeleteMemberFunc _ANSI_ARGS_((CONST char* cdata)); +#endif +#ifndef Itcl_CreateMemberCode_TCL_DECLARED +#define Itcl_CreateMemberCode_TCL_DECLARED +/* 57 */ +TCL_EXTERN(int) Itcl_CreateMemberCode _ANSI_ARGS_(( + Tcl_Interp* interp, ItclClass * cdefn, + CONST char* arglist, CONST char* body, + ItclMemberCode** mcodePtr)); +#endif +#ifndef Itcl_DeleteMemberCode_TCL_DECLARED +#define Itcl_DeleteMemberCode_TCL_DECLARED +/* 58 */ +TCL_EXTERN(void) Itcl_DeleteMemberCode _ANSI_ARGS_((CONST char* cdata)); +#endif +#ifndef Itcl_GetMemberCode_TCL_DECLARED +#define Itcl_GetMemberCode_TCL_DECLARED +/* 59 */ +TCL_EXTERN(int) Itcl_GetMemberCode _ANSI_ARGS_((Tcl_Interp* interp, + ItclMember* member)); +#endif +/* Slot 60 is reserved */ +#ifndef Itcl_EvalMemberCode_TCL_DECLARED +#define Itcl_EvalMemberCode_TCL_DECLARED +/* 61 */ +TCL_EXTERN(int) Itcl_EvalMemberCode _ANSI_ARGS_((Tcl_Interp * interp, + ItclMemberFunc * mfunc, ItclMember * member, + ItclObject * contextObj, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_CreateArgList_TCL_DECLARED +#define Itcl_CreateArgList_TCL_DECLARED +/* 62 */ +TCL_EXTERN(int) Itcl_CreateArgList _ANSI_ARGS_((Tcl_Interp* interp, + CONST char* decl, int* argcPtr, + CompiledLocal** argPtr)); +#endif +#ifndef Itcl_CreateArg_TCL_DECLARED +#define Itcl_CreateArg_TCL_DECLARED +/* 63 */ +TCL_EXTERN(CompiledLocal*) Itcl_CreateArg _ANSI_ARGS_((CONST char* name, + CONST char* init)); +#endif +#ifndef Itcl_DeleteArgList_TCL_DECLARED +#define Itcl_DeleteArgList_TCL_DECLARED +/* 64 */ +TCL_EXTERN(void) Itcl_DeleteArgList _ANSI_ARGS_(( + CompiledLocal * arglist)); +#endif +#ifndef Itcl_ArgList_TCL_DECLARED +#define Itcl_ArgList_TCL_DECLARED +/* 65 */ +TCL_EXTERN(Tcl_Obj*) Itcl_ArgList _ANSI_ARGS_((int argc, + CompiledLocal* arglist)); +#endif +#ifndef Itcl_EquivArgLists_TCL_DECLARED +#define Itcl_EquivArgLists_TCL_DECLARED +/* 66 */ +TCL_EXTERN(int) Itcl_EquivArgLists _ANSI_ARGS_((CompiledLocal* arg1, + int arg1c, CompiledLocal* arg2, int arg2c)); +#endif +#ifndef Itcl_GetMemberFuncUsage_TCL_DECLARED +#define Itcl_GetMemberFuncUsage_TCL_DECLARED +/* 67 */ +TCL_EXTERN(void) Itcl_GetMemberFuncUsage _ANSI_ARGS_(( + ItclMemberFunc * mfunc, + ItclObject * contextObj, Tcl_Obj * objPtr)); +#endif +#ifndef Itcl_ExecMethod_TCL_DECLARED +#define Itcl_ExecMethod_TCL_DECLARED +/* 68 */ +TCL_EXTERN(int) Itcl_ExecMethod _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ExecProc_TCL_DECLARED +#define Itcl_ExecProc_TCL_DECLARED +/* 69 */ +TCL_EXTERN(int) Itcl_ExecProc _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_AssignArgs_TCL_DECLARED +#define Itcl_AssignArgs_TCL_DECLARED +/* 70 */ +TCL_EXTERN(int) Itcl_AssignArgs _ANSI_ARGS_((Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[], + ItclMemberFunc * mfunc)); +#endif +#ifndef Itcl_ConstructBase_TCL_DECLARED +#define Itcl_ConstructBase_TCL_DECLARED +/* 71 */ +TCL_EXTERN(int) Itcl_ConstructBase _ANSI_ARGS_((Tcl_Interp * interp, + ItclObject * contextObj, + ItclClass * contextClass)); +#endif +#ifndef Itcl_InvokeMethodIfExists_TCL_DECLARED +#define Itcl_InvokeMethodIfExists_TCL_DECLARED +/* 72 */ +TCL_EXTERN(int) Itcl_InvokeMethodIfExists _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * name, + ItclClass * contextClass, + ItclObject * contextObj, int objc, + Tcl_Obj *CONST objv[])); +#endif +/* Slot 73 is reserved */ +#ifndef Itcl_ReportFuncErrors_TCL_DECLARED +#define Itcl_ReportFuncErrors_TCL_DECLARED +/* 74 */ +TCL_EXTERN(int) Itcl_ReportFuncErrors _ANSI_ARGS_(( + Tcl_Interp* interp, ItclMemberFunc * mfunc, + ItclObject * contextObj, int result)); +#endif +#ifndef Itcl_ParseInit_TCL_DECLARED +#define Itcl_ParseInit_TCL_DECLARED +/* 75 */ +TCL_EXTERN(int) Itcl_ParseInit _ANSI_ARGS_((Tcl_Interp * interp, + ItclObjectInfo * info)); +#endif +#ifndef Itcl_ClassCmd_TCL_DECLARED +#define Itcl_ClassCmd_TCL_DECLARED +/* 76 */ +TCL_EXTERN(int) Itcl_ClassCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassInheritCmd_TCL_DECLARED +#define Itcl_ClassInheritCmd_TCL_DECLARED +/* 77 */ +TCL_EXTERN(int) Itcl_ClassInheritCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassProtectionCmd_TCL_DECLARED +#define Itcl_ClassProtectionCmd_TCL_DECLARED +/* 78 */ +TCL_EXTERN(int) Itcl_ClassProtectionCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassConstructorCmd_TCL_DECLARED +#define Itcl_ClassConstructorCmd_TCL_DECLARED +/* 79 */ +TCL_EXTERN(int) Itcl_ClassConstructorCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassDestructorCmd_TCL_DECLARED +#define Itcl_ClassDestructorCmd_TCL_DECLARED +/* 80 */ +TCL_EXTERN(int) Itcl_ClassDestructorCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassMethodCmd_TCL_DECLARED +#define Itcl_ClassMethodCmd_TCL_DECLARED +/* 81 */ +TCL_EXTERN(int) Itcl_ClassMethodCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassProcCmd_TCL_DECLARED +#define Itcl_ClassProcCmd_TCL_DECLARED +/* 82 */ +TCL_EXTERN(int) Itcl_ClassProcCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassVariableCmd_TCL_DECLARED +#define Itcl_ClassVariableCmd_TCL_DECLARED +/* 83 */ +TCL_EXTERN(int) Itcl_ClassVariableCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ClassCommonCmd_TCL_DECLARED +#define Itcl_ClassCommonCmd_TCL_DECLARED +/* 84 */ +TCL_EXTERN(int) Itcl_ClassCommonCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_ParseVarResolver_TCL_DECLARED +#define Itcl_ParseVarResolver_TCL_DECLARED +/* 85 */ +TCL_EXTERN(int) Itcl_ParseVarResolver _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char* name, + Tcl_Namespace * contextNs, int flags, + Tcl_Var* rPtr)); +#endif +#ifndef Itcl_BiInit_TCL_DECLARED +#define Itcl_BiInit_TCL_DECLARED +/* 86 */ +TCL_EXTERN(int) Itcl_BiInit _ANSI_ARGS_((Tcl_Interp * interp)); +#endif +#ifndef Itcl_InstallBiMethods_TCL_DECLARED +#define Itcl_InstallBiMethods_TCL_DECLARED +/* 87 */ +TCL_EXTERN(int) Itcl_InstallBiMethods _ANSI_ARGS_(( + Tcl_Interp * interp, ItclClass * cdefn)); +#endif +#ifndef Itcl_BiIsaCmd_TCL_DECLARED +#define Itcl_BiIsaCmd_TCL_DECLARED +/* 88 */ +TCL_EXTERN(int) Itcl_BiIsaCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiConfigureCmd_TCL_DECLARED +#define Itcl_BiConfigureCmd_TCL_DECLARED +/* 89 */ +TCL_EXTERN(int) Itcl_BiConfigureCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiCgetCmd_TCL_DECLARED +#define Itcl_BiCgetCmd_TCL_DECLARED +/* 90 */ +TCL_EXTERN(int) Itcl_BiCgetCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiChainCmd_TCL_DECLARED +#define Itcl_BiChainCmd_TCL_DECLARED +/* 91 */ +TCL_EXTERN(int) Itcl_BiChainCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoClassCmd_TCL_DECLARED +#define Itcl_BiInfoClassCmd_TCL_DECLARED +/* 92 */ +TCL_EXTERN(int) Itcl_BiInfoClassCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoInheritCmd_TCL_DECLARED +#define Itcl_BiInfoInheritCmd_TCL_DECLARED +/* 93 */ +TCL_EXTERN(int) Itcl_BiInfoInheritCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoHeritageCmd_TCL_DECLARED +#define Itcl_BiInfoHeritageCmd_TCL_DECLARED +/* 94 */ +TCL_EXTERN(int) Itcl_BiInfoHeritageCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoFunctionCmd_TCL_DECLARED +#define Itcl_BiInfoFunctionCmd_TCL_DECLARED +/* 95 */ +TCL_EXTERN(int) Itcl_BiInfoFunctionCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoVariableCmd_TCL_DECLARED +#define Itcl_BiInfoVariableCmd_TCL_DECLARED +/* 96 */ +TCL_EXTERN(int) Itcl_BiInfoVariableCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoBodyCmd_TCL_DECLARED +#define Itcl_BiInfoBodyCmd_TCL_DECLARED +/* 97 */ +TCL_EXTERN(int) Itcl_BiInfoBodyCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_BiInfoArgsCmd_TCL_DECLARED +#define Itcl_BiInfoArgsCmd_TCL_DECLARED +/* 98 */ +TCL_EXTERN(int) Itcl_BiInfoArgsCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_DefaultInfoCmd_TCL_DECLARED +#define Itcl_DefaultInfoCmd_TCL_DECLARED +/* 99 */ +TCL_EXTERN(int) Itcl_DefaultInfoCmd _ANSI_ARGS_((ClientData dummy, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_EnsembleInit_TCL_DECLARED +#define Itcl_EnsembleInit_TCL_DECLARED +/* 100 */ +TCL_EXTERN(int) Itcl_EnsembleInit _ANSI_ARGS_((Tcl_Interp * interp)); +#endif +#ifndef Itcl_CreateEnsemble_TCL_DECLARED +#define Itcl_CreateEnsemble_TCL_DECLARED +/* 101 */ +TCL_EXTERN(int) Itcl_CreateEnsemble _ANSI_ARGS_((Tcl_Interp * interp, + CONST char* ensName)); +#endif +#ifndef Itcl_AddEnsemblePart_TCL_DECLARED +#define Itcl_AddEnsemblePart_TCL_DECLARED +/* 102 */ +TCL_EXTERN(int) Itcl_AddEnsemblePart _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char* ensName, + CONST char* partName, CONST char* usageInfo, + Tcl_ObjCmdProc * objProc, + ClientData clientData, + Tcl_CmdDeleteProc * deleteProc)); +#endif +#ifndef Itcl_GetEnsemblePart_TCL_DECLARED +#define Itcl_GetEnsemblePart_TCL_DECLARED +/* 103 */ +TCL_EXTERN(int) Itcl_GetEnsemblePart _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * ensName, + CONST char * partName, Tcl_CmdInfo * infoPtr)); +#endif +#ifndef Itcl_IsEnsemble_TCL_DECLARED +#define Itcl_IsEnsemble_TCL_DECLARED +/* 104 */ +TCL_EXTERN(int) Itcl_IsEnsemble _ANSI_ARGS_((Tcl_CmdInfo* infoPtr)); +#endif +#ifndef Itcl_GetEnsembleUsage_TCL_DECLARED +#define Itcl_GetEnsembleUsage_TCL_DECLARED +/* 105 */ +TCL_EXTERN(int) Itcl_GetEnsembleUsage _ANSI_ARGS_(( + Tcl_Interp * interp, CONST char * ensName, + Tcl_Obj * objPtr)); +#endif +#ifndef Itcl_GetEnsembleUsageForObj_TCL_DECLARED +#define Itcl_GetEnsembleUsageForObj_TCL_DECLARED +/* 106 */ +TCL_EXTERN(int) Itcl_GetEnsembleUsageForObj _ANSI_ARGS_(( + Tcl_Interp * interp, Tcl_Obj * ensObjPtr, + Tcl_Obj * objPtr)); +#endif +#ifndef Itcl_EnsembleCmd_TCL_DECLARED +#define Itcl_EnsembleCmd_TCL_DECLARED +/* 107 */ +TCL_EXTERN(int) Itcl_EnsembleCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_EnsPartCmd_TCL_DECLARED +#define Itcl_EnsPartCmd_TCL_DECLARED +/* 108 */ +TCL_EXTERN(int) Itcl_EnsPartCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_EnsembleErrorCmd_TCL_DECLARED +#define Itcl_EnsembleErrorCmd_TCL_DECLARED +/* 109 */ +TCL_EXTERN(int) Itcl_EnsembleErrorCmd _ANSI_ARGS_(( + ClientData clientData, Tcl_Interp * interp, + int objc, Tcl_Obj *CONST objv[])); +#endif +/* Slot 110 is reserved */ +/* Slot 111 is reserved */ +#ifndef _Tcl_GetCallFrame_TCL_DECLARED +#define _Tcl_GetCallFrame_TCL_DECLARED +/* 112 */ +TCL_EXTERN(Itcl_CallFrame*) _Tcl_GetCallFrame _ANSI_ARGS_(( + Tcl_Interp * interp, int level)); +#endif +#ifndef _Tcl_ActivateCallFrame_TCL_DECLARED +#define _Tcl_ActivateCallFrame_TCL_DECLARED +/* 113 */ +TCL_EXTERN(Itcl_CallFrame*) _Tcl_ActivateCallFrame _ANSI_ARGS_(( + Tcl_Interp * interp, + Itcl_CallFrame * framePtr)); +#endif +#ifndef _TclNewVar_TCL_DECLARED +#define _TclNewVar_TCL_DECLARED +/* 114 */ +TCL_EXTERN(Var*) _TclNewVar _ANSI_ARGS_((void)); +#endif +#ifndef Itcl_Assert_TCL_DECLARED +#define Itcl_Assert_TCL_DECLARED +/* 115 */ +TCL_EXTERN(void) Itcl_Assert _ANSI_ARGS_((CONST char * testExpr, + CONST char * fileName, int lineNum)); +#endif +#ifndef Itcl_IsObjectCmd_TCL_DECLARED +#define Itcl_IsObjectCmd_TCL_DECLARED +/* 116 */ +TCL_EXTERN(int) Itcl_IsObjectCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif +#ifndef Itcl_IsClassCmd_TCL_DECLARED +#define Itcl_IsClassCmd_TCL_DECLARED +/* 117 */ +TCL_EXTERN(int) Itcl_IsClassCmd _ANSI_ARGS_((ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[])); +#endif + +typedef struct ItclIntStubs { + int magic; + struct ItclIntStubHooks *hooks; + + int (*itcl_IsClassNamespace) _ANSI_ARGS_((Tcl_Namespace * namesp)); /* 0 */ + int (*itcl_IsClass) _ANSI_ARGS_((Tcl_Command cmd)); /* 1 */ + ItclClass* (*itcl_FindClass) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* path, int autoload)); /* 2 */ + int (*itcl_FindObject) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ItclObject ** roPtr)); /* 3 */ + int (*itcl_IsObject) _ANSI_ARGS_((Tcl_Command cmd)); /* 4 */ + int (*itcl_ObjectIsa) _ANSI_ARGS_((ItclObject * contextObj, ItclClass * cdefn)); /* 5 */ + int (*itcl_Protection) _ANSI_ARGS_((Tcl_Interp * interp, int newLevel)); /* 6 */ + char* (*itcl_ProtectionStr) _ANSI_ARGS_((int pLevel)); /* 7 */ + int (*itcl_CanAccess) _ANSI_ARGS_((ItclMember* memberPtr, Tcl_Namespace* fromNsPtr)); /* 8 */ + int (*itcl_CanAccessFunc) _ANSI_ARGS_((ItclMemberFunc* mfunc, Tcl_Namespace* fromNsPtr)); /* 9 */ + Tcl_Namespace* (*itcl_GetTrueNamespace) _ANSI_ARGS_((Tcl_Interp * interp, ItclObjectInfo * info)); /* 10 */ + void (*itcl_ParseNamespPath) _ANSI_ARGS_((CONST char * name, Tcl_DString * buffer, char ** head, char ** tail)); /* 11 */ + int (*itcl_DecodeScopedCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace ** rNsPtr, char ** rCmdPtr)); /* 12 */ + int (*itcl_EvalArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 13 */ + Tcl_Obj* (*itcl_CreateArgs) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int objc, Tcl_Obj *CONST objv[])); /* 14 */ + int (*itcl_PushContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclMember * member, ItclClass * contextClass, ItclObject * contextObj, ItclContext * contextPtr)); /* 15 */ + void (*itcl_PopContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclContext * contextPtr)); /* 16 */ + int (*itcl_GetContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass ** cdefnPtr, ItclObject ** odefnPtr)); /* 17 */ + void (*itcl_InitHierIter) _ANSI_ARGS_((ItclHierIter * iter, ItclClass * cdefn)); /* 18 */ + void (*itcl_DeleteHierIter) _ANSI_ARGS_((ItclHierIter * iter)); /* 19 */ + ItclClass* (*itcl_AdvanceHierIter) _ANSI_ARGS_((ItclHierIter * iter)); /* 20 */ + int (*itcl_FindClassesCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 21 */ + int (*itcl_FindObjectsCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 22 */ + int (*itcl_ProtectionCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 23 */ + int (*itcl_DelClassCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 24 */ + int (*itcl_DelObjectCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 25 */ + int (*itcl_ScopeCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 26 */ + int (*itcl_CodeCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 27 */ + int (*itcl_StubCreateCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 28 */ + int (*itcl_StubExistsCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 29 */ + int (*itcl_IsStub) _ANSI_ARGS_((Tcl_Command cmd)); /* 30 */ + int (*itcl_CreateClass) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* path, ItclObjectInfo * info, ItclClass ** rPtr)); /* 31 */ + int (*itcl_DeleteClass) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefnPtr)); /* 32 */ + Tcl_Namespace* (*itcl_FindClassNamespace) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* path)); /* 33 */ + int (*itcl_HandleClass) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 34 */ + int (*itcl_ClassCmdResolver) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* name, Tcl_Namespace * context, int flags, Tcl_Command * rPtr)); /* 35 */ + int (*itcl_ClassVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* name, Tcl_Namespace * context, int flags, Tcl_Var * rPtr)); /* 36 */ + int (*itcl_ClassCompiledVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* name, int length, Tcl_Namespace * context, Tcl_ResolvedVarInfo ** rPtr)); /* 37 */ + void (*itcl_BuildVirtualTables) _ANSI_ARGS_((ItclClass* cdefnPtr)); /* 38 */ + int (*itcl_CreateVarDefn) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass* cdefn, char* name, char* init, char* config, ItclVarDefn** vdefnPtr)); /* 39 */ + void (*itcl_DeleteVarDefn) _ANSI_ARGS_((ItclVarDefn * vdefn)); /* 40 */ + CONST char* (*itcl_GetCommonVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ItclClass * contextClass)); /* 41 */ + ItclMember* (*itcl_CreateMember) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, CONST char* name)); /* 42 */ + void (*itcl_DeleteMember) _ANSI_ARGS_((ItclMember * memPtr)); /* 43 */ + int (*itcl_CreateObject) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* name, ItclClass * cdefn, int objc, Tcl_Obj *CONST objv[], ItclObject ** roPtr)); /* 44 */ + int (*itcl_DeleteObject) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj)); /* 45 */ + int (*itcl_DestructObject) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj, int flags)); /* 46 */ + int (*itcl_HandleInstance) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 47 */ + CONST char* (*itcl_GetInstanceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ItclObject * contextObj, ItclClass * contextClass)); /* 48 */ + int (*itcl_ScopedVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNs, int flags, Tcl_Var * rPtr)); /* 49 */ + int (*itcl_BodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 50 */ + int (*itcl_ConfigBodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 51 */ + int (*itcl_CreateMethod) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, CONST char* name, CONST char* arglist, CONST char* body)); /* 52 */ + int (*itcl_CreateProc) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, CONST char* name, CONST char* arglist, CONST char* body)); /* 53 */ + int (*itcl_CreateMemberFunc) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, CONST char* name, CONST char* arglist, CONST char* body, ItclMemberFunc** mfuncPtr)); /* 54 */ + int (*itcl_ChangeMemberFunc) _ANSI_ARGS_((Tcl_Interp* interp, ItclMemberFunc* mfunc, CONST char* arglist, CONST char* body)); /* 55 */ + void (*itcl_DeleteMemberFunc) _ANSI_ARGS_((CONST char* cdata)); /* 56 */ + int (*itcl_CreateMemberCode) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, CONST char* arglist, CONST char* body, ItclMemberCode** mcodePtr)); /* 57 */ + void (*itcl_DeleteMemberCode) _ANSI_ARGS_((CONST char* cdata)); /* 58 */ + int (*itcl_GetMemberCode) _ANSI_ARGS_((Tcl_Interp* interp, ItclMember* member)); /* 59 */ + void *reserved60; + int (*itcl_EvalMemberCode) _ANSI_ARGS_((Tcl_Interp * interp, ItclMemberFunc * mfunc, ItclMember * member, ItclObject * contextObj, int objc, Tcl_Obj *CONST objv[])); /* 61 */ + int (*itcl_CreateArgList) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* decl, int* argcPtr, CompiledLocal** argPtr)); /* 62 */ + CompiledLocal* (*itcl_CreateArg) _ANSI_ARGS_((CONST char* name, CONST char* init)); /* 63 */ + void (*itcl_DeleteArgList) _ANSI_ARGS_((CompiledLocal * arglist)); /* 64 */ + Tcl_Obj* (*itcl_ArgList) _ANSI_ARGS_((int argc, CompiledLocal* arglist)); /* 65 */ + int (*itcl_EquivArgLists) _ANSI_ARGS_((CompiledLocal* arg1, int arg1c, CompiledLocal* arg2, int arg2c)); /* 66 */ + void (*itcl_GetMemberFuncUsage) _ANSI_ARGS_((ItclMemberFunc * mfunc, ItclObject * contextObj, Tcl_Obj * objPtr)); /* 67 */ + int (*itcl_ExecMethod) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 68 */ + int (*itcl_ExecProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 69 */ + int (*itcl_AssignArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], ItclMemberFunc * mfunc)); /* 70 */ + int (*itcl_ConstructBase) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj, ItclClass * contextClass)); /* 71 */ + int (*itcl_InvokeMethodIfExists) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ItclClass * contextClass, ItclObject * contextObj, int objc, Tcl_Obj *CONST objv[])); /* 72 */ + void *reserved73; + int (*itcl_ReportFuncErrors) _ANSI_ARGS_((Tcl_Interp* interp, ItclMemberFunc * mfunc, ItclObject * contextObj, int result)); /* 74 */ + int (*itcl_ParseInit) _ANSI_ARGS_((Tcl_Interp * interp, ItclObjectInfo * info)); /* 75 */ + int (*itcl_ClassCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 76 */ + int (*itcl_ClassInheritCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 77 */ + int (*itcl_ClassProtectionCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 78 */ + int (*itcl_ClassConstructorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 79 */ + int (*itcl_ClassDestructorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 80 */ + int (*itcl_ClassMethodCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 81 */ + int (*itcl_ClassProcCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 82 */ + int (*itcl_ClassVariableCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 83 */ + int (*itcl_ClassCommonCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 84 */ + int (*itcl_ParseVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* name, Tcl_Namespace * contextNs, int flags, Tcl_Var* rPtr)); /* 85 */ + int (*itcl_BiInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 86 */ + int (*itcl_InstallBiMethods) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefn)); /* 87 */ + int (*itcl_BiIsaCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 88 */ + int (*itcl_BiConfigureCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 89 */ + int (*itcl_BiCgetCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 90 */ + int (*itcl_BiChainCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 91 */ + int (*itcl_BiInfoClassCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 92 */ + int (*itcl_BiInfoInheritCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 93 */ + int (*itcl_BiInfoHeritageCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 94 */ + int (*itcl_BiInfoFunctionCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 95 */ + int (*itcl_BiInfoVariableCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 96 */ + int (*itcl_BiInfoBodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 97 */ + int (*itcl_BiInfoArgsCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 98 */ + int (*itcl_DefaultInfoCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 99 */ + int (*itcl_EnsembleInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 100 */ + int (*itcl_CreateEnsemble) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* ensName)); /* 101 */ + int (*itcl_AddEnsemblePart) _ANSI_ARGS_((Tcl_Interp * interp, CONST char* ensName, CONST char* partName, CONST char* usageInfo, Tcl_ObjCmdProc * objProc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 102 */ + int (*itcl_GetEnsemblePart) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * ensName, CONST char * partName, Tcl_CmdInfo * infoPtr)); /* 103 */ + int (*itcl_IsEnsemble) _ANSI_ARGS_((Tcl_CmdInfo* infoPtr)); /* 104 */ + int (*itcl_GetEnsembleUsage) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * ensName, Tcl_Obj * objPtr)); /* 105 */ + int (*itcl_GetEnsembleUsageForObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * ensObjPtr, Tcl_Obj * objPtr)); /* 106 */ + int (*itcl_EnsembleCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 107 */ + int (*itcl_EnsPartCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 108 */ + int (*itcl_EnsembleErrorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 109 */ + void *reserved110; + void *reserved111; + Itcl_CallFrame* (*_Tcl_GetCallFrame) _ANSI_ARGS_((Tcl_Interp * interp, int level)); /* 112 */ + Itcl_CallFrame* (*_Tcl_ActivateCallFrame) _ANSI_ARGS_((Tcl_Interp * interp, Itcl_CallFrame * framePtr)); /* 113 */ + Var* (*_TclNewVar) _ANSI_ARGS_((void)); /* 114 */ + void (*itcl_Assert) _ANSI_ARGS_((CONST char * testExpr, CONST char * fileName, int lineNum)); /* 115 */ + int (*itcl_IsObjectCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 116 */ + int (*itcl_IsClassCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 117 */ +} ItclIntStubs; + +TCL_EXTERNC ItclIntStubs *itclIntStubsPtr; + +#if defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef Itcl_IsClassNamespace +#define Itcl_IsClassNamespace \ + (itclIntStubsPtr->itcl_IsClassNamespace) /* 0 */ +#endif +#ifndef Itcl_IsClass +#define Itcl_IsClass \ + (itclIntStubsPtr->itcl_IsClass) /* 1 */ +#endif +#ifndef Itcl_FindClass +#define Itcl_FindClass \ + (itclIntStubsPtr->itcl_FindClass) /* 2 */ +#endif +#ifndef Itcl_FindObject +#define Itcl_FindObject \ + (itclIntStubsPtr->itcl_FindObject) /* 3 */ +#endif +#ifndef Itcl_IsObject +#define Itcl_IsObject \ + (itclIntStubsPtr->itcl_IsObject) /* 4 */ +#endif +#ifndef Itcl_ObjectIsa +#define Itcl_ObjectIsa \ + (itclIntStubsPtr->itcl_ObjectIsa) /* 5 */ +#endif +#ifndef Itcl_Protection +#define Itcl_Protection \ + (itclIntStubsPtr->itcl_Protection) /* 6 */ +#endif +#ifndef Itcl_ProtectionStr +#define Itcl_ProtectionStr \ + (itclIntStubsPtr->itcl_ProtectionStr) /* 7 */ +#endif +#ifndef Itcl_CanAccess +#define Itcl_CanAccess \ + (itclIntStubsPtr->itcl_CanAccess) /* 8 */ +#endif +#ifndef Itcl_CanAccessFunc +#define Itcl_CanAccessFunc \ + (itclIntStubsPtr->itcl_CanAccessFunc) /* 9 */ +#endif +#ifndef Itcl_GetTrueNamespace +#define Itcl_GetTrueNamespace \ + (itclIntStubsPtr->itcl_GetTrueNamespace) /* 10 */ +#endif +#ifndef Itcl_ParseNamespPath +#define Itcl_ParseNamespPath \ + (itclIntStubsPtr->itcl_ParseNamespPath) /* 11 */ +#endif +#ifndef Itcl_DecodeScopedCommand +#define Itcl_DecodeScopedCommand \ + (itclIntStubsPtr->itcl_DecodeScopedCommand) /* 12 */ +#endif +#ifndef Itcl_EvalArgs +#define Itcl_EvalArgs \ + (itclIntStubsPtr->itcl_EvalArgs) /* 13 */ +#endif +#ifndef Itcl_CreateArgs +#define Itcl_CreateArgs \ + (itclIntStubsPtr->itcl_CreateArgs) /* 14 */ +#endif +#ifndef Itcl_PushContext +#define Itcl_PushContext \ + (itclIntStubsPtr->itcl_PushContext) /* 15 */ +#endif +#ifndef Itcl_PopContext +#define Itcl_PopContext \ + (itclIntStubsPtr->itcl_PopContext) /* 16 */ +#endif +#ifndef Itcl_GetContext +#define Itcl_GetContext \ + (itclIntStubsPtr->itcl_GetContext) /* 17 */ +#endif +#ifndef Itcl_InitHierIter +#define Itcl_InitHierIter \ + (itclIntStubsPtr->itcl_InitHierIter) /* 18 */ +#endif +#ifndef Itcl_DeleteHierIter +#define Itcl_DeleteHierIter \ + (itclIntStubsPtr->itcl_DeleteHierIter) /* 19 */ +#endif +#ifndef Itcl_AdvanceHierIter +#define Itcl_AdvanceHierIter \ + (itclIntStubsPtr->itcl_AdvanceHierIter) /* 20 */ +#endif +#ifndef Itcl_FindClassesCmd +#define Itcl_FindClassesCmd \ + (itclIntStubsPtr->itcl_FindClassesCmd) /* 21 */ +#endif +#ifndef Itcl_FindObjectsCmd +#define Itcl_FindObjectsCmd \ + (itclIntStubsPtr->itcl_FindObjectsCmd) /* 22 */ +#endif +#ifndef Itcl_ProtectionCmd +#define Itcl_ProtectionCmd \ + (itclIntStubsPtr->itcl_ProtectionCmd) /* 23 */ +#endif +#ifndef Itcl_DelClassCmd +#define Itcl_DelClassCmd \ + (itclIntStubsPtr->itcl_DelClassCmd) /* 24 */ +#endif +#ifndef Itcl_DelObjectCmd +#define Itcl_DelObjectCmd \ + (itclIntStubsPtr->itcl_DelObjectCmd) /* 25 */ +#endif +#ifndef Itcl_ScopeCmd +#define Itcl_ScopeCmd \ + (itclIntStubsPtr->itcl_ScopeCmd) /* 26 */ +#endif +#ifndef Itcl_CodeCmd +#define Itcl_CodeCmd \ + (itclIntStubsPtr->itcl_CodeCmd) /* 27 */ +#endif +#ifndef Itcl_StubCreateCmd +#define Itcl_StubCreateCmd \ + (itclIntStubsPtr->itcl_StubCreateCmd) /* 28 */ +#endif +#ifndef Itcl_StubExistsCmd +#define Itcl_StubExistsCmd \ + (itclIntStubsPtr->itcl_StubExistsCmd) /* 29 */ +#endif +#ifndef Itcl_IsStub +#define Itcl_IsStub \ + (itclIntStubsPtr->itcl_IsStub) /* 30 */ +#endif +#ifndef Itcl_CreateClass +#define Itcl_CreateClass \ + (itclIntStubsPtr->itcl_CreateClass) /* 31 */ +#endif +#ifndef Itcl_DeleteClass +#define Itcl_DeleteClass \ + (itclIntStubsPtr->itcl_DeleteClass) /* 32 */ +#endif +#ifndef Itcl_FindClassNamespace +#define Itcl_FindClassNamespace \ + (itclIntStubsPtr->itcl_FindClassNamespace) /* 33 */ +#endif +#ifndef Itcl_HandleClass +#define Itcl_HandleClass \ + (itclIntStubsPtr->itcl_HandleClass) /* 34 */ +#endif +#ifndef Itcl_ClassCmdResolver +#define Itcl_ClassCmdResolver \ + (itclIntStubsPtr->itcl_ClassCmdResolver) /* 35 */ +#endif +#ifndef Itcl_ClassVarResolver +#define Itcl_ClassVarResolver \ + (itclIntStubsPtr->itcl_ClassVarResolver) /* 36 */ +#endif +#ifndef Itcl_ClassCompiledVarResolver +#define Itcl_ClassCompiledVarResolver \ + (itclIntStubsPtr->itcl_ClassCompiledVarResolver) /* 37 */ +#endif +#ifndef Itcl_BuildVirtualTables +#define Itcl_BuildVirtualTables \ + (itclIntStubsPtr->itcl_BuildVirtualTables) /* 38 */ +#endif +#ifndef Itcl_CreateVarDefn +#define Itcl_CreateVarDefn \ + (itclIntStubsPtr->itcl_CreateVarDefn) /* 39 */ +#endif +#ifndef Itcl_DeleteVarDefn +#define Itcl_DeleteVarDefn \ + (itclIntStubsPtr->itcl_DeleteVarDefn) /* 40 */ +#endif +#ifndef Itcl_GetCommonVar +#define Itcl_GetCommonVar \ + (itclIntStubsPtr->itcl_GetCommonVar) /* 41 */ +#endif +#ifndef Itcl_CreateMember +#define Itcl_CreateMember \ + (itclIntStubsPtr->itcl_CreateMember) /* 42 */ +#endif +#ifndef Itcl_DeleteMember +#define Itcl_DeleteMember \ + (itclIntStubsPtr->itcl_DeleteMember) /* 43 */ +#endif +#ifndef Itcl_CreateObject +#define Itcl_CreateObject \ + (itclIntStubsPtr->itcl_CreateObject) /* 44 */ +#endif +#ifndef Itcl_DeleteObject +#define Itcl_DeleteObject \ + (itclIntStubsPtr->itcl_DeleteObject) /* 45 */ +#endif +#ifndef Itcl_DestructObject +#define Itcl_DestructObject \ + (itclIntStubsPtr->itcl_DestructObject) /* 46 */ +#endif +#ifndef Itcl_HandleInstance +#define Itcl_HandleInstance \ + (itclIntStubsPtr->itcl_HandleInstance) /* 47 */ +#endif +#ifndef Itcl_GetInstanceVar +#define Itcl_GetInstanceVar \ + (itclIntStubsPtr->itcl_GetInstanceVar) /* 48 */ +#endif +#ifndef Itcl_ScopedVarResolver +#define Itcl_ScopedVarResolver \ + (itclIntStubsPtr->itcl_ScopedVarResolver) /* 49 */ +#endif +#ifndef Itcl_BodyCmd +#define Itcl_BodyCmd \ + (itclIntStubsPtr->itcl_BodyCmd) /* 50 */ +#endif +#ifndef Itcl_ConfigBodyCmd +#define Itcl_ConfigBodyCmd \ + (itclIntStubsPtr->itcl_ConfigBodyCmd) /* 51 */ +#endif +#ifndef Itcl_CreateMethod +#define Itcl_CreateMethod \ + (itclIntStubsPtr->itcl_CreateMethod) /* 52 */ +#endif +#ifndef Itcl_CreateProc +#define Itcl_CreateProc \ + (itclIntStubsPtr->itcl_CreateProc) /* 53 */ +#endif +#ifndef Itcl_CreateMemberFunc +#define Itcl_CreateMemberFunc \ + (itclIntStubsPtr->itcl_CreateMemberFunc) /* 54 */ +#endif +#ifndef Itcl_ChangeMemberFunc +#define Itcl_ChangeMemberFunc \ + (itclIntStubsPtr->itcl_ChangeMemberFunc) /* 55 */ +#endif +#ifndef Itcl_DeleteMemberFunc +#define Itcl_DeleteMemberFunc \ + (itclIntStubsPtr->itcl_DeleteMemberFunc) /* 56 */ +#endif +#ifndef Itcl_CreateMemberCode +#define Itcl_CreateMemberCode \ + (itclIntStubsPtr->itcl_CreateMemberCode) /* 57 */ +#endif +#ifndef Itcl_DeleteMemberCode +#define Itcl_DeleteMemberCode \ + (itclIntStubsPtr->itcl_DeleteMemberCode) /* 58 */ +#endif +#ifndef Itcl_GetMemberCode +#define Itcl_GetMemberCode \ + (itclIntStubsPtr->itcl_GetMemberCode) /* 59 */ +#endif +/* Slot 60 is reserved */ +#ifndef Itcl_EvalMemberCode +#define Itcl_EvalMemberCode \ + (itclIntStubsPtr->itcl_EvalMemberCode) /* 61 */ +#endif +#ifndef Itcl_CreateArgList +#define Itcl_CreateArgList \ + (itclIntStubsPtr->itcl_CreateArgList) /* 62 */ +#endif +#ifndef Itcl_CreateArg +#define Itcl_CreateArg \ + (itclIntStubsPtr->itcl_CreateArg) /* 63 */ +#endif +#ifndef Itcl_DeleteArgList +#define Itcl_DeleteArgList \ + (itclIntStubsPtr->itcl_DeleteArgList) /* 64 */ +#endif +#ifndef Itcl_ArgList +#define Itcl_ArgList \ + (itclIntStubsPtr->itcl_ArgList) /* 65 */ +#endif +#ifndef Itcl_EquivArgLists +#define Itcl_EquivArgLists \ + (itclIntStubsPtr->itcl_EquivArgLists) /* 66 */ +#endif +#ifndef Itcl_GetMemberFuncUsage +#define Itcl_GetMemberFuncUsage \ + (itclIntStubsPtr->itcl_GetMemberFuncUsage) /* 67 */ +#endif +#ifndef Itcl_ExecMethod +#define Itcl_ExecMethod \ + (itclIntStubsPtr->itcl_ExecMethod) /* 68 */ +#endif +#ifndef Itcl_ExecProc +#define Itcl_ExecProc \ + (itclIntStubsPtr->itcl_ExecProc) /* 69 */ +#endif +#ifndef Itcl_AssignArgs +#define Itcl_AssignArgs \ + (itclIntStubsPtr->itcl_AssignArgs) /* 70 */ +#endif +#ifndef Itcl_ConstructBase +#define Itcl_ConstructBase \ + (itclIntStubsPtr->itcl_ConstructBase) /* 71 */ +#endif +#ifndef Itcl_InvokeMethodIfExists +#define Itcl_InvokeMethodIfExists \ + (itclIntStubsPtr->itcl_InvokeMethodIfExists) /* 72 */ +#endif +/* Slot 73 is reserved */ +#ifndef Itcl_ReportFuncErrors +#define Itcl_ReportFuncErrors \ + (itclIntStubsPtr->itcl_ReportFuncErrors) /* 74 */ +#endif +#ifndef Itcl_ParseInit +#define Itcl_ParseInit \ + (itclIntStubsPtr->itcl_ParseInit) /* 75 */ +#endif +#ifndef Itcl_ClassCmd +#define Itcl_ClassCmd \ + (itclIntStubsPtr->itcl_ClassCmd) /* 76 */ +#endif +#ifndef Itcl_ClassInheritCmd +#define Itcl_ClassInheritCmd \ + (itclIntStubsPtr->itcl_ClassInheritCmd) /* 77 */ +#endif +#ifndef Itcl_ClassProtectionCmd +#define Itcl_ClassProtectionCmd \ + (itclIntStubsPtr->itcl_ClassProtectionCmd) /* 78 */ +#endif +#ifndef Itcl_ClassConstructorCmd +#define Itcl_ClassConstructorCmd \ + (itclIntStubsPtr->itcl_ClassConstructorCmd) /* 79 */ +#endif +#ifndef Itcl_ClassDestructorCmd +#define Itcl_ClassDestructorCmd \ + (itclIntStubsPtr->itcl_ClassDestructorCmd) /* 80 */ +#endif +#ifndef Itcl_ClassMethodCmd +#define Itcl_ClassMethodCmd \ + (itclIntStubsPtr->itcl_ClassMethodCmd) /* 81 */ +#endif +#ifndef Itcl_ClassProcCmd +#define Itcl_ClassProcCmd \ + (itclIntStubsPtr->itcl_ClassProcCmd) /* 82 */ +#endif +#ifndef Itcl_ClassVariableCmd +#define Itcl_ClassVariableCmd \ + (itclIntStubsPtr->itcl_ClassVariableCmd) /* 83 */ +#endif +#ifndef Itcl_ClassCommonCmd +#define Itcl_ClassCommonCmd \ + (itclIntStubsPtr->itcl_ClassCommonCmd) /* 84 */ +#endif +#ifndef Itcl_ParseVarResolver +#define Itcl_ParseVarResolver \ + (itclIntStubsPtr->itcl_ParseVarResolver) /* 85 */ +#endif +#ifndef Itcl_BiInit +#define Itcl_BiInit \ + (itclIntStubsPtr->itcl_BiInit) /* 86 */ +#endif +#ifndef Itcl_InstallBiMethods +#define Itcl_InstallBiMethods \ + (itclIntStubsPtr->itcl_InstallBiMethods) /* 87 */ +#endif +#ifndef Itcl_BiIsaCmd +#define Itcl_BiIsaCmd \ + (itclIntStubsPtr->itcl_BiIsaCmd) /* 88 */ +#endif +#ifndef Itcl_BiConfigureCmd +#define Itcl_BiConfigureCmd \ + (itclIntStubsPtr->itcl_BiConfigureCmd) /* 89 */ +#endif +#ifndef Itcl_BiCgetCmd +#define Itcl_BiCgetCmd \ + (itclIntStubsPtr->itcl_BiCgetCmd) /* 90 */ +#endif +#ifndef Itcl_BiChainCmd +#define Itcl_BiChainCmd \ + (itclIntStubsPtr->itcl_BiChainCmd) /* 91 */ +#endif +#ifndef Itcl_BiInfoClassCmd +#define Itcl_BiInfoClassCmd \ + (itclIntStubsPtr->itcl_BiInfoClassCmd) /* 92 */ +#endif +#ifndef Itcl_BiInfoInheritCmd +#define Itcl_BiInfoInheritCmd \ + (itclIntStubsPtr->itcl_BiInfoInheritCmd) /* 93 */ +#endif +#ifndef Itcl_BiInfoHeritageCmd +#define Itcl_BiInfoHeritageCmd \ + (itclIntStubsPtr->itcl_BiInfoHeritageCmd) /* 94 */ +#endif +#ifndef Itcl_BiInfoFunctionCmd +#define Itcl_BiInfoFunctionCmd \ + (itclIntStubsPtr->itcl_BiInfoFunctionCmd) /* 95 */ +#endif +#ifndef Itcl_BiInfoVariableCmd +#define Itcl_BiInfoVariableCmd \ + (itclIntStubsPtr->itcl_BiInfoVariableCmd) /* 96 */ +#endif +#ifndef Itcl_BiInfoBodyCmd +#define Itcl_BiInfoBodyCmd \ + (itclIntStubsPtr->itcl_BiInfoBodyCmd) /* 97 */ +#endif +#ifndef Itcl_BiInfoArgsCmd +#define Itcl_BiInfoArgsCmd \ + (itclIntStubsPtr->itcl_BiInfoArgsCmd) /* 98 */ +#endif +#ifndef Itcl_DefaultInfoCmd +#define Itcl_DefaultInfoCmd \ + (itclIntStubsPtr->itcl_DefaultInfoCmd) /* 99 */ +#endif +#ifndef Itcl_EnsembleInit +#define Itcl_EnsembleInit \ + (itclIntStubsPtr->itcl_EnsembleInit) /* 100 */ +#endif +#ifndef Itcl_CreateEnsemble +#define Itcl_CreateEnsemble \ + (itclIntStubsPtr->itcl_CreateEnsemble) /* 101 */ +#endif +#ifndef Itcl_AddEnsemblePart +#define Itcl_AddEnsemblePart \ + (itclIntStubsPtr->itcl_AddEnsemblePart) /* 102 */ +#endif +#ifndef Itcl_GetEnsemblePart +#define Itcl_GetEnsemblePart \ + (itclIntStubsPtr->itcl_GetEnsemblePart) /* 103 */ +#endif +#ifndef Itcl_IsEnsemble +#define Itcl_IsEnsemble \ + (itclIntStubsPtr->itcl_IsEnsemble) /* 104 */ +#endif +#ifndef Itcl_GetEnsembleUsage +#define Itcl_GetEnsembleUsage \ + (itclIntStubsPtr->itcl_GetEnsembleUsage) /* 105 */ +#endif +#ifndef Itcl_GetEnsembleUsageForObj +#define Itcl_GetEnsembleUsageForObj \ + (itclIntStubsPtr->itcl_GetEnsembleUsageForObj) /* 106 */ +#endif +#ifndef Itcl_EnsembleCmd +#define Itcl_EnsembleCmd \ + (itclIntStubsPtr->itcl_EnsembleCmd) /* 107 */ +#endif +#ifndef Itcl_EnsPartCmd +#define Itcl_EnsPartCmd \ + (itclIntStubsPtr->itcl_EnsPartCmd) /* 108 */ +#endif +#ifndef Itcl_EnsembleErrorCmd +#define Itcl_EnsembleErrorCmd \ + (itclIntStubsPtr->itcl_EnsembleErrorCmd) /* 109 */ +#endif +/* Slot 110 is reserved */ +/* Slot 111 is reserved */ +#ifndef _Tcl_GetCallFrame +#define _Tcl_GetCallFrame \ + (itclIntStubsPtr->_Tcl_GetCallFrame) /* 112 */ +#endif +#ifndef _Tcl_ActivateCallFrame +#define _Tcl_ActivateCallFrame \ + (itclIntStubsPtr->_Tcl_ActivateCallFrame) /* 113 */ +#endif +#ifndef _TclNewVar +#define _TclNewVar \ + (itclIntStubsPtr->_TclNewVar) /* 114 */ +#endif +#ifndef Itcl_Assert +#define Itcl_Assert \ + (itclIntStubsPtr->itcl_Assert) /* 115 */ +#endif +#ifndef Itcl_IsObjectCmd +#define Itcl_IsObjectCmd \ + (itclIntStubsPtr->itcl_IsObjectCmd) /* 116 */ +#endif +#ifndef Itcl_IsClassCmd +#define Itcl_IsClassCmd \ + (itclIntStubsPtr->itcl_IsClassCmd) /* 117 */ +#endif + +#endif /* defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _ITCLINTDECLS */ diff --git a/8.x/itcl/generic/itclStubInit.c b/8.x/itcl/generic/itclStubInit.c new file mode 100644 index 0000000..0ab730c --- /dev/null +++ b/8.x/itcl/generic/itclStubInit.c @@ -0,0 +1,187 @@ +/* + * itclStubInit.c -- + * + * This file contains the initializers for the Itcl stub vectors. + * + * Copyright (c) 1998-1999 by XXX + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: $Id: itclStubInit.c,v 1.4 2002/08/11 03:43:46 davygrvy Exp $ + */ + +#include "itclInt.h" + +/* + * Remove macros that will interfere with the definitions below. + */ + + +/* + * WARNING: The contents of this file is automatically generated by the + * tools/genStubs.tcl script. Any modifications to the function declarations + * below should be made in the generic/tcl.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +ItclIntStubs itclIntStubs = { + TCL_STUB_MAGIC, + NULL, + Itcl_IsClassNamespace, /* 0 */ + Itcl_IsClass, /* 1 */ + Itcl_FindClass, /* 2 */ + Itcl_FindObject, /* 3 */ + Itcl_IsObject, /* 4 */ + Itcl_ObjectIsa, /* 5 */ + Itcl_Protection, /* 6 */ + Itcl_ProtectionStr, /* 7 */ + Itcl_CanAccess, /* 8 */ + Itcl_CanAccessFunc, /* 9 */ + Itcl_GetTrueNamespace, /* 10 */ + Itcl_ParseNamespPath, /* 11 */ + Itcl_DecodeScopedCommand, /* 12 */ + Itcl_EvalArgs, /* 13 */ + Itcl_CreateArgs, /* 14 */ + Itcl_PushContext, /* 15 */ + Itcl_PopContext, /* 16 */ + Itcl_GetContext, /* 17 */ + Itcl_InitHierIter, /* 18 */ + Itcl_DeleteHierIter, /* 19 */ + Itcl_AdvanceHierIter, /* 20 */ + Itcl_FindClassesCmd, /* 21 */ + Itcl_FindObjectsCmd, /* 22 */ + Itcl_ProtectionCmd, /* 23 */ + Itcl_DelClassCmd, /* 24 */ + Itcl_DelObjectCmd, /* 25 */ + Itcl_ScopeCmd, /* 26 */ + Itcl_CodeCmd, /* 27 */ + Itcl_StubCreateCmd, /* 28 */ + Itcl_StubExistsCmd, /* 29 */ + Itcl_IsStub, /* 30 */ + Itcl_CreateClass, /* 31 */ + Itcl_DeleteClass, /* 32 */ + Itcl_FindClassNamespace, /* 33 */ + Itcl_HandleClass, /* 34 */ + Itcl_ClassCmdResolver, /* 35 */ + Itcl_ClassVarResolver, /* 36 */ + Itcl_ClassCompiledVarResolver, /* 37 */ + Itcl_BuildVirtualTables, /* 38 */ + Itcl_CreateVarDefn, /* 39 */ + Itcl_DeleteVarDefn, /* 40 */ + Itcl_GetCommonVar, /* 41 */ + Itcl_CreateMember, /* 42 */ + Itcl_DeleteMember, /* 43 */ + Itcl_CreateObject, /* 44 */ + Itcl_DeleteObject, /* 45 */ + Itcl_DestructObject, /* 46 */ + Itcl_HandleInstance, /* 47 */ + Itcl_GetInstanceVar, /* 48 */ + Itcl_ScopedVarResolver, /* 49 */ + Itcl_BodyCmd, /* 50 */ + Itcl_ConfigBodyCmd, /* 51 */ + Itcl_CreateMethod, /* 52 */ + Itcl_CreateProc, /* 53 */ + Itcl_CreateMemberFunc, /* 54 */ + Itcl_ChangeMemberFunc, /* 55 */ + Itcl_DeleteMemberFunc, /* 56 */ + Itcl_CreateMemberCode, /* 57 */ + Itcl_DeleteMemberCode, /* 58 */ + Itcl_GetMemberCode, /* 59 */ + NULL, /* 60 */ + Itcl_EvalMemberCode, /* 61 */ + Itcl_CreateArgList, /* 62 */ + Itcl_CreateArg, /* 63 */ + Itcl_DeleteArgList, /* 64 */ + Itcl_ArgList, /* 65 */ + Itcl_EquivArgLists, /* 66 */ + Itcl_GetMemberFuncUsage, /* 67 */ + Itcl_ExecMethod, /* 68 */ + Itcl_ExecProc, /* 69 */ + Itcl_AssignArgs, /* 70 */ + Itcl_ConstructBase, /* 71 */ + Itcl_InvokeMethodIfExists, /* 72 */ + NULL, /* 73 */ + Itcl_ReportFuncErrors, /* 74 */ + Itcl_ParseInit, /* 75 */ + Itcl_ClassCmd, /* 76 */ + Itcl_ClassInheritCmd, /* 77 */ + Itcl_ClassProtectionCmd, /* 78 */ + Itcl_ClassConstructorCmd, /* 79 */ + Itcl_ClassDestructorCmd, /* 80 */ + Itcl_ClassMethodCmd, /* 81 */ + Itcl_ClassProcCmd, /* 82 */ + Itcl_ClassVariableCmd, /* 83 */ + Itcl_ClassCommonCmd, /* 84 */ + Itcl_ParseVarResolver, /* 85 */ + Itcl_BiInit, /* 86 */ + Itcl_InstallBiMethods, /* 87 */ + Itcl_BiIsaCmd, /* 88 */ + Itcl_BiConfigureCmd, /* 89 */ + Itcl_BiCgetCmd, /* 90 */ + Itcl_BiChainCmd, /* 91 */ + Itcl_BiInfoClassCmd, /* 92 */ + Itcl_BiInfoInheritCmd, /* 93 */ + Itcl_BiInfoHeritageCmd, /* 94 */ + Itcl_BiInfoFunctionCmd, /* 95 */ + Itcl_BiInfoVariableCmd, /* 96 */ + Itcl_BiInfoBodyCmd, /* 97 */ + Itcl_BiInfoArgsCmd, /* 98 */ + Itcl_DefaultInfoCmd, /* 99 */ + Itcl_EnsembleInit, /* 100 */ + Itcl_CreateEnsemble, /* 101 */ + Itcl_AddEnsemblePart, /* 102 */ + Itcl_GetEnsemblePart, /* 103 */ + Itcl_IsEnsemble, /* 104 */ + Itcl_GetEnsembleUsage, /* 105 */ + Itcl_GetEnsembleUsageForObj, /* 106 */ + Itcl_EnsembleCmd, /* 107 */ + Itcl_EnsPartCmd, /* 108 */ + Itcl_EnsembleErrorCmd, /* 109 */ + NULL, /* 110 */ + NULL, /* 111 */ + _Tcl_GetCallFrame, /* 112 */ + _Tcl_ActivateCallFrame, /* 113 */ + _TclNewVar, /* 114 */ + Itcl_Assert, /* 115 */ + Itcl_IsObjectCmd, /* 116 */ + Itcl_IsClassCmd, /* 117 */ +}; + +static ItclStubHooks itclStubHooks = { + &itclIntStubs +}; + +ItclStubs itclStubs = { + TCL_STUB_MAGIC, + &itclStubHooks, + Itcl_Init, /* 0 */ + Itcl_SafeInit, /* 1 */ + Itcl_RegisterC, /* 2 */ + Itcl_RegisterObjC, /* 3 */ + Itcl_FindC, /* 4 */ + Itcl_InitStack, /* 5 */ + Itcl_DeleteStack, /* 6 */ + Itcl_PushStack, /* 7 */ + Itcl_PopStack, /* 8 */ + Itcl_PeekStack, /* 9 */ + Itcl_GetStackValue, /* 10 */ + Itcl_InitList, /* 11 */ + Itcl_DeleteList, /* 12 */ + Itcl_CreateListElem, /* 13 */ + Itcl_DeleteListElem, /* 14 */ + Itcl_InsertList, /* 15 */ + Itcl_InsertListElem, /* 16 */ + Itcl_AppendList, /* 17 */ + Itcl_AppendListElem, /* 18 */ + Itcl_SetListValue, /* 19 */ + Itcl_EventuallyFree, /* 20 */ + Itcl_PreserveData, /* 21 */ + Itcl_ReleaseData, /* 22 */ + Itcl_SaveInterpState, /* 23 */ + Itcl_RestoreInterpState, /* 24 */ + Itcl_DiscardInterpState, /* 25 */ +}; + +/* !END!: Do not edit above this line. */ diff --git a/8.x/itcl/generic/itclStubLib.c b/8.x/itcl/generic/itclStubLib.c new file mode 100644 index 0000000..49a6b57 --- /dev/null +++ b/8.x/itcl/generic/itclStubLib.c @@ -0,0 +1,86 @@ +/* + * itclStubLib.c -- + * + * Stub object that will be statically linked into extensions that wish + * to access Itcl. + * + * Copyright (c) 1998 Paul Duffin. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: $Id: itclStubLib.c,v 1.9 2003/12/24 03:38:02 davygrvy Exp $ + */ + +/* + * We need to ensure that we use the stub macros so that this file contains + * no references to any of the stub functions. This will make it possible + * to build an extension that references Tcl_InitStubs but doesn't end up + * including the rest of the stub functions. + */ + +#ifndef USE_TCL_STUBS +#define USE_TCL_STUBS +#endif +#undef USE_TCL_STUB_PROCS + +/* + * This ensures that the Itcl_InitStubs has a prototype in + * itcl.h and is not the macro that turns it into Tcl_PkgRequire + */ + +#ifndef USE_ITCL_STUBS +#define USE_ITCL_STUBS +#endif + +#include "itclInt.h" + +ItclStubs *itclStubsPtr; +ItclIntStubs *itclIntStubsPtr; + +/* + *---------------------------------------------------------------------- + * + * Itcl_InitStubs -- + * + * Tries to initialize the stub table pointers and ensures that + * the correct version of Itcl is loaded. + * + * Results: + * The actual version of Itcl that satisfies the request, or + * NULL to indicate that an error occurred. + * + * Side effects: + * Sets the stub table pointers. + * + *---------------------------------------------------------------------- + */ + +#ifdef Itcl_InitStubs +#undef Itcl_InitStubs +#endif + +CONST char * +Itcl_InitStubs (interp, version, exact) + Tcl_Interp *interp; + CONST char *version; + int exact; +{ + CONST char *actualVersion; + + actualVersion = Tcl_PkgRequireEx(interp, "Itcl", (CONST84 char *)version, exact, + (ClientData *) &itclStubsPtr); + + if (actualVersion == NULL) { + itclStubsPtr = NULL; + return NULL; + } + + if (itclStubsPtr->hooks) { + itclIntStubsPtr = itclStubsPtr->hooks->itclIntStubs; + } else { + itclIntStubsPtr = NULL; + } + + return actualVersion; +} diff --git a/8.x/itcl/generic/itcl_bicmds.c b/8.x/itcl/generic/itcl_bicmds.c new file mode 100644 index 0000000..d3ac5d2 --- /dev/null +++ b/8.x/itcl/generic/itcl_bicmds.c @@ -0,0 +1,1703 @@ +/* + * ------------------------------------------------------------------------ + * PACKAGE: [incr Tcl] + * DESCRIPTION: Object-Oriented Extensions to Tcl + * + * [incr Tcl] provides object-oriented extensions to Tcl, much as + * C++ provides object-oriented extensions to C. It provides a means + * of encapsulating related procedures together with their shared data + * in a local namespace that is hidden from the outside world. It + * promotes code re-use through inheritance. More than anything else, + * it encourages better organization of Tcl applications through the + * object-oriented paradigm, leading to code that is easier to + * understand and maintain. + * + * These procedures handle built-in class methods, including the + * "isa" method (to query hierarchy info) and the "info" method + * (to query class/object data). + * + * ======================================================================== + * AUTHOR: Michael J. McLennan + * Bell Labs Innovations for Lucent Technologies + * mmclennan@lucent.com + * http://www.tcltk.com/itcl + * + * RCS: $Id: itcl_bicmds.c,v 1.12 2008/10/04 15:22:39 msofer Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ +#include "itclInt.h" + +/* + * Standard list of built-in methods for all objects. + */ +typedef struct BiMethod { + char* name; /* method name */ + char* usage; /* string describing usage */ + char* registration; /* registration name for C proc */ + Tcl_ObjCmdProc *proc; /* implementation C proc */ +} BiMethod; + +static BiMethod BiMethodList[] = { + { "cget", "-option", + "@itcl-builtin-cget", Itcl_BiCgetCmd }, + { "configure", "?-option? ?value -option value...?", + "@itcl-builtin-configure", Itcl_BiConfigureCmd }, + { "isa", "className", + "@itcl-builtin-isa", Itcl_BiIsaCmd }, +}; +static int BiMethodListLen = sizeof(BiMethodList)/sizeof(BiMethod); + + +/* + * FORWARD DECLARATIONS + */ +static Tcl_Obj* ItclReportPublicOpt _ANSI_ARGS_((Tcl_Interp *interp, + ItclVarDefn *vdefn, ItclObject *contextObj)); + + +/* + * ------------------------------------------------------------------------ + * Itcl_BiInit() + * + * Creates a namespace full of built-in methods/procs for [incr Tcl] + * classes. This includes things like the "isa" method and "info" + * for querying class info. Usually invoked by Itcl_Init() when + * [incr Tcl] is first installed into an interpreter. + * + * Returns TCL_OK/TCL_ERROR to indicate success/failure. + * ------------------------------------------------------------------------ + */ +int +Itcl_BiInit(interp) + Tcl_Interp *interp; /* current interpreter */ +{ + int i; + Tcl_Namespace *itclBiNs; + + /* + * Declare all of the built-in methods as C procedures. + */ + for (i=0; i < BiMethodListLen; i++) { + if (Itcl_RegisterObjC(interp, + BiMethodList[i].registration+1, BiMethodList[i].proc, + (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) != TCL_OK) { + + return TCL_ERROR; + } + } + + /* + * Create the "::itcl::builtin" namespace for built-in class + * commands. These commands are imported into each class + * just before the class definition is parsed. + */ + Tcl_CreateObjCommand(interp, "::itcl::builtin::chain", Itcl_BiChainCmd, + (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL); + + if (Itcl_CreateEnsemble(interp, "::itcl::builtin::info") != TCL_OK) { + return TCL_ERROR; + } + + if (Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "class", "", + Itcl_BiInfoClassCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "inherit", "", + Itcl_BiInfoInheritCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "heritage", "", + Itcl_BiInfoHeritageCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "function", "?name? ?-protection? ?-type? ?-name? ?-args? ?-body?", + Itcl_BiInfoFunctionCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "variable", "?name? ?-protection? ?-type? ?-name? ?-init? ?-value? ?-config?", + Itcl_BiInfoVariableCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "args", "procname", + Itcl_BiInfoArgsCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK || + Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "body", "procname", + Itcl_BiInfoBodyCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK + ) { + return TCL_ERROR; + } + + /* + * Add an error handler to support all of the usual inquiries + * for the "info" command in the global namespace. + */ + if (Itcl_AddEnsemblePart(interp, "::itcl::builtin::info", + "@error", "", + Itcl_DefaultInfoCmd, (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) + != TCL_OK + ) { + return TCL_ERROR; + } + + /* + * Export all commands in the built-in namespace so we can + * import them later on. + */ + itclBiNs = Tcl_FindNamespace(interp, "::itcl::builtin", + (Tcl_Namespace*)NULL, TCL_LEAVE_ERR_MSG); + + if (!itclBiNs || + Tcl_Export(interp, itclBiNs, "*", /* resetListFirst */ 1) != TCL_OK) { + return TCL_ERROR; + } + + return TCL_OK; +} + + +/* + * ------------------------------------------------------------------------ + * Itcl_InstallBiMethods() + * + * Invoked when a class is first created, just after the class + * definition has been parsed, to add definitions for built-in + * methods to the class. If a method already exists in the class + * with the same name as the built-in, then the built-in is skipped. + * Otherwise, a method definition for the built-in method is added. + * + * Returns TCL_OK if successful, or TCL_ERROR (along with an error + * message in the interpreter) if anything goes wrong. + * ------------------------------------------------------------------------ + */ +int +Itcl_InstallBiMethods(interp, cdefn) + Tcl_Interp *interp; /* current interpreter */ + ItclClass *cdefn; /* class definition to be updated */ +{ + int result = TCL_OK; + Tcl_HashEntry *entry = NULL; + + int i; + ItclHierIter hier; + ItclClass *cdPtr; + + /* + * Scan through all of the built-in methods and see if + * that method already exists in the class. If not, add + * it in. + * + * TRICKY NOTE: The virtual tables haven't been built yet, + * so look for existing methods the hard way--by scanning + * through all classes. + */ + for (i=0; i < BiMethodListLen; i++) { + Itcl_InitHierIter(&hier, cdefn); + cdPtr = Itcl_AdvanceHierIter(&hier); + while (cdPtr) { + entry = Tcl_FindHashEntry(&cdPtr->functions, BiMethodList[i].name); + if (entry) { + break; + } + cdPtr = Itcl_AdvanceHierIter(&hier); + } + Itcl_DeleteHierIter(&hier); + + if (!entry) { + result = Itcl_CreateMethod(interp, cdefn, BiMethodList[i].name, + BiMethodList[i].usage, BiMethodList[i].registration); + + if (result != TCL_OK) { + break; + } + } + } + return result; +} + + +/* + * ------------------------------------------------------------------------ + * Itcl_BiIsaCmd() + * + * Invoked whenever the user issues the "isa" method for an object. + * Handles the following syntax: + * + * isa + * + * Checks to see if the object has the given anywhere + * in its heritage. Returns 1 if so, and 0 otherwise. + * ------------------------------------------------------------------------ + */ +/* ARGSUSED */ +int +Itcl_BiIsaCmd(clientData, interp, objc, objv) + ClientData clientData; /* class definition */ + Tcl_Interp *interp; /* current interpreter */ + int objc; /* number of arguments */ + Tcl_Obj *CONST objv[]; /* argument objects */ +{ + ItclClass *contextClass, *cdefn; + ItclObject *contextObj; + char *token; + + /* + * Make sure that this command is being invoked in the proper + * context. + */ + if (Itcl_GetContext(interp, &contextClass, &contextObj) != TCL_OK) { + return TCL_ERROR; + } + + if (!contextObj) { + Tcl_AppendResult(interp, + "improper usage: should be \"object isa className\"", + (char*)NULL); + return TCL_ERROR; + } + if (objc != 2) { + token = Tcl_GetStringFromObj(objv[0], (int*)NULL); + Tcl_AppendResult(interp, + "wrong # args: should be \"object ", token, " className\"", + (char*)NULL); + return TCL_ERROR; + } + + /* + * Look for the requested class. If it is not found, then + * try to autoload it. If it absolutely cannot be found, + * signal an error. + */ + token = Tcl_GetStringFromObj(objv[1], (int*)NULL); + cdefn = Itcl_FindClass(interp, token, /* autoload */ 1); + if (cdefn == NULL) { + return TCL_ERROR; + } + + if (Itcl_ObjectIsa(contextObj, cdefn)) { + Tcl_SetIntObj(Tcl_GetObjResult(interp), 1); + } else { + Tcl_SetIntObj(Tcl_GetObjResult(interp), 0); + } + return TCL_OK; +} + + +/* + * ------------------------------------------------------------------------ + * Itcl_BiConfigureCmd() + * + * Invoked whenever the user issues the "configure" method for an object. + * Handles the following syntax: + * + * configure ?-